Skip to content

Commit 89c5f23

Browse files
Fix issue with upgrade policy not being applied (#8577)
1 parent 7e314b3 commit 89c5f23

File tree

7 files changed

+32
-0
lines changed

7 files changed

+32
-0
lines changed

pkg/apis/eksctl.io/v1alpha5/types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1146,6 +1146,7 @@ func NewClusterConfig() *ClusterConfig {
11461146
},
11471147
PrivateCluster: &PrivateCluster{},
11481148
AccessConfig: &AccessConfig{},
1149+
UpgradePolicy: &UpgradePolicy{},
11491150
}
11501151

11511152
return cfg

pkg/cfn/builder/cluster.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,13 +355,23 @@ func (c *ClusterResourceSet) addResourcesForControlPlane(subnetDetails *SubnetDe
355355
}
356356
}
357357

358+
var upgradePolicy *gfneks.Cluster_UpgradePolicy
359+
if c.spec.UpgradePolicy != nil {
360+
if c.spec.UpgradePolicy.SupportType != "" {
361+
upgradePolicy = &gfneks.Cluster_UpgradePolicy{
362+
SupportType: gfnt.NewString(c.spec.UpgradePolicy.SupportType),
363+
}
364+
}
365+
}
366+
358367
cluster := gfneks.Cluster{
359368
EncryptionConfig: encryptionConfigs,
360369
Logging: makeClusterLogging(c.spec),
361370
Name: gfnt.NewString(c.spec.Metadata.Name),
362371
ResourcesVpcConfig: clusterVPC,
363372
RoleArn: serviceRoleARN,
364373
BootstrapSelfManagedAddons: gfnt.NewBoolean(false),
374+
UpgradePolicy: upgradePolicy,
365375
AccessConfig: &gfneks.Cluster_AccessConfig{
366376
AuthenticationMode: gfnt.NewString(string(c.spec.AccessConfig.AuthenticationMode)),
367377
BootstrapClusterCreatorAdminPermissions: gfnt.NewBoolean(!api.IsDisabled(c.spec.AccessConfig.BootstrapClusterCreatorAdminPermissions)),

pkg/cfn/builder/cluster_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,25 @@ var _ = Describe("Cluster Template Builder", func() {
7979
Expect(controlPlane.ResourcesVpcConfig.SubnetIDs).To(HaveLen(4))
8080
Expect(controlPlane.RoleArn).To(ContainElement([]interface{}{"ServiceRole", "Arn"}))
8181
Expect(controlPlane.EncryptionConfig).To(BeNil())
82+
Expect(controlPlane.UpgradePolicy).To(BeNil())
8283
Expect(controlPlane.KubernetesNetworkConfig.ServiceIPv4CIDR).To(Equal("131.10.55.70/18"))
8384
Expect(controlPlane.KubernetesNetworkConfig.IPFamily).To(Equal("ipv4"))
8485
Expect(controlPlane.AccessConfig.BootstrapClusterCreatorAdminPermissions).To(BeTrue())
8586
})
8687

88+
Context("when UpgradePolicy is set with SupportType", func() {
89+
BeforeEach(func() {
90+
cfg.UpgradePolicy = &api.UpgradePolicy{
91+
SupportType: api.SupportTypeStandard,
92+
}
93+
})
94+
95+
It("should include UpgradePolicy with SupportType in control plane resources", func() {
96+
Expect(clusterTemplate.Resources["ControlPlane"].Properties.UpgradePolicy).NotTo(BeNil())
97+
Expect(clusterTemplate.Resources["ControlPlane"].Properties.UpgradePolicy.SupportType).To(Equal(api.SupportTypeStandard))
98+
})
99+
})
100+
87101
It("should add vpc resources", func() {
88102
Expect(clusterTemplate.Resources).To(HaveKey(vpcResourceKey))
89103
Expect(clusterTemplate.Resources).To(HaveKey(igwKey))

pkg/cfn/builder/fakes/fake_cfn_template.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ type Properties struct {
5555

5656
VPCZoneIdentifier interface{}
5757

58+
UpgradePolicy *struct {
59+
SupportType string
60+
}
61+
5862
LoadBalancerNames []string
5963
MetricsCollection []map[string]interface{}
6064
TargetGroupARNs []string

pkg/ctl/cmdutils/configfile.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ var (
5050
"version",
5151
"cluster",
5252
"namepace",
53+
"support-type",
5354
}
5455
defaultFlagsIncompatibleWithoutConfigFile = []string{
5556
"only",

pkg/ctl/cmdutils/filter/nodegroup_filter_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,7 @@ const expected = `
350350
"region": "eu-central-1",
351351
"version": "1.32"
352352
},
353+
"upgradePolicy": {},
353354
"kubernetesNetworkConfig": {
354355
"ipFamily": "IPv4"
355356
},

pkg/ctl/create/cluster.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ func createClusterCmdWithRunFunc(cmd *cmdutils.Cmd, runFunc func(cmd *cmdutils.C
9999
cmdutils.AddRegionFlag(fs, &cmd.ProviderConfig)
100100
fs.BoolVar(cfg.IAM.WithOIDC, "with-oidc", false, "Enable the IAM OIDC provider")
101101
fs.StringSliceVar(&params.AvailabilityZones, "zones", nil, "(auto-select if unspecified)")
102+
fs.StringVarP(&cfg.UpgradePolicy.SupportType, "support-type", "", "", "Set cluster's upgradePolicy supportType")
102103
cmdutils.AddVersionFlag(fs, cfg.Metadata, "")
103104
cmdutils.AddConfigFileFlag(fs, &cmd.ClusterConfigFile)
104105
cmdutils.AddTimeoutFlag(fs, &cmd.ProviderConfig.WaitTimeout)

0 commit comments

Comments
 (0)