diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a6b266748..21919a87df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ### Added - [PR #21](https://github.com/konpyutaika/nifikop/pull/21) - **[Operator]** Propagate user provided issuerRef Group for custom CertManager Issuer. +- [PR #20](https://github.com/konpyutaika/nifikop/pull/20) - **[Operator]** Configurable log levels - [PR #19](https://github.com/konpyutaika/nifikop/pull/19) - **[Helm chart]** Support --namespace helm arg - [PR #18](https://github.com/konpyutaika/nifikop/pull/18) - **[Operator/NiFiCluster]** Support `topologySpreadConstraint` - [PR #17](https://github.com/konpyutaika/nifikop/pull/17) - **[Operator/NiFiCluster]** Add ability to set max event driven thread count to NiFi Cluster. diff --git a/go.mod b/go.mod index 292d624feb..4a65ce4c43 100644 --- a/go.mod +++ b/go.mod @@ -16,6 +16,7 @@ require ( github.com/onsi/gomega v1.10.2 github.com/pavel-v-chernykh/keystore-go v2.1.0+incompatible github.com/stretchr/testify v1.6.1 + go.uber.org/zap v1.15.0 golang.org/x/tools v0.0.0-20201014231627-1610a49f37af // indirect k8s.io/api v0.20.2 k8s.io/apimachinery v0.20.2 diff --git a/helm/nifikop/templates/deployment.yaml b/helm/nifikop/templates/deployment.yaml index f3b3357bbd..cc5645586c 100644 --- a/helm/nifikop/templates/deployment.yaml +++ b/helm/nifikop/templates/deployment.yaml @@ -104,10 +104,8 @@ spec: - name: VAULT_CACERT value: /etc/vault/certs/ca.crt {{- end }} - {{- if .Values.debug.enabled }} - name: LOG_LEVEL - value: Debug - {{- end }} + value: {{ default "Info" .Values.logLevel }} livenessProbe: httpGet: path: /healthz diff --git a/helm/nifikop/values.yaml b/helm/nifikop/values.yaml index a3d3549d05..ef6b6a2ffd 100644 --- a/helm/nifikop/values.yaml +++ b/helm/nifikop/values.yaml @@ -41,8 +41,7 @@ metrics: enabled: false port: 8081 -debug: - enabled: false +logLevel: Info certManager: enabled: true diff --git a/main.go b/main.go index cbab3c7c45..3f7add269c 100644 --- a/main.go +++ b/main.go @@ -3,12 +3,14 @@ package main import ( "flag" "fmt" + "os" + "strings" + certv1 "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1alpha2" "github.com/konpyutaika/nifikop/pkg/common" + "github.com/konpyutaika/nifikop/pkg/util" "github.com/konpyutaika/nifikop/version" - "os" "sigs.k8s.io/controller-runtime/pkg/cache" - "strings" // Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.) // to ensure that exec-entrypoint and run can make use of them. @@ -56,8 +58,10 @@ func main() { "Enabling this will ensure there is only one active controller manager.") flag.BoolVar(&certManagerEnabled, "cert-manager-enabled", false, "Enable cert-manager integration") + logLvl, isDevelopment := common.NewLogLevel(util.GetEnvWithDefault("LOG_LEVEL", "Debug")) opts := zap.Options{ - Development: true, + Development: isDevelopment, + Level: logLvl, } opts.BindFlags(flag.CommandLine) flag.Parse() diff --git a/pkg/common/common.go b/pkg/common/common.go index 2945f11aab..c22c378cfb 100644 --- a/pkg/common/common.go +++ b/pkg/common/common.go @@ -1,10 +1,11 @@ package common import ( + "github.com/go-logr/logr" "github.com/konpyutaika/nifikop/pkg/nificlient" "github.com/konpyutaika/nifikop/pkg/util" "github.com/konpyutaika/nifikop/pkg/util/clientconfig" - "github.com/go-logr/logr" + "go.uber.org/zap/zapcore" ) //// NewFromCluster is a convenient wrapper around New() and ClusterConfig() @@ -84,3 +85,24 @@ func NewRequeueConfig() *RequeueConfig { RequeueOffset: util.MustConvertToInt(util.GetEnvWithDefault("REQUEUE_OFFSET", "0"), "REQUEUE_OFFSET"), } } + +func NewLogLevel(lvl string) (zapcore.LevelEnabler, bool) { + switch lvl { + case "Debug": + return zapcore.DebugLevel, true + case "Info": + return zapcore.InfoLevel, false + case "Warn": + return zapcore.WarnLevel, false + case "Error": + return zapcore.ErrorLevel, false + case "DPanic": + return zapcore.DPanicLevel, false + case "Panic": + return zapcore.PanicLevel, false + case "Fatal": + return zapcore.FatalLevel, false + default: + return zapcore.DebugLevel, true + } +}