Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate from RegisteredLoggers to the AtomicLevel #16004

Merged
merged 5 commits into from Nov 14, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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)
})
}