From 56bd1cc028249c71d2e98d73772f42d89c46dda8 Mon Sep 17 00:00:00 2001 From: Saurav Agarwalla Date: Wed, 11 May 2022 23:06:34 +0000 Subject: [PATCH] Changes to make tagging controller compatible with K8s 1.22 --- cmd/aws-cloud-controller-manager/main.go | 9 +-------- go.mod | 1 + .../tagging/tagging_controller_wrapper.go | 15 +++++++-------- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/cmd/aws-cloud-controller-manager/main.go b/cmd/aws-cloud-controller-manager/main.go index cf1f85db9e..2f18550dd7 100644 --- a/cmd/aws-cloud-controller-manager/main.go +++ b/cmd/aws-cloud-controller-manager/main.go @@ -65,14 +65,7 @@ func main() { fss := cliflag.NamedFlagSets{} taggingControllerWrapper.Options.AddFlags(fss.FlagSet("tagging controller")) - taggingControllerConstructor := app.ControllerInitFuncConstructor{ - InitContext: app.ControllerInitContext{ - ClientName: tagging.TaggingControllerClientName, - }, - Constructor: taggingControllerWrapper.StartTaggingControllerWrapper, - } - - controllerInitializers[tagging.TaggingControllerKey] = taggingControllerConstructor + controllerInitializers[tagging.TaggingControllerKey] = taggingControllerWrapper.StartTaggingControllerWrapper app.ControllersDisabledByDefault.Insert(tagging.TaggingControllerKey) command := app.NewCloudControllerManagerCommand(opts, cloudInitializer, controllerInitializers, fss, wait.NeverStop) diff --git a/go.mod b/go.mod index 8752cd8328..27a8a4aa01 100644 --- a/go.mod +++ b/go.mod @@ -14,6 +14,7 @@ require ( k8s.io/cloud-provider v0.22.8 k8s.io/code-generator v0.22.8 k8s.io/component-base v0.22.8 + k8s.io/controller-manager v0.22.8 k8s.io/csi-translation-lib v0.22.8 k8s.io/klog/v2 v2.9.0 k8s.io/kubelet v0.22.8 diff --git a/pkg/controllers/tagging/tagging_controller_wrapper.go b/pkg/controllers/tagging/tagging_controller_wrapper.go index f5d376b482..3722872a8e 100644 --- a/pkg/controllers/tagging/tagging_controller_wrapper.go +++ b/pkg/controllers/tagging/tagging_controller_wrapper.go @@ -1,13 +1,12 @@ package tagging import ( - "context" + "net/http" cloudprovider "k8s.io/cloud-provider" "k8s.io/cloud-provider/app" cloudcontrollerconfig "k8s.io/cloud-provider/app/config" genericcontrollermanager "k8s.io/controller-manager/app" - "k8s.io/controller-manager/controller" "k8s.io/klog/v2" "k8s.io/cloud-provider-aws/pkg/controllers/options" @@ -27,13 +26,13 @@ type ControllerWrapper struct { } // StartTaggingControllerWrapper is used to take cloud config as input and start the tagging controller -func (tc *ControllerWrapper) StartTaggingControllerWrapper(initContext app.ControllerInitContext, completedConfig *cloudcontrollerconfig.CompletedConfig, cloud cloudprovider.Interface) app.InitFunc { - return func(ctx context.Context, controllerContext genericcontrollermanager.ControllerContext) (controller.Interface, bool, error) { - return tc.startTaggingController(ctx, initContext, completedConfig, cloud) +func (tc *ControllerWrapper) StartTaggingControllerWrapper(completedConfig *cloudcontrollerconfig.CompletedConfig, cloud cloudprovider.Interface) app.InitFunc { + return func(ctx genericcontrollermanager.ControllerContext) (http.Handler, bool, error) { + return tc.startTaggingController(ctx, completedConfig, cloud) } } -func (tc *ControllerWrapper) startTaggingController(ctx context.Context, initContext app.ControllerInitContext, completedConfig *cloudcontrollerconfig.CompletedConfig, cloud cloudprovider.Interface) (controller.Interface, bool, error) { +func (tc *ControllerWrapper) startTaggingController(ctx genericcontrollermanager.ControllerContext, completedConfig *cloudcontrollerconfig.CompletedConfig, cloud cloudprovider.Interface) (http.Handler, bool, error) { err := tc.Options.Validate() if err != nil { klog.Fatalf("Tagging controller inputs are not properly set: %v", err) @@ -42,7 +41,7 @@ func (tc *ControllerWrapper) startTaggingController(ctx context.Context, initCon // Start the Controller taggingcontroller, err := NewTaggingController( completedConfig.SharedInformers.Core().V1().Nodes(), - completedConfig.ClientBuilder.ClientOrDie(initContext.ClientName), + completedConfig.ClientBuilder.ClientOrDie(TaggingControllerClientName), cloud, completedConfig.ComponentConfig.KubeCloudShared.NodeMonitorPeriod.Duration, tc.Options.Tags, @@ -53,7 +52,7 @@ func (tc *ControllerWrapper) startTaggingController(ctx context.Context, initCon return nil, false, nil } - go taggingcontroller.Run(ctx.Done()) + go taggingcontroller.Run(ctx.Stop) return nil, true, nil }