3333 capoRelease012 string
3434 capoRelease013 string
3535 capoRelease014 string
36+ capiRelease110 string
3637 capiRelease112 string
3738)
3839
@@ -43,6 +44,9 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.12=>current) and
4344 Expect (err ).ToNot (HaveOccurred (), "failed to get stable release of CAPO" )
4445 capoRelease012 = "v" + capoRelease012
4546 // Note: This gives the version without the 'v' prefix, so we need to add it below.
47+ capiRelease110 , err = capi_e2e .GetStableReleaseOfMinor (ctx , "1.10" )
48+ Expect (err ).ToNot (HaveOccurred (), "failed to get stable release of CAPI" )
49+ capiRelease110 = "v" + capiRelease110
4650 capiRelease112 , err = capi_e2e .GetStableReleaseOfMinor (ctx , "1.12" )
4751 Expect (err ).ToNot (HaveOccurred (), "failed to get stable release of CAPI" )
4852 capiRelease112 = "v" + capiRelease112
@@ -56,11 +60,11 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.12=>current) and
5660 ArtifactFolder : e2eCtx .Settings .ArtifactFolder ,
5761 SkipCleanup : false ,
5862 InitWithBinary : "https://github.com/kubernetes-sigs/cluster-api/releases/download/" + capiRelease112 + "/clusterctl-{OS}-{ARCH}" ,
59- InitWithProvidersContract : "v1beta2 " ,
63+ InitWithProvidersContract : "v1beta1 " ,
6064 InitWithInfrastructureProviders : []string {"openstack:" + capoRelease012 },
61- InitWithCoreProvider : "cluster-api:" + capiRelease112 ,
62- InitWithBootstrapProviders : []string {"kubeadm:" + capiRelease112 },
63- InitWithControlPlaneProviders : []string {"kubeadm:" + capiRelease112 },
65+ InitWithCoreProvider : "cluster-api:" + capiRelease110 ,
66+ InitWithBootstrapProviders : []string {"kubeadm:" + capiRelease110 },
67+ InitWithControlPlaneProviders : []string {"kubeadm:" + capiRelease110 },
6468 MgmtFlavor : shared .FlavorDefault ,
6569 WorkloadFlavor : shared .FlavorCapiV1Beta1 ,
6670 InitWithKubernetesVersion : e2eCtx .E2EConfig .MustGetVariable (shared .KubernetesKindVersion ),
@@ -77,6 +81,9 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.13=>current) and
7781 Expect (err ).ToNot (HaveOccurred (), "failed to get stable release of CAPO" )
7882 capoRelease013 = "v" + capoRelease013
7983 // Note: This gives the version without the 'v' prefix, so we need to add it below.
84+ capiRelease110 , err = capi_e2e .GetStableReleaseOfMinor (ctx , "1.10" )
85+ Expect (err ).ToNot (HaveOccurred (), "failed to get stable release of CAPI" )
86+ capiRelease110 = "v" + capiRelease110
8087 capiRelease112 , err = capi_e2e .GetStableReleaseOfMinor (ctx , "1.12" )
8188 Expect (err ).ToNot (HaveOccurred (), "failed to get stable release of CAPI" )
8289 capiRelease112 = "v" + capiRelease112
@@ -90,11 +97,11 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.13=>current) and
9097 ArtifactFolder : e2eCtx .Settings .ArtifactFolder ,
9198 SkipCleanup : false ,
9299 InitWithBinary : "https://github.com/kubernetes-sigs/cluster-api/releases/download/" + capiRelease112 + "/clusterctl-{OS}-{ARCH}" ,
93- InitWithProvidersContract : "v1beta2 " ,
100+ InitWithProvidersContract : "v1beta1 " ,
94101 InitWithInfrastructureProviders : []string {"openstack:" + capoRelease013 },
95- InitWithCoreProvider : "cluster-api:" + capiRelease112 ,
96- InitWithBootstrapProviders : []string {"kubeadm:" + capiRelease112 },
97- InitWithControlPlaneProviders : []string {"kubeadm:" + capiRelease112 },
102+ InitWithCoreProvider : "cluster-api:" + capiRelease110 ,
103+ InitWithBootstrapProviders : []string {"kubeadm:" + capiRelease110 },
104+ InitWithControlPlaneProviders : []string {"kubeadm:" + capiRelease110 },
98105 MgmtFlavor : shared .FlavorDefault ,
99106 WorkloadFlavor : shared .FlavorCapiV1Beta1 ,
100107 InitWithKubernetesVersion : e2eCtx .E2EConfig .MustGetVariable (shared .KubernetesKindVersion ),
@@ -105,6 +112,43 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.13=>current) and
105112})
106113
107114var _ = Describe ("When testing clusterctl upgrades for CAPO (v0.14=>current) and ORC (v1.0.2=>current)[clusterctl-upgrade]" , func () {
115+ BeforeEach (func (ctx context.Context ) {
116+ // Note: This gives the version without the 'v' prefix, so we need to add it below.
117+ capoRelease014 , err = clusterctl .ResolveRelease (ctx , "go://github.com/kubernetes-sigs/cluster-api-provider-openstack@v0.14" )
118+ Expect (err ).ToNot (HaveOccurred (), "failed to get stable release of CAPO" )
119+ capoRelease014 = "v" + capoRelease014
120+ // Note: This gives the version without the 'v' prefix, so we need to add it below.
121+ capiRelease110 , err = capi_e2e .GetStableReleaseOfMinor (ctx , "1.10" )
122+ Expect (err ).ToNot (HaveOccurred (), "failed to get stable release of CAPI" )
123+ capiRelease110 = "v" + capiRelease110
124+ capiRelease112 , err = capi_e2e .GetStableReleaseOfMinor (ctx , "1.12" )
125+ Expect (err ).ToNot (HaveOccurred (), "failed to get stable release of CAPI" )
126+ capiRelease112 = "v" + capiRelease112
127+ })
128+
129+ capi_e2e .ClusterctlUpgradeSpec (context .TODO (), func () capi_e2e.ClusterctlUpgradeSpecInput {
130+ return capi_e2e.ClusterctlUpgradeSpecInput {
131+ E2EConfig : e2eCtx .E2EConfig ,
132+ ClusterctlConfigPath : e2eCtx .Environment .ClusterctlConfigPath ,
133+ BootstrapClusterProxy : e2eCtx .Environment .BootstrapClusterProxy ,
134+ ArtifactFolder : e2eCtx .Settings .ArtifactFolder ,
135+ SkipCleanup : false ,
136+ InitWithBinary : "https://github.com/kubernetes-sigs/cluster-api/releases/download/" + capiRelease112 + "/clusterctl-{OS}-{ARCH}" ,
137+ InitWithProvidersContract : "v1beta1" ,
138+ InitWithInfrastructureProviders : []string {"openstack:" + capoRelease014 },
139+ InitWithCoreProvider : "cluster-api:" + capiRelease110 ,
140+ InitWithBootstrapProviders : []string {"kubeadm:" + capiRelease110 },
141+ InitWithControlPlaneProviders : []string {"kubeadm:" + capiRelease110 },
142+ MgmtFlavor : shared .FlavorDefault ,
143+ WorkloadFlavor : shared .FlavorCapiV1Beta1 ,
144+ InitWithKubernetesVersion : e2eCtx .E2EConfig .MustGetVariable (shared .KubernetesKindVersion ),
145+ InitWithRuntimeExtensionProviders : []string {"openstack-resource-controller:v1.0.2" },
146+ UseKindForManagementCluster : true ,
147+ }
148+ })
149+ })
150+
151+ var _ = Describe ("When testing clusterctl upgrades for CAPO (v0.14=>current) and CAPI v1beta2 backwards compatibility [clusterctl-upgrade]" , func () {
108152 BeforeEach (func (ctx context.Context ) {
109153 // Note: This gives the version without the 'v' prefix, so we need to add it below.
110154 capoRelease014 , err = clusterctl .ResolveRelease (ctx , "go://github.com/kubernetes-sigs/cluster-api-provider-openstack@v0.14" )
@@ -116,6 +160,9 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.14=>current) and
116160 capiRelease112 = "v" + capiRelease112
117161 })
118162
163+ // Here we verify v1beta2 backwards compatibility by initializing with a
164+ // CAPI version that has v1beta2 and a CAPI version that has v1beta1 contract.
165+ // We specify no contract for initialization and instead set the specific versions.
119166 capi_e2e .ClusterctlUpgradeSpec (context .TODO (), func () capi_e2e.ClusterctlUpgradeSpecInput {
120167 return capi_e2e.ClusterctlUpgradeSpecInput {
121168 E2EConfig : e2eCtx .E2EConfig ,
@@ -124,7 +171,6 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.14=>current) and
124171 ArtifactFolder : e2eCtx .Settings .ArtifactFolder ,
125172 SkipCleanup : false ,
126173 InitWithBinary : "https://github.com/kubernetes-sigs/cluster-api/releases/download/" + capiRelease112 + "/clusterctl-{OS}-{ARCH}" ,
127- InitWithProvidersContract : "v1beta2" ,
128174 InitWithInfrastructureProviders : []string {"openstack:" + capoRelease014 },
129175 InitWithCoreProvider : "cluster-api:" + capiRelease112 ,
130176 InitWithBootstrapProviders : []string {"kubeadm:" + capiRelease112 },
0 commit comments