diff --git a/pkg/controller/volume/selinuxwarning/selinux_warning_controller.go b/pkg/controller/volume/selinuxwarning/selinux_warning_controller.go index e531e3c1c3d..9e82899d1dd 100644 --- a/pkg/controller/volume/selinuxwarning/selinux_warning_controller.go +++ b/pkg/controller/volume/selinuxwarning/selinux_warning_controller.go @@ -75,10 +75,9 @@ type Controller struct { cmpm csimigration.PluginManager csiTranslator csimigration.InTreeToCSITranslator seLinuxTranslator volumeutil.SELinuxLabelTranslator + eventBroadcaster record.EventBroadcaster eventRecorder record.EventRecorder - - recorder record.EventRecorder - queue workqueue.TypedRateLimitingInterface[cache.ObjectName] + queue workqueue.TypedRateLimitingInterface[cache.ObjectName] labelCache volumecache.VolumeCache } @@ -95,8 +94,6 @@ func NewController( ) (*Controller, error) { eventBroadcaster := record.NewBroadcaster(record.WithContext(ctx)) - eventBroadcaster.StartLogging(klog.Infof) - eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: kubeClient.CoreV1().Events("")}) recorder := eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "selinux_warning"}) c := &Controller{ kubeClient: kubeClient, @@ -112,15 +109,15 @@ func NewController( vpm: &volume.VolumePluginMgr{}, seLinuxTranslator: volumeutil.NewSELinuxLabelTranslator(), - recorder: recorder, + eventBroadcaster: eventBroadcaster, + eventRecorder: recorder, queue: workqueue.NewTypedRateLimitingQueueWithConfig[cache.ObjectName]( workqueue.DefaultTypedControllerRateLimiter[cache.ObjectName](), workqueue.TypedRateLimitingQueueConfig[cache.ObjectName]{ Name: "selinux_warning", }, ), - labelCache: volumecache.NewVolumeLabelCache(), - eventRecorder: recorder, + labelCache: volumecache.NewVolumeLabelCache(), } err := c.vpm.InitPlugins(plugins, prober, c) @@ -346,6 +343,9 @@ func (c *Controller) Run(ctx context.Context, workers int) { logger.Info("Starting SELinux warning controller") defer logger.Info("Shutting down SELinux warning controller") + c.eventBroadcaster.StartStructuredLogging(3) // verbosity level 3 is used by the other KCM controllers + c.eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: c.kubeClient.CoreV1().Events("")}) + if !cache.WaitForNamedCacheSync("selinux_warning", ctx.Done(), c.podsSynced, c.pvcsSynced, c.pvsSynced, c.csiDriversSynced) { return }