@@ -25,6 +25,7 @@ import (
2525 capi_e2e "sigs.k8s.io/cluster-api/test/e2e"
2626 "sigs.k8s.io/cluster-api/test/framework"
2727 "sigs.k8s.io/cluster-api/test/framework/clusterctl"
28+ "sigs.k8s.io/cluster-api/test/framework/kubernetesversions"
2829
2930 "sigs.k8s.io/cluster-api-provider-vsphere/test/framework/vcsim"
3031)
@@ -82,6 +83,52 @@ var _ = Describe("When testing clusterctl upgrades using ClusterClass (CAPV 1.10
8283 )
8384})
8485
86+ var _ = Describe ("When testing clusterctl upgrades using ClusterClass (CAPV 1.10=>current, CAPI 1.7=>1.8) on K8S latest ci mgmt cluster [vcsim] [supervisor] [ClusterClass]" , func () {
87+ const specName = "clusterctl-upgrade-1.10-current" // prefix (clusterctl-upgrade) copied from CAPI
88+ Setup (specName , func (testSpecificSettingsGetter func () testSettings ) {
89+ capi_e2e .ClusterctlUpgradeSpec (ctx , func () capi_e2e.ClusterctlUpgradeSpecInput {
90+ capiVersion := "1.7"
91+ capiStableRelease , err := getStableReleaseOfMinor (ctx , capiReleaseMarkerPrefix , capiVersion )
92+ Expect (err ).ToNot (HaveOccurred (), "Failed to get stable version for minor release : %s" , capiVersion )
93+ capvVersion := "1.10"
94+ capvStableRelease , err := getStableReleaseOfMinor (ctx , capvReleaseMarkerPrefix , capvVersion )
95+ Expect (err ).ToNot (HaveOccurred (), "Failed to get stable version for minor release : %s" , capvVersion )
96+ initKubernetesVersion , err := kubernetesversions .ResolveVersion (ctx , e2eConfig .GetVariable ("KUBERNETES_VERSION_LATEST_CI" ))
97+ Expect (err ).ToNot (HaveOccurred ())
98+ return capi_e2e.ClusterctlUpgradeSpecInput {
99+ E2EConfig : e2eConfig ,
100+ ClusterctlConfigPath : testSpecificSettingsGetter ().ClusterctlConfigPath ,
101+ BootstrapClusterProxy : bootstrapClusterProxy ,
102+ ArtifactFolder : artifactFolder ,
103+ SkipCleanup : skipCleanup ,
104+ MgmtFlavor : testSpecificSettingsGetter ().FlavorForMode ("topology" ),
105+ PostNamespaceCreated : testSpecificSettingsGetter ().PostNamespaceCreatedFunc ,
106+ InitWithBinary : fmt .Sprintf (clusterctlDownloadURL , capiStableRelease ),
107+ InitWithCoreProvider : fmt .Sprintf (providerCAPIPrefix , capiStableRelease ),
108+ InitWithBootstrapProviders : []string {fmt .Sprintf (providerKubeadmPrefix , capiStableRelease )},
109+ InitWithControlPlaneProviders : []string {fmt .Sprintf (providerKubeadmPrefix , capiStableRelease )},
110+ InitWithInfrastructureProviders : []string {fmt .Sprintf (providerVSpherePrefix , capvStableRelease )},
111+ InitWithRuntimeExtensionProviders : testSpecificSettingsGetter ().RuntimeExtensionProviders ,
112+ InitWithIPAMProviders : []string {},
113+ // InitWithKubernetesVersion should be the highest kubernetes version supported by the init Cluster API version.
114+ // This is to guarantee that both, the old and new CAPI version, support the defined version.
115+ // Ensure all Kubernetes versions used here are covered in patch-vsphere-template.yaml
116+ InitWithKubernetesVersion : initKubernetesVersion ,
117+ WorkloadKubernetesVersion : "v1.30.0" ,
118+ WorkloadFlavor : testSpecificSettingsGetter ().FlavorForMode ("workload" ),
119+ // We are using a separate management cluster. For running in VCSim we also have to pass WithAdditionalVCSimServer
120+ // below otherwise there will be no VCSim instance created in the management cluster.
121+ UseKindForManagementCluster : true ,
122+ KindManagementClusterNewClusterProxyFunc : kindManagementClusterNewClusterProxyFunc ,
123+ }
124+ })
125+ },
126+ WithIP ("WORKLOAD_CONTROL_PLANE_ENDPOINT_IP" ),
127+ // This is required because we are using a separate management cluster with kind by passing `UseKindForManagementCluster` above.
128+ WithAdditionalVCSimServer (true ),
129+ )
130+ })
131+
85132var _ = Describe ("When testing clusterctl upgrades using ClusterClass (CAPV 1.9=>current, CAPI 1.6=>1.8) [vcsim] [supervisor] [ClusterClass]" , func () {
86133 const specName = "clusterctl-upgrade-1.9-current" // prefix (clusterctl-upgrade) copied from CAPI
87134 Setup (specName , func (testSpecificSettingsGetter func () testSettings ) {
0 commit comments