Skip to content

Commit e93b1ef

Browse files
authored
Skip bundles override for e2e-test when upgrade is from latest minor release (#8807)
1 parent 7415c2b commit e93b1ef

File tree

5 files changed

+52
-36
lines changed

5 files changed

+52
-36
lines changed

test/e2e/vsphere_test.go

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4931,11 +4931,12 @@ func TestVSphereKubernetes127UbuntuTo128UpgradeWithCheckpoint(t *testing.T) {
49314931

49324932
func TestVSphereKubernetes131RedhatUpgradeFromLatestMinorRelease(t *testing.T) {
49334933
release := latestMinorRelease(t)
4934+
useBundlesOverride := false
49344935
provider := framework.NewVSphere(t,
49354936
framework.WithVSphereFillers(
49364937
api.WithOsFamilyForAllMachines(v1alpha1.RedHat),
49374938
),
4938-
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube131, framework.RedHat8, release),
4939+
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube131, framework.RedHat8, release, useBundlesOverride),
49394940
)
49404941
test := framework.NewClusterE2ETest(
49414942
t,
@@ -4962,11 +4963,12 @@ func TestVSphereKubernetes131WithOIDCManagementClusterUpgradeFromLatestSideEffec
49624963

49634964
func TestVSphereKubernetes127To128UbuntuUpgradeFromLatestMinorRelease(t *testing.T) {
49644965
release := latestMinorRelease(t)
4966+
useBundlesOverride := false
49654967
provider := framework.NewVSphere(t,
49664968
framework.WithVSphereFillers(
49674969
api.WithOsFamilyForAllMachines(v1alpha1.Ubuntu),
49684970
),
4969-
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube127, framework.Ubuntu2004, release),
4971+
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube127, framework.Ubuntu2004, release, useBundlesOverride),
49704972
)
49714973
test := framework.NewClusterE2ETest(
49724974
t,
@@ -4989,11 +4991,12 @@ func TestVSphereKubernetes127To128UbuntuUpgradeFromLatestMinorRelease(t *testing
49894991

49904992
func TestVSphereKubernetes128To129UbuntuUpgradeFromLatestMinorRelease(t *testing.T) {
49914993
release := latestMinorRelease(t)
4994+
useBundlesOverride := false
49924995
provider := framework.NewVSphere(t,
49934996
framework.WithVSphereFillers(
49944997
api.WithOsFamilyForAllMachines(v1alpha1.Ubuntu),
49954998
),
4996-
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube128, framework.Ubuntu2004, release),
4999+
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube128, framework.Ubuntu2004, release, useBundlesOverride),
49975000
)
49985001
test := framework.NewClusterE2ETest(
49995002
t,
@@ -5016,11 +5019,12 @@ func TestVSphereKubernetes128To129UbuntuUpgradeFromLatestMinorRelease(t *testing
50165019

50175020
func TestVSphereKubernetes129To130UbuntuUpgradeFromLatestMinorRelease(t *testing.T) {
50185021
release := latestMinorRelease(t)
5022+
useBundlesOverride := false
50195023
provider := framework.NewVSphere(t,
50205024
framework.WithVSphereFillers(
50215025
api.WithOsFamilyForAllMachines(v1alpha1.Ubuntu),
50225026
),
5023-
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube129, framework.Ubuntu2004, release),
5027+
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube129, framework.Ubuntu2004, release, useBundlesOverride),
50245028
)
50255029
test := framework.NewClusterE2ETest(
50265030
t,
@@ -5043,11 +5047,12 @@ func TestVSphereKubernetes129To130UbuntuUpgradeFromLatestMinorRelease(t *testing
50435047

50445048
func TestVSphereKubernetes130To131UbuntuUpgradeFromLatestMinorRelease(t *testing.T) {
50455049
release := latestMinorRelease(t)
5050+
useBundlesOverride := false
50465051
provider := framework.NewVSphere(t,
50475052
framework.WithVSphereFillers(
50485053
api.WithOsFamilyForAllMachines(v1alpha1.Ubuntu),
50495054
),
5050-
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube130, framework.Ubuntu2004, release),
5055+
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube130, framework.Ubuntu2004, release, useBundlesOverride),
50515056
)
50525057
test := framework.NewClusterE2ETest(
50535058
t,
@@ -5070,12 +5075,13 @@ func TestVSphereKubernetes130To131UbuntuUpgradeFromLatestMinorRelease(t *testing
50705075

50715076
func TestVSphereKubernetes130To131UbuntuInPlaceUpgradeFromLatestMinorRelease(t *testing.T) {
50725077
release := latestMinorRelease(t)
5078+
useBundlesOverride := false
50735079
provider := framework.NewVSphere(
50745080
t,
50755081
framework.WithVSphereFillers(
50765082
api.WithOsFamilyForAllMachines(v1alpha1.Ubuntu),
50775083
),
5078-
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube130, framework.Ubuntu2004, release),
5084+
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube130, framework.Ubuntu2004, release, useBundlesOverride),
50795085
)
50805086
test := framework.NewClusterE2ETest(
50815087
t,
@@ -5145,11 +5151,12 @@ func TestVSphereKubernetes128BottlerocketAndRemoveWorkerNodeGroups(t *testing.T)
51455151

51465152
func TestVSphereKubernetes127To128RedhatUpgradeFromLatestMinorRelease(t *testing.T) {
51475153
release := latestMinorRelease(t)
5154+
useBundlesOverride := false
51485155
provider := framework.NewVSphere(t,
51495156
framework.WithVSphereFillers(
51505157
api.WithOsFamilyForAllMachines(v1alpha1.RedHat),
51515158
),
5152-
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube127, framework.RedHat8, release),
5159+
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube127, framework.RedHat8, release, useBundlesOverride),
51535160
)
51545161
test := framework.NewClusterE2ETest(
51555162
t,
@@ -5172,11 +5179,12 @@ func TestVSphereKubernetes127To128RedhatUpgradeFromLatestMinorRelease(t *testing
51725179

51735180
func TestVSphereKubernetes128To129RedhatUpgradeFromLatestMinorRelease(t *testing.T) {
51745181
release := latestMinorRelease(t)
5182+
useBundlesOverride := false
51755183
provider := framework.NewVSphere(t,
51765184
framework.WithVSphereFillers(
51775185
api.WithOsFamilyForAllMachines(v1alpha1.RedHat),
51785186
),
5179-
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube128, framework.RedHat8, release),
5187+
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube128, framework.RedHat8, release, useBundlesOverride),
51805188
)
51815189
test := framework.NewClusterE2ETest(
51825190
t,
@@ -5199,11 +5207,12 @@ func TestVSphereKubernetes128To129RedhatUpgradeFromLatestMinorRelease(t *testing
51995207

52005208
func TestVSphereKubernetes129To130RedhatUpgradeFromLatestMinorRelease(t *testing.T) {
52015209
release := latestMinorRelease(t)
5210+
useBundlesOverride := false
52025211
provider := framework.NewVSphere(t,
52035212
framework.WithVSphereFillers(
52045213
api.WithOsFamilyForAllMachines(v1alpha1.RedHat),
52055214
),
5206-
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube129, framework.RedHat8, release),
5215+
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube129, framework.RedHat8, release, useBundlesOverride),
52075216
)
52085217
test := framework.NewClusterE2ETest(
52095218
t,
@@ -5226,11 +5235,12 @@ func TestVSphereKubernetes129To130RedhatUpgradeFromLatestMinorRelease(t *testing
52265235

52275236
func TestVSphereKubernetes130To131RedhatUpgradeFromLatestMinorRelease(t *testing.T) {
52285237
release := latestMinorRelease(t)
5238+
useBundlesOverride := false
52295239
provider := framework.NewVSphere(t,
52305240
framework.WithVSphereFillers(
52315241
api.WithOsFamilyForAllMachines(v1alpha1.RedHat),
52325242
),
5233-
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube130, framework.RedHat8, release),
5243+
framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube130, framework.RedHat8, release, useBundlesOverride),
52345244
)
52355245
test := framework.NewClusterE2ETest(
52365246
t,
@@ -5284,6 +5294,7 @@ func TestVSphereKubernetes131UbuntuUpgradeAndRemoveWorkerNodeGroupsAPI(t *testin
52845294
func TestVSphereKubernetes130to131UpgradeFromLatestMinorReleaseBottleRocketAPI(t *testing.T) {
52855295
release := latestMinorRelease(t)
52865296
provider := framework.NewVSphere(t)
5297+
useBundlesOverride := false
52875298
managementCluster := framework.NewClusterE2ETest(
52885299
t, provider,
52895300
)
@@ -5295,7 +5306,7 @@ func TestVSphereKubernetes130to131UpgradeFromLatestMinorReleaseBottleRocketAPI(t
52955306
api.VSphereToConfigFiller(
52965307
api.WithOsFamilyForAllMachines(v1alpha1.Bottlerocket),
52975308
),
5298-
provider.WithKubeVersionAndOSForRelease(v1alpha1.Kube130, framework.Bottlerocket1, release),
5309+
provider.WithKubeVersionAndOSForRelease(v1alpha1.Kube130, framework.Bottlerocket1, release, useBundlesOverride),
52995310
)
53005311

53015312
test := framework.NewMulticlusterE2ETest(t, managementCluster)
@@ -5311,7 +5322,7 @@ func TestVSphereKubernetes130to131UpgradeFromLatestMinorReleaseBottleRocketAPI(t
53115322
api.VSphereToConfigFiller(
53125323
api.WithOsFamilyForAllMachines(v1alpha1.Bottlerocket),
53135324
),
5314-
provider.WithKubeVersionAndOSForRelease(v1alpha1.Kube130, framework.Bottlerocket1, release),
5325+
provider.WithKubeVersionAndOSForRelease(v1alpha1.Kube130, framework.Bottlerocket1, release, useBundlesOverride),
53155326
)
53165327

53175328
test.WithWorkloadClusters(wc)

test/framework/cloudstack.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -331,10 +331,11 @@ func cloudStackMachineConfig(name string, fillers ...api.CloudStackMachineConfig
331331
// templateForKubeVersionAndOS returns a CloudStack filler for the given OS and Kubernetes version.
332332
func (c *CloudStack) templateForKubeVersionAndOS(kubeVersion anywherev1.KubernetesVersion, os OS, release *releasev1.EksARelease) api.CloudStackFiller {
333333
var template string
334+
useBundlesOverride := getBundlesOverride() == "true"
334335
if release == nil {
335-
template = c.templateForDevRelease(kubeVersion, os)
336+
template = c.templateForDevRelease(kubeVersion, os, useBundlesOverride)
336337
} else {
337-
template = c.templatesRegistry.templateForRelease(c.t, release, kubeVersion, os)
338+
template = c.templatesRegistry.templateForRelease(c.t, release, kubeVersion, os, useBundlesOverride)
338339
}
339340

340341
return api.WithCloudStackTemplateForAllMachines(template)
@@ -510,9 +511,9 @@ func (c *CloudStack) getDevRelease() *releasev1.EksARelease {
510511
return c.devRelease
511512
}
512513

513-
func (c *CloudStack) templateForDevRelease(kubeVersion anywherev1.KubernetesVersion, os OS) string {
514+
func (c *CloudStack) templateForDevRelease(kubeVersion anywherev1.KubernetesVersion, os OS, useBundlesOverride bool) string {
514515
c.t.Helper()
515-
return c.templatesRegistry.templateForRelease(c.t, c.getDevRelease(), kubeVersion, os)
516+
return c.templatesRegistry.templateForRelease(c.t, c.getDevRelease(), kubeVersion, os, useBundlesOverride)
516517
}
517518

518519
// envVarForTemplate Looks for explicit configuration through an env var: "T_CLOUDSTACK_TEMPLATE_{osFamily}_{eks-d version}"

test/framework/nutanix.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,8 @@ func WithRedHat9Kubernetes131Nutanix() NutanixOpt {
316316
// to use this OS family.
317317
func withNutanixKubeVersionAndOSForUUID(kubeVersion anywherev1.KubernetesVersion, os OS, release *releasev1.EksARelease) NutanixOpt {
318318
return func(n *Nutanix) {
319-
name := n.templateForDevRelease(kubeVersion, os)
319+
useBundlesOverride := getBundlesOverride() == "true"
320+
name := n.templateForDevRelease(kubeVersion, os, useBundlesOverride)
320321
n.fillers = append(n.fillers, n.withNutanixUUID(name, osFamiliesForOS[os])...)
321322
}
322323
}
@@ -449,10 +450,11 @@ func WithNutanixSubnetUUID() NutanixOpt {
449450
// templateForKubeVersionAndOS returns a Nutanix filler for the given OS and Kubernetes version.
450451
func (n *Nutanix) templateForKubeVersionAndOS(kubeVersion anywherev1.KubernetesVersion, os OS, release *releasev1.EksARelease) api.NutanixFiller {
451452
var template string
453+
useBundlesOverride := getBundlesOverride() == "true"
452454
if release == nil {
453-
template = n.templateForDevRelease(kubeVersion, os)
455+
template = n.templateForDevRelease(kubeVersion, os, useBundlesOverride)
454456
} else {
455-
template = n.templatesRegistry.templateForRelease(n.t, release, kubeVersion, os)
457+
template = n.templatesRegistry.templateForRelease(n.t, release, kubeVersion, os, useBundlesOverride)
456458
}
457459
return api.WithNutanixMachineTemplateImageName(template)
458460
}
@@ -566,9 +568,9 @@ func (n *Nutanix) getDevRelease() *releasev1.EksARelease {
566568
return n.devRelease
567569
}
568570

569-
func (n *Nutanix) templateForDevRelease(kubeVersion anywherev1.KubernetesVersion, os OS) string {
571+
func (n *Nutanix) templateForDevRelease(kubeVersion anywherev1.KubernetesVersion, os OS, useBundlesOverride bool) string {
570572
n.t.Helper()
571-
return n.templatesRegistry.templateForRelease(n.t, n.getDevRelease(), kubeVersion, os)
573+
return n.templatesRegistry.templateForRelease(n.t, n.getDevRelease(), kubeVersion, os, useBundlesOverride)
572574
}
573575

574576
// envVarForTemplate looks for explicit configuration through an env var: "T_NUTANIX_TEMPLATE_{osFamily}_{eks-d version}"

test/framework/template.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ type templateRegistry struct {
3838
// 3. If the template doesn't exist, default to the value of the default template env vars: eg. "T_CLOUDSTACK_TEMPLATE_REDHAT_1_23".
3939
// This is a catch all condition. Mostly for edge cases where the bundle has been updated with a new eks-d version, but the
4040
// the new template hasn't been imported yet. It also preserves backwards compatibility.
41-
func (tc *templateRegistry) templateForRelease(t *testing.T, release *releasev1.EksARelease, kubeVersion anywherev1.KubernetesVersion, operatingSystem OS) string {
41+
func (tc *templateRegistry) templateForRelease(t *testing.T, release *releasev1.EksARelease, kubeVersion anywherev1.KubernetesVersion, operatingSystem OS, useBundlesOverride bool) string {
4242
t.Helper()
43-
versionsBundle := readVersionsBundles(t, release, kubeVersion)
43+
versionsBundle := readVersionsBundles(t, release, kubeVersion, useBundlesOverride)
4444
eksDName := versionsBundle.EksD.Name
4545

4646
templateEnvVarName := tc.generator.envVarForTemplate(operatingSystem, eksDName)

test/framework/vsphere.go

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -460,17 +460,19 @@ func (v *VSphere) WithNewVSphereWorkerNodeGroup(name string, workerNodeGroup *Wo
460460
// templateForKubeVersionAndOS returns a vSphere filler for the given OS and Kubernetes version.
461461
func (v *VSphere) templateForKubeVersionAndOS(kubeVersion anywherev1.KubernetesVersion, os OS, release *releasev1.EksARelease) api.VSphereFiller {
462462
var template string
463+
useBundlesOverride := getBundlesOverride() == "true"
463464
if release == nil {
464-
template = v.templateForDevRelease(kubeVersion, os)
465+
template = v.templateForDevRelease(kubeVersion, os, useBundlesOverride)
465466
} else {
466-
template = v.templatesRegistry.templateForRelease(v.t, release, kubeVersion, os)
467+
template = v.templatesRegistry.templateForRelease(v.t, release, kubeVersion, os, useBundlesOverride)
467468
}
468469
return api.WithTemplateForAllMachines(template)
469470
}
470471

471472
// templateForKubeVersionAndOSMachineConfig returns a vSphere filler for the given OS and Kubernetes version for a specific machine config.
472473
func (v *VSphere) templateForKubeVersionAndOSMachineConfig(name string, kubeVersion anywherev1.KubernetesVersion, os OS) api.VSphereFiller {
473-
template := v.templateForDevRelease(kubeVersion, os)
474+
useBundlesOverride := getBundlesOverride() == "true"
475+
template := v.templateForDevRelease(kubeVersion, os, useBundlesOverride)
474476
return api.WithMachineTemplate(name, template)
475477
}
476478

@@ -593,9 +595,9 @@ func (v *VSphere) getDevRelease() *releasev1.EksARelease {
593595
return v.devRelease
594596
}
595597

596-
func (v *VSphere) templateForDevRelease(kubeVersion anywherev1.KubernetesVersion, os OS) string {
598+
func (v *VSphere) templateForDevRelease(kubeVersion anywherev1.KubernetesVersion, os OS, useBundlesOverride bool) string {
597599
v.t.Helper()
598-
return v.templatesRegistry.templateForRelease(v.t, v.getDevRelease(), kubeVersion, os)
600+
return v.templatesRegistry.templateForRelease(v.t, v.getDevRelease(), kubeVersion, os, useBundlesOverride)
599601
}
600602

601603
func RequiredVsphereEnvVars() []string {
@@ -636,22 +638,22 @@ func buildVSphereWorkerNodeGroupClusterFiller(machineConfigName string, workerNo
636638

637639
// WithKubeVersionAndOSForRelease returns a vSphereOpt that sets the cluster kube version and the right template for all
638640
// vsphere machine configs based on the EKS-A release.
639-
func WithKubeVersionAndOSForRelease(kubeVersion anywherev1.KubernetesVersion, os OS, release *releasev1.EksARelease) VSphereOpt {
640-
return optionToSetTemplateForRelease(kubeVersion, os, release)
641+
func WithKubeVersionAndOSForRelease(kubeVersion anywherev1.KubernetesVersion, os OS, release *releasev1.EksARelease, useBundlesOverride bool) VSphereOpt {
642+
return optionToSetTemplateForRelease(kubeVersion, os, release, useBundlesOverride)
641643
}
642644

643645
// WithKubeVersionAndOSForRelease returns a cluster config filler that sets the cluster kube version and the right template for all
644646
// vsphere machine configs based on the EKS-A release.
645-
func (v *VSphere) WithKubeVersionAndOSForRelease(kubeVersion anywherev1.KubernetesVersion, os OS, release *releasev1.EksARelease) api.ClusterConfigFiller {
647+
func (v *VSphere) WithKubeVersionAndOSForRelease(kubeVersion anywherev1.KubernetesVersion, os OS, release *releasev1.EksARelease, useBundlesOverride bool) api.ClusterConfigFiller {
646648
return api.VSphereToConfigFiller(
647-
api.WithTemplateForAllMachines(v.templatesRegistry.templateForRelease(v.t, release, kubeVersion, os)),
649+
api.WithTemplateForAllMachines(v.templatesRegistry.templateForRelease(v.t, release, kubeVersion, os, useBundlesOverride)),
648650
)
649651
}
650652

651-
func optionToSetTemplateForRelease(kubeVersion anywherev1.KubernetesVersion, os OS, release *releasev1.EksARelease) VSphereOpt {
653+
func optionToSetTemplateForRelease(kubeVersion anywherev1.KubernetesVersion, os OS, release *releasev1.EksARelease, useBundlesOverride bool) VSphereOpt {
652654
return func(v *VSphere) {
653655
v.fillers = append(v.fillers,
654-
api.WithTemplateForAllMachines(v.templatesRegistry.templateForRelease(v.t, release, kubeVersion, os)),
656+
api.WithTemplateForAllMachines(v.templatesRegistry.templateForRelease(v.t, release, kubeVersion, os, useBundlesOverride)),
655657
)
656658
}
657659
}
@@ -691,11 +693,11 @@ func (v *VSphere) searchTemplate(ctx context.Context, template string) (string,
691693
return foundTemplate, nil
692694
}
693695

694-
func readVersionsBundles(t testing.TB, release *releasev1.EksARelease, kubeVersion anywherev1.KubernetesVersion) *releasev1.VersionsBundle {
696+
func readVersionsBundles(t testing.TB, release *releasev1.EksARelease, kubeVersion anywherev1.KubernetesVersion, useBundlesOverride bool) *releasev1.VersionsBundle {
695697
reader := newFileReader()
696698
var allBundles *releasev1.Bundles
697699
var err error
698-
if getBundlesOverride() == "true" {
700+
if useBundlesOverride {
699701
allBundles, err = bundles.Read(reader, defaultBundleReleaseManifestFile)
700702
if err != nil {
701703
t.Fatal(err)

0 commit comments

Comments
 (0)