Address comments.

This commit is contained in:
cici37 2021-03-01 16:14:24 -08:00
parent 716122ccec
commit 9b3d42f20a
3 changed files with 15 additions and 10 deletions

View File

@ -61,10 +61,12 @@ func main() {
// Here is an example to add an controller(NodeIpamController) which will be used by cloud provider // Here is an example to add an controller(NodeIpamController) which will be used by cloud provider
// generate nodeIPAMConfig. Here is an sample code. // generate nodeIPAMConfig. Here is an sample code.
// If you do not need additional controller, please ignore. // 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) fs := pflag.NewFlagSet("fs", pflag.ContinueOnError)
nodeIPAMControllerOptions.AddFlags(fs) nodeIpamController.nodeIPAMControllerOptions.AddFlags(fs)
controllerInitializers["nodeipam"] = startNodeIpamControllerWrapper controllerInitializers["nodeipam"] = nodeIpamController.startNodeIpamControllerWrapper
command := app.NewCloudControllerManagerCommand(ccmOptions, cloudInitializer, controllerInitializers, fs, wait.NeverStop) command := app.NewCloudControllerManagerCommand(ccmOptions, cloudInitializer, controllerInitializers, fs, wait.NeverStop)

View File

@ -22,7 +22,6 @@ package main
import ( import (
"errors" "errors"
"fmt" "fmt"
nodeipamcontrolleroptions "k8s.io/kubernetes/cmd/kube-controller-manager/app/options"
"net" "net"
"net/http" "net/http"
"strings" "strings"
@ -34,6 +33,7 @@ import (
genericcontrollermanager "k8s.io/controller-manager/app" genericcontrollermanager "k8s.io/controller-manager/app"
"k8s.io/controller-manager/pkg/features" "k8s.io/controller-manager/pkg/features"
"k8s.io/klog/v2" "k8s.io/klog/v2"
nodeipamcontrolleroptions "k8s.io/kubernetes/cmd/kube-controller-manager/app/options"
nodeipamcontroller "k8s.io/kubernetes/pkg/controller/nodeipam" nodeipamcontroller "k8s.io/kubernetes/pkg/controller/nodeipam"
nodeipamconfig "k8s.io/kubernetes/pkg/controller/nodeipam/config" nodeipamconfig "k8s.io/kubernetes/pkg/controller/nodeipam/config"
"k8s.io/kubernetes/pkg/controller/nodeipam/ipam" "k8s.io/kubernetes/pkg/controller/nodeipam/ipam"
@ -47,18 +47,20 @@ const (
defaultNodeMaskCIDRIPv6 = 64 defaultNodeMaskCIDRIPv6 = 64
) )
var nodeIPAMControllerConfiguration nodeipamconfig.NodeIPAMControllerConfiguration type nodeIPAMController struct {
var nodeIPAMControllerOptions nodeipamcontrolleroptions.NodeIPAMControllerOptions nodeIPAMControllerConfiguration nodeipamconfig.NodeIPAMControllerConfiguration
nodeIPAMControllerOptions nodeipamcontrolleroptions.NodeIPAMControllerOptions
}
func startNodeIpamControllerWrapper(completedConfig *cloudcontrollerconfig.CompletedConfig, cloud cloudprovider.Interface) app.InitFunc { func (nodeIpamController *nodeIPAMController) startNodeIpamControllerWrapper(completedConfig *cloudcontrollerconfig.CompletedConfig, cloud cloudprovider.Interface) app.InitFunc {
errors := nodeIPAMControllerOptions.Validate() errors := nodeIpamController.nodeIPAMControllerOptions.Validate()
if len(errors) > 0 { if len(errors) > 0 {
klog.Fatal("NodeIPAM controller values are not properly set.") 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 func(ctx genericcontrollermanager.ControllerContext) (http.Handler, bool, error) {
return startNodeIpamController(completedConfig, nodeIPAMControllerConfiguration, ctx, cloud) return startNodeIpamController(completedConfig, nodeIpamController.nodeIPAMControllerConfiguration, ctx, cloud)
} }
} }

View File

@ -66,6 +66,7 @@ const (
// NewCloudControllerManagerCommand creates a *cobra.Command object with default parameters // 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. // 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 { func NewCloudControllerManagerCommand(s *options.CloudControllerManagerOptions, cloudInitializer InitCloudFunc, initFuncConstructor map[string]InitFuncConstructor, additionalFlags *pflag.FlagSet, stopCh <-chan struct{}) *cobra.Command {
cmd := &cobra.Command{ cmd := &cobra.Command{