From a84c75af62bc7af1bb6f36c9a3a594a40d32fc6b Mon Sep 17 00:00:00 2001 From: Joe Kralicky Date: Fri, 25 Jun 2021 14:54:36 -0400 Subject: [PATCH] Adds a command-line flag '--disable-helm-controller' that will disable the server's built-in helm controller. Problem: Testing installation and uninstallation of the Helm Controller on k3s is not possible if the Helm Controller is baked into the k3s server. Solution: The Helm Controller can optionally be disabled, which will allow users to manage its installation manually. Signed-off-by: Joe Kralicky --- pkg/cli/cmds/server.go | 6 ++++++ pkg/cli/server/server.go | 1 + pkg/daemons/config/types.go | 1 + pkg/server/server.go | 19 +++++++++++-------- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/pkg/cli/cmds/server.go b/pkg/cli/cmds/server.go index 187dd305ab..56a7374c29 100644 --- a/pkg/cli/cmds/server.go +++ b/pkg/cli/cmds/server.go @@ -53,6 +53,7 @@ type Server struct { DefaultLocalStoragePath string DisableCCM bool DisableNPC bool + DisableHelmController bool DisableKubeProxy bool DisableAPIServer bool DisableControllerManager bool @@ -339,6 +340,11 @@ func NewServerCommand(action func(*cli.Context) error) cli.Command { Usage: "(components) Disable " + version.Program + " default network policy controller", Destination: &ServerConfig.DisableNPC, }, + cli.BoolFlag{ + Name: "disable-helm-controller", + Usage: "(components) Disable Helm controller", + Destination: &ServerConfig.DisableHelmController, + }, cli.BoolFlag{ Name: "disable-apiserver", Hidden: true, diff --git a/pkg/cli/server/server.go b/pkg/cli/server/server.go index b2e4c0ecc3..302be45d79 100644 --- a/pkg/cli/server/server.go +++ b/pkg/cli/server/server.go @@ -119,6 +119,7 @@ func run(app *cli.Context, cfg *cmds.Server, leaderControllers server.CustomCont serverConfig.ControlConfig.ExtraCloudControllerArgs = cfg.ExtraCloudControllerArgs serverConfig.ControlConfig.DisableCCM = cfg.DisableCCM serverConfig.ControlConfig.DisableNPC = cfg.DisableNPC + serverConfig.ControlConfig.DisableHelmController = cfg.DisableHelmController serverConfig.ControlConfig.DisableKubeProxy = cfg.DisableKubeProxy serverConfig.ControlConfig.DisableETCD = cfg.DisableETCD serverConfig.ControlConfig.DisableAPIServer = cfg.DisableAPIServer diff --git a/pkg/daemons/config/types.go b/pkg/daemons/config/types.go index 042a66813d..dfd882a168 100644 --- a/pkg/daemons/config/types.go +++ b/pkg/daemons/config/types.go @@ -140,6 +140,7 @@ type Control struct { SystemDefaultRegistry string DisableCCM bool DisableNPC bool + DisableHelmController bool DisableKubeProxy bool DisableAPIServer bool DisableControllerManager bool diff --git a/pkg/server/server.go b/pkg/server/server.go index f574674233..5010b516e9 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -186,14 +186,17 @@ func coreControllers(ctx context.Context, sc *Context, config *Config) error { servicelb.DefaultLBImage = config.ControlConfig.SystemDefaultRegistry + "/" + servicelb.DefaultLBImage } - helm.Register(ctx, - sc.Apply, - sc.Helm.Helm().V1().HelmChart(), - sc.Helm.Helm().V1().HelmChartConfig(), - sc.Batch.Batch().V1().Job(), - sc.Auth.Rbac().V1().ClusterRoleBinding(), - sc.Core.Core().V1().ServiceAccount(), - sc.Core.Core().V1().ConfigMap()) + if !config.ControlConfig.DisableHelmController { + helm.Register(ctx, + sc.Apply, + sc.Helm.Helm().V1().HelmChart(), + sc.Helm.Helm().V1().HelmChartConfig(), + sc.Batch.Batch().V1().Job(), + sc.Auth.Rbac().V1().ClusterRoleBinding(), + sc.Core.Core().V1().ServiceAccount(), + sc.Core.Core().V1().ConfigMap()) + } + if err := servicelb.Register(ctx, sc.K8s, sc.Apply,