From 16c150c15db321d9bc6049b9a2ac62af09a7b615 Mon Sep 17 00:00:00 2001 From: Timo Reimann Date: Mon, 15 Apr 2019 21:06:04 +0200 Subject: [PATCH] Suppress registering GCE LB provider flag if missing on CommandLine. Fixes an issue with GCE-specific parameters breaking out-of-tree cloud providers that do not host the flag in question. --- cmd/cloud-controller-manager/app/controllermanager.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cmd/cloud-controller-manager/app/controllermanager.go b/cmd/cloud-controller-manager/app/controllermanager.go index 26710bbb928..c1c45e2b34b 100644 --- a/cmd/cloud-controller-manager/app/controllermanager.go +++ b/cmd/cloud-controller-manager/app/controllermanager.go @@ -18,6 +18,7 @@ package app import ( "context" + "flag" "fmt" "net/http" "os" @@ -86,9 +87,12 @@ the cloud specific control loops shipped with Kubernetes.`, namedFlagSets := s.Flags(KnownControllers(), ControllersDisabledByDefault.List()) verflag.AddFlags(namedFlagSets.FlagSet("global")) globalflag.AddGlobalFlags(namedFlagSets.FlagSet("global"), cmd.Name()) - // hoist this flag from the global flagset to preserve the commandline until - // the gce cloudprovider is removed. - globalflag.Register(namedFlagSets.FlagSet("generic"), "cloud-provider-gce-lb-src-cidrs") + + if flag.CommandLine.Lookup("cloud-provider-gce-lb-src-cidrs") != nil { + // hoist this flag from the global flagset to preserve the commandline until + // the gce cloudprovider is removed. + globalflag.Register(namedFlagSets.FlagSet("generic"), "cloud-provider-gce-lb-src-cidrs") + } for _, f := range namedFlagSets.FlagSets { fs.AddFlagSet(f) }