From 6a83c1e1b0df566b095963a33909fe0b8339f7fd Mon Sep 17 00:00:00 2001 From: Brad Davidson Date: Wed, 23 Mar 2022 10:26:21 -0700 Subject: [PATCH] Fix log spam due to servicelb event recorder namespace conflict Don't hardcode the event namespace when creating event recorders; some controllers want to create events in other namespaces. Signed-off-by: Brad Davidson (cherry picked from commit 965d0a08ef62b1d14bf5b115e09b520d7e995ad7) --- pkg/deploy/controller.go | 2 +- pkg/secretsencrypt/controller.go | 2 +- pkg/servicelb/controller.go | 2 +- pkg/util/api.go | 5 ++--- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/pkg/deploy/controller.go b/pkg/deploy/controller.go index 79f038fa77..6c19765316 100644 --- a/pkg/deploy/controller.go +++ b/pkg/deploy/controller.go @@ -73,7 +73,7 @@ type watcher struct { // start calls listFiles at regular intervals to trigger application of manifests that have changed on disk. func (w *watcher) start(ctx context.Context, client kubernetes.Interface) { - w.recorder = pkgutil.BuildControllerEventRecorder(client, ControllerName) + w.recorder = pkgutil.BuildControllerEventRecorder(client, ControllerName, metav1.NamespaceSystem) force := true for { if err := w.listFiles(force); err == nil { diff --git a/pkg/secretsencrypt/controller.go b/pkg/secretsencrypt/controller.go index 583481cc24..8a139d2964 100644 --- a/pkg/secretsencrypt/controller.go +++ b/pkg/secretsencrypt/controller.go @@ -50,7 +50,7 @@ func Register( controlConfig: controlConfig, nodes: nodes, secrets: secrets, - recorder: util.BuildControllerEventRecorder(k8s, controllerAgentName), + recorder: util.BuildControllerEventRecorder(k8s, controllerAgentName, metav1.NamespaceDefault), } nodes.OnChange(ctx, "reencrypt-controller", h.onChangeNode) diff --git a/pkg/servicelb/controller.go b/pkg/servicelb/controller.go index 6df0fe7ecb..87c341fbe7 100644 --- a/pkg/servicelb/controller.go +++ b/pkg/servicelb/controller.go @@ -69,7 +69,7 @@ func Register(ctx context.Context, services: kubernetes.CoreV1(), daemonsets: kubernetes.AppsV1(), deployments: kubernetes.AppsV1(), - recorder: util.BuildControllerEventRecorder(kubernetes, ControllerName), + recorder: util.BuildControllerEventRecorder(kubernetes, ControllerName, meta.NamespaceAll), } services.OnChange(ctx, ControllerName, h.onChangeService) diff --git a/pkg/util/api.go b/pkg/util/api.go index 33651cd390..b4b63a96b8 100644 --- a/pkg/util/api.go +++ b/pkg/util/api.go @@ -14,7 +14,6 @@ import ( "github.com/rancher/wrangler/pkg/schemes" "github.com/sirupsen/logrus" v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" coregetter "k8s.io/client-go/kubernetes/typed/core/v1" @@ -78,11 +77,11 @@ func WaitForAPIServerReady(ctx context.Context, client clientset.Interface, time return nil } -func BuildControllerEventRecorder(k8s clientset.Interface, controllerName string) record.EventRecorder { +func BuildControllerEventRecorder(k8s clientset.Interface, controllerName, namespace string) record.EventRecorder { logrus.Infof("Creating %s event broadcaster", controllerName) eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(logrus.Infof) - eventBroadcaster.StartRecordingToSink(&coregetter.EventSinkImpl{Interface: k8s.CoreV1().Events(metav1.NamespaceSystem)}) + eventBroadcaster.StartRecordingToSink(&coregetter.EventSinkImpl{Interface: k8s.CoreV1().Events(namespace)}) nodeName := os.Getenv("NODE_NAME") return eventBroadcaster.NewRecorder(schemes.All, v1.EventSource{Component: controllerName, Host: nodeName}) }