From 6fd8954fe86a1019cb20e80c2706d44b21ff5453 Mon Sep 17 00:00:00 2001 From: Mengjiao Liu Date: Sat, 26 Oct 2024 19:15:20 +0800 Subject: [PATCH] kube-controller-manager: also support context for record.NewBroadcaster 27a68ae introduced context support. In order to use that also with NewBroadcaster, a variant of the call is needed to allow the caller to specify the context. --- cmd/kube-controller-manager/app/controllermanager.go | 5 +++-- cmd/kube-controller-manager/app/options/options.go | 5 +++-- cmd/kube-controller-manager/app/testing/testserver.go | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/cmd/kube-controller-manager/app/controllermanager.go b/cmd/kube-controller-manager/app/controllermanager.go index 2c4782a18ba..87412f8ec2c 100644 --- a/cmd/kube-controller-manager/app/controllermanager.go +++ b/cmd/kube-controller-manager/app/controllermanager.go @@ -132,7 +132,8 @@ controller, and serviceaccounts controller.`, } cliflag.PrintFlags(cmd.Flags()) - c, err := s.Config(KnownControllers(), ControllersDisabledByDefault(), ControllerAliases()) + ctx := context.Background() + c, err := s.Config(ctx, KnownControllers(), ControllersDisabledByDefault(), ControllerAliases()) if err != nil { return err } @@ -140,7 +141,7 @@ controller, and serviceaccounts controller.`, // add feature enablement metrics fg := s.ComponentGlobalsRegistry.FeatureGateFor(featuregate.DefaultKubeComponent) fg.(featuregate.MutableFeatureGate).AddMetrics() - return Run(context.Background(), c.Complete()) + return Run(ctx, c.Complete()) }, Args: func(cmd *cobra.Command, args []string) error { for _, arg := range args { diff --git a/cmd/kube-controller-manager/app/options/options.go b/cmd/kube-controller-manager/app/options/options.go index 7556d946922..5bca6bd7a69 100644 --- a/cmd/kube-controller-manager/app/options/options.go +++ b/cmd/kube-controller-manager/app/options/options.go @@ -18,6 +18,7 @@ limitations under the License. package options import ( + "context" "fmt" "net" @@ -470,7 +471,7 @@ func (s *KubeControllerManagerOptions) Validate(allControllers []string, disable } // Config return a controller manager config objective -func (s KubeControllerManagerOptions) Config(allControllers []string, disabledByDefaultControllers []string, controllerAliases map[string]string) (*kubecontrollerconfig.Config, error) { +func (s KubeControllerManagerOptions) Config(ctx context.Context, allControllers []string, disabledByDefaultControllers []string, controllerAliases map[string]string) (*kubecontrollerconfig.Config, error) { if err := s.Validate(allControllers, disabledByDefaultControllers, controllerAliases); err != nil { return nil, err } @@ -494,7 +495,7 @@ func (s KubeControllerManagerOptions) Config(allControllers []string, disabledBy return nil, err } - eventBroadcaster := record.NewBroadcaster() + eventBroadcaster := record.NewBroadcaster(record.WithContext(ctx)) eventRecorder := eventBroadcaster.NewRecorder(clientgokubescheme.Scheme, v1.EventSource{Component: KubeControllerManagerUserAgent}) c := &kubecontrollerconfig.Config{ diff --git a/cmd/kube-controller-manager/app/testing/testserver.go b/cmd/kube-controller-manager/app/testing/testserver.go index c29ada8f566..bd5e088970d 100644 --- a/cmd/kube-controller-manager/app/testing/testserver.go +++ b/cmd/kube-controller-manager/app/testing/testserver.go @@ -113,7 +113,7 @@ func StartTestServer(ctx context.Context, customFlags []string) (result TestServ logger.Info("kube-controller-manager will listen securely", "port", s.SecureServing.BindPort) } - config, err := s.Config(all, disabled, aliases) + config, err := s.Config(ctx, all, disabled, aliases) if err != nil { return result, fmt.Errorf("failed to create config from options: %v", err) }