mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Rework event recorder startup
* Remove Controller.recorder field, there already is eventRecorder. * Start the event broadcaster in Run(), to save a bit of CPU and memory when something initializes the controller, but does not Run() it. * Log events with log level 3, as the other contollers usually do. * Use StartStructuredLogging(), which looks fancier than StartLogging
This commit is contained in:
		@@ -75,9 +75,8 @@ type Controller struct {
 | 
				
			|||||||
	cmpm              csimigration.PluginManager
 | 
						cmpm              csimigration.PluginManager
 | 
				
			||||||
	csiTranslator     csimigration.InTreeToCSITranslator
 | 
						csiTranslator     csimigration.InTreeToCSITranslator
 | 
				
			||||||
	seLinuxTranslator volumeutil.SELinuxLabelTranslator
 | 
						seLinuxTranslator volumeutil.SELinuxLabelTranslator
 | 
				
			||||||
 | 
						eventBroadcaster  record.EventBroadcaster
 | 
				
			||||||
	eventRecorder     record.EventRecorder
 | 
						eventRecorder     record.EventRecorder
 | 
				
			||||||
 | 
					 | 
				
			||||||
	recorder record.EventRecorder
 | 
					 | 
				
			||||||
	queue             workqueue.TypedRateLimitingInterface[cache.ObjectName]
 | 
						queue             workqueue.TypedRateLimitingInterface[cache.ObjectName]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	labelCache volumecache.VolumeCache
 | 
						labelCache volumecache.VolumeCache
 | 
				
			||||||
@@ -95,8 +94,6 @@ func NewController(
 | 
				
			|||||||
) (*Controller, error) {
 | 
					) (*Controller, error) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	eventBroadcaster := record.NewBroadcaster(record.WithContext(ctx))
 | 
						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"})
 | 
						recorder := eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "selinux_warning"})
 | 
				
			||||||
	c := &Controller{
 | 
						c := &Controller{
 | 
				
			||||||
		kubeClient:        kubeClient,
 | 
							kubeClient:        kubeClient,
 | 
				
			||||||
@@ -112,7 +109,8 @@ func NewController(
 | 
				
			|||||||
		vpm:               &volume.VolumePluginMgr{},
 | 
							vpm:               &volume.VolumePluginMgr{},
 | 
				
			||||||
		seLinuxTranslator: volumeutil.NewSELinuxLabelTranslator(),
 | 
							seLinuxTranslator: volumeutil.NewSELinuxLabelTranslator(),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		recorder: recorder,
 | 
							eventBroadcaster: eventBroadcaster,
 | 
				
			||||||
 | 
							eventRecorder:    recorder,
 | 
				
			||||||
		queue: workqueue.NewTypedRateLimitingQueueWithConfig[cache.ObjectName](
 | 
							queue: workqueue.NewTypedRateLimitingQueueWithConfig[cache.ObjectName](
 | 
				
			||||||
			workqueue.DefaultTypedControllerRateLimiter[cache.ObjectName](),
 | 
								workqueue.DefaultTypedControllerRateLimiter[cache.ObjectName](),
 | 
				
			||||||
			workqueue.TypedRateLimitingQueueConfig[cache.ObjectName]{
 | 
								workqueue.TypedRateLimitingQueueConfig[cache.ObjectName]{
 | 
				
			||||||
@@ -120,7 +118,6 @@ func NewController(
 | 
				
			|||||||
			},
 | 
								},
 | 
				
			||||||
		),
 | 
							),
 | 
				
			||||||
		labelCache: volumecache.NewVolumeLabelCache(),
 | 
							labelCache: volumecache.NewVolumeLabelCache(),
 | 
				
			||||||
		eventRecorder: recorder,
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	err := c.vpm.InitPlugins(plugins, prober, c)
 | 
						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")
 | 
						logger.Info("Starting SELinux warning controller")
 | 
				
			||||||
	defer logger.Info("Shutting down 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) {
 | 
						if !cache.WaitForNamedCacheSync("selinux_warning", ctx.Done(), c.podsSynced, c.pvcsSynced, c.pvsSynced, c.csiDriversSynced) {
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user