diff --git a/pkg/controlplane/controller/defaultservicecidr/default_servicecidr_controller.go b/pkg/controlplane/controller/defaultservicecidr/default_servicecidr_controller.go index 6d0bb0a0b89..0cc5d71e098 100644 --- a/pkg/controlplane/controller/defaultservicecidr/default_servicecidr_controller.go +++ b/pkg/controlplane/controller/defaultservicecidr/default_servicecidr_controller.go @@ -106,10 +106,13 @@ func (c *Controller) Start(ctx context.Context) { c.eventRecorder = c.eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: controllerName}) c.eventBroadcaster.StartStructuredLogging(0) c.eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: c.client.CoreV1().Events("")}) - defer c.eventBroadcaster.Shutdown() klog.Infof("Starting %s", controllerName) - defer klog.Infof("Shutting down %s", controllerName) + go func() { + <-ctx.Done() + klog.Infof("Shutting down %s", controllerName) + c.eventBroadcaster.Shutdown() + }() go c.serviceCIDRInformer.Run(stopCh) if !cache.WaitForNamedCacheSync(controllerName, stopCh, c.serviceCIDRsSynced) {