Allow custom client names to be used for cloud controllers
* This allows a controller to use cloud provider managed RBAC when --use-service-account-credentials is set. * Create ControllerInitFuncConstructor to pass to init funcs to avoid future function signature growth. * Add comments for context around legacy naming of node controllers. * Add example for setting client names from cloud controller manager.
This commit is contained in:
@@ -32,7 +32,7 @@ import (
|
||||
"github.com/spf13/pflag"
|
||||
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
"k8s.io/cloud-provider"
|
||||
cloudprovider "k8s.io/cloud-provider"
|
||||
"k8s.io/cloud-provider/app"
|
||||
cloudcontrollerconfig "k8s.io/cloud-provider/app/config"
|
||||
"k8s.io/cloud-provider/options"
|
||||
@@ -68,7 +68,15 @@ func main() {
|
||||
nodeIpamController.nodeIPAMControllerOptions.NodeIPAMControllerConfiguration = &nodeIpamController.nodeIPAMControllerConfiguration
|
||||
fss := cliflag.NamedFlagSets{}
|
||||
nodeIpamController.nodeIPAMControllerOptions.AddFlags(fss.FlagSet("nodeipam controller"))
|
||||
controllerInitializers["nodeipam"] = nodeIpamController.startNodeIpamControllerWrapper
|
||||
|
||||
controllerInitializers["nodeipam"] = app.ControllerInitFuncConstructor{
|
||||
// "node-controller" is the shared identity of all node controllers, including node, node lifecycle, and node ipam.
|
||||
// See https://github.com/kubernetes/kubernetes/pull/72764#issuecomment-453300990 for more context.
|
||||
InitContext: app.ControllerInitContext{
|
||||
ClientName: "node-controller",
|
||||
},
|
||||
Constructor: nodeIpamController.StartNodeIpamControllerWrapper,
|
||||
}
|
||||
|
||||
command := app.NewCloudControllerManagerCommand(ccmOptions, cloudInitializer, controllerInitializers, fss, wait.NeverStop)
|
||||
|
||||
|
Reference in New Issue
Block a user