@@ -56,11 +56,8 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.12=>current) and
5656 ArtifactFolder : e2eCtx .Settings .ArtifactFolder ,
5757 SkipCleanup : false ,
5858 InitWithBinary : "https://github.com/kubernetes-sigs/cluster-api/releases/download/" + capiRelease112 + "/clusterctl-{OS}-{ARCH}" ,
59- InitWithProvidersContract : "v1beta2 " ,
59+ InitWithProvidersContract : "v1beta1 " ,
6060 InitWithInfrastructureProviders : []string {"openstack:" + capoRelease012 },
61- InitWithCoreProvider : "cluster-api:" + capiRelease112 ,
62- InitWithBootstrapProviders : []string {"kubeadm:" + capiRelease112 },
63- InitWithControlPlaneProviders : []string {"kubeadm:" + capiRelease112 },
6461 MgmtFlavor : shared .FlavorDefault ,
6562 WorkloadFlavor : shared .FlavorCapiV1Beta1 ,
6663 InitWithKubernetesVersion : e2eCtx .E2EConfig .MustGetVariable (shared .KubernetesKindVersion ),
@@ -90,11 +87,8 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.13=>current) and
9087 ArtifactFolder : e2eCtx .Settings .ArtifactFolder ,
9188 SkipCleanup : false ,
9289 InitWithBinary : "https://github.com/kubernetes-sigs/cluster-api/releases/download/" + capiRelease112 + "/clusterctl-{OS}-{ARCH}" ,
93- InitWithProvidersContract : "v1beta2 " ,
90+ InitWithProvidersContract : "v1beta1 " ,
9491 InitWithInfrastructureProviders : []string {"openstack:" + capoRelease013 },
95- InitWithCoreProvider : "cluster-api:" + capiRelease112 ,
96- InitWithBootstrapProviders : []string {"kubeadm:" + capiRelease112 },
97- InitWithControlPlaneProviders : []string {"kubeadm:" + capiRelease112 },
9892 MgmtFlavor : shared .FlavorDefault ,
9993 WorkloadFlavor : shared .FlavorCapiV1Beta1 ,
10094 InitWithKubernetesVersion : e2eCtx .E2EConfig .MustGetVariable (shared .KubernetesKindVersion ),
@@ -124,11 +118,44 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.14=>current) and
124118 ArtifactFolder : e2eCtx .Settings .ArtifactFolder ,
125119 SkipCleanup : false ,
126120 InitWithBinary : "https://github.com/kubernetes-sigs/cluster-api/releases/download/" + capiRelease112 + "/clusterctl-{OS}-{ARCH}" ,
127- InitWithProvidersContract : "v1beta2" ,
121+ InitWithProvidersContract : "v1beta1" ,
122+ InitWithInfrastructureProviders : []string {"openstack:" + capoRelease014 },
123+ MgmtFlavor : shared .FlavorDefault ,
124+ WorkloadFlavor : shared .FlavorCapiV1Beta1 ,
125+ InitWithKubernetesVersion : e2eCtx .E2EConfig .MustGetVariable (shared .KubernetesKindVersion ),
126+ InitWithRuntimeExtensionProviders : []string {"openstack-resource-controller:v1.0.2" },
127+ UseKindForManagementCluster : true ,
128+ }
129+ })
130+ })
131+
132+ var _ = Describe ("When testing clusterctl upgrades for CAPO (v0.14=>current) and CAPI v1beta2 backwards compatibility [clusterctl-upgrade]" , func () {
133+ BeforeEach (func (ctx context.Context ) {
134+ // Note: This gives the version without the 'v' prefix, so we need to add it below.
135+ capoRelease014 , err = clusterctl .ResolveRelease (ctx , "go://github.com/kubernetes-sigs/cluster-api-provider-openstack@v0.14" )
136+ Expect (err ).ToNot (HaveOccurred (), "failed to get stable release of CAPO" )
137+ capoRelease014 = "v" + capoRelease014
138+ // Note: This gives the version without the 'v' prefix, so we need to add it below.
139+ capiRelease112 , err = capi_e2e .GetStableReleaseOfMinor (ctx , "1.12" )
140+ Expect (err ).ToNot (HaveOccurred (), "failed to get stable release of CAPI" )
141+ capiRelease112 = "v" + capiRelease112
142+ })
143+
144+ // Here we verify v1beta2 backwards compatibility by initializing with a
145+ // CAPI version that has v1beta2 and a CAPI version that has v1beta1 contract.
146+ // We specify no contract for initialization and instead set the specific versions.
147+ capi_e2e .ClusterctlUpgradeSpec (context .TODO (), func () capi_e2e.ClusterctlUpgradeSpecInput {
148+ return capi_e2e.ClusterctlUpgradeSpecInput {
149+ E2EConfig : e2eCtx .E2EConfig ,
150+ ClusterctlConfigPath : e2eCtx .Environment .ClusterctlConfigPath ,
151+ BootstrapClusterProxy : e2eCtx .Environment .BootstrapClusterProxy ,
152+ ArtifactFolder : e2eCtx .Settings .ArtifactFolder ,
153+ SkipCleanup : false ,
154+ InitWithBinary : "https://github.com/kubernetes-sigs/cluster-api/releases/download/" + capiRelease112 + "/clusterctl-{OS}-{ARCH}" ,
128155 InitWithInfrastructureProviders : []string {"openstack:" + capoRelease014 },
129156 InitWithCoreProvider : "cluster-api:" + capiRelease112 ,
130- InitWithBootstrapProviders : []string {"kubeadm :" + capiRelease112 },
131- InitWithControlPlaneProviders : []string {"kubeadm :" + capiRelease112 },
157+ InitWithBootstrapProviders : []string {"cluster-api :" + capiRelease112 },
158+ InitWithControlPlaneProviders : []string {"cluster-api :" + capiRelease112 },
132159 MgmtFlavor : shared .FlavorDefault ,
133160 WorkloadFlavor : shared .FlavorCapiV1Beta1 ,
134161 InitWithKubernetesVersion : e2eCtx .E2EConfig .MustGetVariable (shared .KubernetesKindVersion ),
0 commit comments