From fbd24d1669ed972389c65e6f5bcf2c97130ecf7c Mon Sep 17 00:00:00 2001 From: cpu1 Date: Fri, 16 Oct 2020 14:58:58 +0530 Subject: [PATCH] Add support for force-ugprading managed nodegroups --- pkg/ctl/upgrade/nodegroup.go | 1 + pkg/managed/service.go | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/pkg/ctl/upgrade/nodegroup.go b/pkg/ctl/upgrade/nodegroup.go index 7f8703af2e..072d6e9ee6 100644 --- a/pkg/ctl/upgrade/nodegroup.go +++ b/pkg/ctl/upgrade/nodegroup.go @@ -30,6 +30,7 @@ func upgradeNodeGroupCmd(cmd *cmdutils.Cmd) { fs.StringVarP(&options.NodegroupName, "name", "", "", "Nodegroup name") fs.StringVarP(&options.KubernetesVersion, "kubernetes-version", "", "", "Kubernetes version") fs.StringVarP(&options.LaunchTemplateVersion, "launch-template-version", "", "", "Launch template version") + fs.BoolVar(&options.ForceUpgrade, "force-upgrade", false, "Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue") cmdutils.AddRegionFlag(fs, &cmd.ProviderConfig) cmdutils.AddConfigFileFlag(fs, &cmd.ClusterConfigFile) diff --git a/pkg/managed/service.go b/pkg/managed/service.go index e0a3f3d9f5..07cbc4c554 100644 --- a/pkg/managed/service.go +++ b/pkg/managed/service.go @@ -48,6 +48,8 @@ type UpgradeOptions struct { // LaunchTemplateVersion launch template version // valid only if a nodegroup was created with a launch template LaunchTemplateVersion string + //ForceUpgrade enables force upgrade + ForceUpgrade bool } // TODO use goformation types @@ -241,6 +243,8 @@ func (m *Service) UpgradeNodeGroup(options UpgradeOptions) error { ngResource.LaunchTemplate.Version = gfnt.NewString(options.LaunchTemplateVersion) } + ngResource.ForceUpdateEnabled = gfnt.NewBoolean(options.ForceUpgrade) + logger.Info("upgrading nodegroup version") if err := updateStack(stack); err != nil { return err