From 9b3d42f20af74a1e664aad80595998bdee275bd6 Mon Sep 17 00:00:00 2001 From: cici37 Date: Mon, 1 Mar 2021 16:14:24 -0800 Subject: [PATCH] Address comments. --- cmd/cloud-controller-manager/main.go | 8 +++++--- .../nodeipamcontroller.go | 16 +++++++++------- .../cloud-provider/app/controllermanager.go | 1 + 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/cmd/cloud-controller-manager/main.go b/cmd/cloud-controller-manager/main.go index 4a311399192..f4950450728 100644 --- a/cmd/cloud-controller-manager/main.go +++ b/cmd/cloud-controller-manager/main.go @@ -61,10 +61,12 @@ func main() { // Here is an example to add an controller(NodeIpamController) which will be used by cloud provider // generate nodeIPAMConfig. Here is an sample code. // If you do not need additional controller, please ignore. - nodeIPAMControllerOptions.NodeIPAMControllerConfiguration = &nodeIPAMControllerConfiguration + + nodeIpamController := nodeIPAMController{} + nodeIpamController.nodeIPAMControllerOptions.NodeIPAMControllerConfiguration = &nodeIpamController.nodeIPAMControllerConfiguration fs := pflag.NewFlagSet("fs", pflag.ContinueOnError) - nodeIPAMControllerOptions.AddFlags(fs) - controllerInitializers["nodeipam"] = startNodeIpamControllerWrapper + nodeIpamController.nodeIPAMControllerOptions.AddFlags(fs) + controllerInitializers["nodeipam"] = nodeIpamController.startNodeIpamControllerWrapper command := app.NewCloudControllerManagerCommand(ccmOptions, cloudInitializer, controllerInitializers, fs, wait.NeverStop) diff --git a/cmd/cloud-controller-manager/nodeipamcontroller.go b/cmd/cloud-controller-manager/nodeipamcontroller.go index a99a47672c9..ebceef0629f 100644 --- a/cmd/cloud-controller-manager/nodeipamcontroller.go +++ b/cmd/cloud-controller-manager/nodeipamcontroller.go @@ -22,7 +22,6 @@ package main import ( "errors" "fmt" - nodeipamcontrolleroptions "k8s.io/kubernetes/cmd/kube-controller-manager/app/options" "net" "net/http" "strings" @@ -34,6 +33,7 @@ import ( genericcontrollermanager "k8s.io/controller-manager/app" "k8s.io/controller-manager/pkg/features" "k8s.io/klog/v2" + nodeipamcontrolleroptions "k8s.io/kubernetes/cmd/kube-controller-manager/app/options" nodeipamcontroller "k8s.io/kubernetes/pkg/controller/nodeipam" nodeipamconfig "k8s.io/kubernetes/pkg/controller/nodeipam/config" "k8s.io/kubernetes/pkg/controller/nodeipam/ipam" @@ -47,18 +47,20 @@ const ( defaultNodeMaskCIDRIPv6 = 64 ) -var nodeIPAMControllerConfiguration nodeipamconfig.NodeIPAMControllerConfiguration -var nodeIPAMControllerOptions nodeipamcontrolleroptions.NodeIPAMControllerOptions +type nodeIPAMController struct { + nodeIPAMControllerConfiguration nodeipamconfig.NodeIPAMControllerConfiguration + nodeIPAMControllerOptions nodeipamcontrolleroptions.NodeIPAMControllerOptions +} -func startNodeIpamControllerWrapper(completedConfig *cloudcontrollerconfig.CompletedConfig, cloud cloudprovider.Interface) app.InitFunc { - errors := nodeIPAMControllerOptions.Validate() +func (nodeIpamController *nodeIPAMController) startNodeIpamControllerWrapper(completedConfig *cloudcontrollerconfig.CompletedConfig, cloud cloudprovider.Interface) app.InitFunc { + errors := nodeIpamController.nodeIPAMControllerOptions.Validate() if len(errors) > 0 { klog.Fatal("NodeIPAM controller values are not properly set.") } - nodeIPAMControllerOptions.ApplyTo(&nodeIPAMControllerConfiguration) + nodeIpamController.nodeIPAMControllerOptions.ApplyTo(&nodeIpamController.nodeIPAMControllerConfiguration) return func(ctx genericcontrollermanager.ControllerContext) (http.Handler, bool, error) { - return startNodeIpamController(completedConfig, nodeIPAMControllerConfiguration, ctx, cloud) + return startNodeIpamController(completedConfig, nodeIpamController.nodeIPAMControllerConfiguration, ctx, cloud) } } diff --git a/staging/src/k8s.io/cloud-provider/app/controllermanager.go b/staging/src/k8s.io/cloud-provider/app/controllermanager.go index 42c0cc94353..d7619117fb6 100644 --- a/staging/src/k8s.io/cloud-provider/app/controllermanager.go +++ b/staging/src/k8s.io/cloud-provider/app/controllermanager.go @@ -66,6 +66,7 @@ const ( // NewCloudControllerManagerCommand creates a *cobra.Command object with default parameters // initFuncConstructor is a map of named controller groups (you can start more than one in an init func) paired to their InitFuncConstructor. +// additionalFlags provides controller specific flags to be included in the complete set of controller manager flags func NewCloudControllerManagerCommand(s *options.CloudControllerManagerOptions, cloudInitializer InitCloudFunc, initFuncConstructor map[string]InitFuncConstructor, additionalFlags *pflag.FlagSet, stopCh <-chan struct{}) *cobra.Command { cmd := &cobra.Command{