Skip to content

Commit

Permalink
Migrate from RegisteredLoggers to the AtomicLevel (#16004)
Browse files Browse the repository at this point in the history
* migrate from loggers registry to the AtomicLevel

* update resources

* retrigger jobs

* retrigger jobs
  • Loading branch information
pPrecel committed Nov 14, 2022
1 parent 79bc27e commit 432a047
Show file tree
Hide file tree
Showing 9 changed files with 76 additions and 142 deletions.
40 changes: 25 additions & 15 deletions components/function-controller/cmd/manager/main.go
Expand Up @@ -17,6 +17,8 @@ import (
serverlessv1alpha1 "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1"
serverlessv1alpha2 "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha2"
"github.com/vrischmann/envconfig"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"k8s.io/apimachinery/pkg/runtime"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
Expand Down Expand Up @@ -72,7 +74,15 @@ func main() {
os.Exit(1)
}

loggerRegistry, err := logging.ConfigureRegisteredLogger(logCfg.LogLevel, logCfg.LogFormat)
atomic := zap.NewAtomicLevel()
parsedLevel, err := zapcore.ParseLevel(logCfg.LogLevel)
if err != nil {
setupLog.Error(err, "unable to parse logger level")
os.Exit(1)
}
atomic.SetLevel(parsedLevel)

log, err := logging.ConfigureLogger(logCfg.LogLevel, logCfg.LogFormat, atomic)
if err != nil {
setupLog.Error(err, "unable to configure log")
os.Exit(1)
Expand All @@ -81,19 +91,19 @@ func main() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()

go logging.ReconfigureOnConfigChange(ctx, loggerRegistry, config.ConfigPath)
logWithCtx := log.WithContext()
go logging.ReconfigureOnConfigChange(ctx, logWithCtx.Named("notifier"), atomic, config.ConfigPath)

ctrl.SetLogger(zapr.NewLogger(loggerRegistry.CreateDesugared()))
ctrl.SetLogger(zapr.NewLogger(logWithCtx.Desugar()))

initLog := loggerRegistry.CreateUnregistered()
initLog.Info("Generating Kubernetes client config")
logWithCtx.Info("Generating Kubernetes client config")
restConfig := ctrl.GetConfigOrDie()

initLog.Info("Registering Prometheus Stats Collector")
logWithCtx.Info("Registering Prometheus Stats Collector")
prometheusCollector := metrics.NewPrometheusStatsCollector()
prometheusCollector.Register()

initLog.Info("Initializing controller manager")
logWithCtx.Info("Initializing controller manager")
mgr, err := manager.New(restConfig, manager.Options{
Scheme: scheme,
MetricsBindAddress: config.MetricsAddress,
Expand All @@ -112,7 +122,7 @@ func main() {
secretSvc := k8s.NewSecretService(resourceClient, config.Kubernetes)
serviceAccountSvc := k8s.NewServiceAccountService(resourceClient, config.Kubernetes)

healthHandler, healthEventsCh, healthResponseCh := serverless.NewHealthChecker(config.Healthz.LivenessTimeout, loggerRegistry.CreateNamed("healthz"))
healthHandler, healthEventsCh, healthResponseCh := serverless.NewHealthChecker(config.Healthz.LivenessTimeout, logWithCtx.Named("healthz"))
if err := mgr.AddHealthzCheck("health check", healthHandler.Checker); err != nil {
setupLog.Error(err, "unable to register healthz")
os.Exit(1)
Expand All @@ -123,13 +133,13 @@ func main() {
os.Exit(1)
}

err = gitrepo.NewGitRepoUpdateController(mgr.GetClient(), loggerRegistry.CreateNamed("controllers.gitrepo")).SetupWithManager(mgr)
err = gitrepo.NewGitRepoUpdateController(mgr.GetClient(), logWithCtx.Named("controllers.gitrepo")).SetupWithManager(mgr)
if err != nil {
setupLog.Error(err, "unable to create gitRepo controller")
os.Exit(1)
}

fnRecon := serverless.NewFunctionReconciler(resourceClient, loggerRegistry.CreateNamed("controllers.function"), config.Function, &git.GitClientFactory{}, mgr.GetEventRecorderFor(serverlessv1alpha2.FunctionControllerValue), prometheusCollector, healthResponseCh)
fnRecon := serverless.NewFunctionReconciler(resourceClient, logWithCtx.Named("controllers.function"), config.Function, &git.GitClientFactory{}, mgr.GetEventRecorderFor(serverlessv1alpha2.FunctionControllerValue), prometheusCollector, healthResponseCh)
fnCtrl, err := fnRecon.SetupWithManager(mgr)
if err != nil {
setupLog.Error(err, "unable to create Function controller")
Expand All @@ -142,33 +152,33 @@ func main() {
os.Exit(1)
}

if err := k8s.NewConfigMap(mgr.GetClient(), loggerRegistry.CreateNamed("controllers.configmap"), config.Kubernetes, configMapSvc).
if err := k8s.NewConfigMap(mgr.GetClient(), logWithCtx.Named("controllers.configmap"), config.Kubernetes, configMapSvc).
SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create ConfigMap controller")
os.Exit(1)
}

if err := k8s.NewNamespace(mgr.GetClient(), loggerRegistry.CreateNamed("controllers.namespace"), config.Kubernetes, configMapSvc, secretSvc, serviceAccountSvc).
if err := k8s.NewNamespace(mgr.GetClient(), logWithCtx.Named("controllers.namespace"), config.Kubernetes, configMapSvc, secretSvc, serviceAccountSvc).
SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create Namespace controller")
os.Exit(1)
}

if err := k8s.NewSecret(mgr.GetClient(), loggerRegistry.CreateNamed("controllers.secret"), config.Kubernetes, secretSvc).
if err := k8s.NewSecret(mgr.GetClient(), logWithCtx.Named("controllers.secret"), config.Kubernetes, secretSvc).
SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create Secret controller")
os.Exit(1)
}

if err := k8s.NewServiceAccount(mgr.GetClient(), loggerRegistry.CreateNamed("controllers.serviceaccount"), config.Kubernetes, serviceAccountSvc).
if err := k8s.NewServiceAccount(mgr.GetClient(), logWithCtx.Named("controllers.serviceaccount"), config.Kubernetes, serviceAccountSvc).
SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create ServiceAccount controller")
os.Exit(1)
}

// +kubebuilder:scaffold:builder

initLog.Info("Running manager")
logWithCtx.Info("Running manager")

if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil {
setupLog.Error(err, "Unable to run the manager")
Expand Down
43 changes: 26 additions & 17 deletions components/function-controller/cmd/webhook/main.go
Expand Up @@ -13,6 +13,8 @@ import (
serverlessv1alpha2 "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha2"
"github.com/pkg/errors"
"github.com/vrischmann/envconfig"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"sigs.k8s.io/controller-runtime/pkg/manager"

admissionregistrationv1 "k8s.io/api/admissionregistration/v1"
Expand Down Expand Up @@ -59,7 +61,15 @@ func main() {
os.Exit(1)
}

loggerRegistry, err := logging.ConfigureRegisteredLogger(logCfg.LogLevel, logCfg.LogFormat)
atomic := zap.NewAtomicLevel()
parsedLevel, err := zapcore.ParseLevel(logCfg.LogLevel)
if err != nil {
setupLog.Error(err, "unable to parse logger level")
os.Exit(1)
}
atomic.SetLevel(parsedLevel)

log, err := logging.ConfigureLogger(logCfg.LogLevel, logCfg.LogFormat, atomic)
if err != nil {
setupLog.Error(err, "unable to configure log")
os.Exit(1)
Expand All @@ -68,20 +78,19 @@ func main() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()

go logging.ReconfigureOnConfigChange(ctx, loggerRegistry, cfg.WebhookConfigPath)
logWithCtx := log.WithContext()
go logging.ReconfigureOnConfigChange(ctx, logWithCtx.Named("notifier"), atomic, cfg.WebhookConfigPath)

logrZap := zapr.NewLogger(loggerRegistry.CreateDesugared())
logrZap := zapr.NewLogger(logWithCtx.Desugar())
ctrl.SetLogger(logrZap)

initLog := loggerRegistry.CreateUnregistered()

validationConfigv1alpha1 := webhook.ReadValidationConfigV1Alpha1OrDie()
validationConfigv1alpha2 := webhook.ReadValidationConfigV1Alpha2OrDie()
defaultingConfigv1alpha1 := webhook.ReadDefaultingConfigV1Alpha1OrDie()
defaultingConfigv1alpha2 := webhook.ReadDefaultingConfigV1Alpha2OrDie()

// manager setup
initLog.Info("setting up controller-manager")
logWithCtx.Info("setting up controller-manager")

mgr, err := manager.New(ctrl.GetConfigOrDie(), manager.Options{
Scheme: scheme,
Expand All @@ -90,24 +99,24 @@ func main() {
Logger: logrZap,
})
if err != nil {
initLog.Error(err, "failed to setup controller-manager")
logWithCtx.Error(err, "failed to setup controller-manager")
os.Exit(1)
}

initLog.Info("setting up webhook certificates and webhook secret")
logWithCtx.Info("setting up webhook certificates and webhook secret")
// we need to ensure the certificates and the webhook secret as early as possible
// because the webhook server needs to read it from disk to start.
if err := resources.SetupCertificates(
context.Background(),
cfg.WebhookSecretName,
cfg.SystemNamespace,
cfg.WebhookServiceName,
loggerRegistry.CreateNamed("setup-certificates")); err != nil {
initLog.Error(err, "failed to setup certificates and webhook secret")
logWithCtx.Named("setup-certificates")); err != nil {
logWithCtx.Error(err, "failed to setup certificates and webhook secret")
os.Exit(1)
}

initLog.Info("setting up webhook server")
logWithCtx.Info("setting up webhook server")
// webhook server setup
whs := mgr.GetWebhookServer()
whs.CertName = resources.CertFile
Expand All @@ -116,7 +125,7 @@ func main() {
webhook.NewConvertingWebhook(
mgr.GetClient(),
scheme,
loggerRegistry.CreateNamed("converting-webhook")),
logWithCtx.Named("converting-webhook")),
)
whs.Register(resources.FunctionDefaultingWebhookPath, &ctrlwebhook.Admission{
Handler: webhook.NewDefaultingWebhook(defaultingConfigv1alpha1, defaultingConfigv1alpha2, mgr.GetClient()),
Expand All @@ -128,24 +137,24 @@ func main() {

whs.Register(resources.RegistryConfigDefaultingWebhookPath, &ctrlwebhook.Admission{Handler: webhook.NewRegistryWatcher()})

initLog.Info("setting up webhook resources controller")
logWithCtx.Info("setting up webhook resources controller")
// apply and monitor configuration
if err := resources.SetupResourcesController(
context.Background(),
mgr,
cfg.WebhookServiceName,
cfg.SystemNamespace,
cfg.WebhookSecretName,
loggerRegistry); err != nil {
initLog.Error(err, "failed to setup webhook resources controller")
logWithCtx); err != nil {
logWithCtx.Error(err, "failed to setup webhook resources controller")
os.Exit(1)
}

initLog.Info("starting the controller-manager")
logWithCtx.Info("starting the controller-manager")
// start the server manager
err = mgr.Start(ctrl.SetupSignalHandler())
if err != nil {
initLog.Error(err, "failed to start controller-manager")
logWithCtx.Error(err, "failed to start controller-manager")
os.Exit(1)
}
}
4 changes: 3 additions & 1 deletion components/function-controller/go.mod
Expand Up @@ -4,6 +4,8 @@ go 1.19

replace (
github.com/aws/aws-sdk-go => github.com/aws/aws-sdk-go v1.42.52

github.com/kyma-project/kyma/common/logging => github.com/pPrecel/kyma/common/logging v0.0.0-20221103083340-8c749c35c79b
github.com/prometheus/common => github.com/prometheus/common v0.26.0
go.etcd.io/etcd => go.etcd.io/etcd v3.3.25+incompatible
golang.org/x/crypto => golang.org/x/crypto v0.0.0-20220213190939-1e6e3497d506
Expand All @@ -29,7 +31,7 @@ require (
github.com/stretchr/objx v0.2.0 // indirect
github.com/stretchr/testify v1.7.0
github.com/vrischmann/envconfig v1.3.0
go.uber.org/zap v1.19.1
go.uber.org/zap v1.21.0
golang.org/x/crypto v0.0.0-20220214200702-86341886e292
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac
gopkg.in/yaml.v2 v2.4.0
Expand Down
19 changes: 5 additions & 14 deletions components/function-controller/go.sum
Expand Up @@ -81,7 +81,6 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY=
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
Expand Down Expand Up @@ -157,7 +156,6 @@ github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTg
github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/zapr v0.4.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk=
github.com/go-logr/zapr v1.2.0 h1:n4JnPI1T3Qq1SFEi/F8rwLrZERp2bso19PJZDB9dayk=
github.com/go-logr/zapr v1.2.0/go.mod h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro=
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
Expand Down Expand Up @@ -326,8 +324,6 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kyma-project/kyma/common/logging v0.0.0-20220602092229-f2e29f34ed5e h1:TXa89AtEDM9aNs3aBGlqb7rch+9piwZufF3ds96pzb4=
github.com/kyma-project/kyma/common/logging v0.0.0-20220602092229-f2e29f34ed5e/go.mod h1:7FWH0Lyls2xumj836aa+LVP8jhnJSv6wSlxC+2HAJ1s=
github.com/libgit2/git2go/v31 v31.7.9 h1:RUDiYm7+i3GY414acI31oDD8x5P0PZyWeZZfwpPuynE=
github.com/libgit2/git2go/v31 v31.7.9/go.mod h1:c/rkJcBcUFx6wHaT++UwNpKvIsmPNqCeQ/vzO4DrEec=
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
Expand Down Expand Up @@ -378,6 +374,8 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y
github.com/onsi/gomega v1.17.0 h1:9Luw4uT5HTjHTN8+aNcSThgH1vdXnmdJ8xIfZ4wyTRE=
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/pPrecel/kyma/common/logging v0.0.0-20221103083340-8c749c35c79b h1:7xPR9IZcvShl/squTYCemWSrFmdteYrhf5iJ9Gif2S8=
github.com/pPrecel/kyma/common/logging v0.0.0-20221103083340-8c749c35c79b/go.mod h1:oXoP77o6Am2IWp8wDS3jaA1gGWLrcaO6gLWyDZbAkJs=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
Expand Down Expand Up @@ -487,24 +485,20 @@ go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4
go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
go.uber.org/zap v1.19.1 h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI=
go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI=
go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
golang.org/x/crypto v0.0.0-20220213190939-1e6e3497d506 h1:EuGTJDfeg/PGZJp3gq1K+14eSLFTsrj1eg8KQuiUyKg=
golang.org/x/crypto v0.0.0-20220213190939-1e6e3497d506/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
Expand Down Expand Up @@ -669,8 +663,6 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
Expand Down Expand Up @@ -908,7 +900,6 @@ k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAE
k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
k8s.io/klog/v2 v2.5.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
k8s.io/klog/v2 v2.60.1 h1:VW25q3bZx9uE3vvdL6M8ezOX79vA2Aq1nEWLqNQclHc=
k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
Expand Down
15 changes: 8 additions & 7 deletions components/function-controller/internal/logging/dynamic.go
Expand Up @@ -4,18 +4,19 @@ import (
"context"

"github.com/kyma-project/kyma/components/function-controller/internal/config"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)

func ReconfigureOnConfigChange(ctx context.Context, registry *Registry, cfgPath string) {
notifyLog := registry.CreateNamed("notifier")

config.RunOnConfigChange(ctx, notifyLog, cfgPath, func(cfg config.Config) {
err := registry.Reconfigure(cfg.LogLevel, cfg.LogFormat)
func ReconfigureOnConfigChange(ctx context.Context, log *zap.SugaredLogger, atomic zap.AtomicLevel, cfgPath string) {
config.RunOnConfigChange(ctx, log, cfgPath, func(cfg config.Config) {
level, err := zapcore.ParseLevel(cfg.LogLevel)
if err != nil {
notifyLog.Error(err)
log.Error(err)
return
}

notifyLog.Infof("loggers reconfigured with level '%s' and format '%s'", cfg.LogLevel, cfg.LogFormat)
atomic.SetLevel(level)
log.Infof("loggers reconfigured with level '%s' and format '%s'", cfg.LogLevel, cfg.LogFormat)
})
}

0 comments on commit 432a047

Please sign in to comment.