Skip to content

Commit 379c3a9

Browse files
committed
Add metadata for v0.15 and update e2e
Bump ORC used in e2e tests to 2.5.0. Set correct metadata and contract versions. Update clusterctl upgrade tests to start from v1beta1 contract (CAPI v1.10). Add one test for verifying CAPI v1beta2 backwards compatibility. Signed-off-by: Lennart Jern <lennart.jern@est.tech>
1 parent 53815e2 commit 379c3a9

6 files changed

Lines changed: 91 additions & 21 deletions

File tree

metadata.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,6 @@ releaseSeries:
3131
- major: 0
3232
minor: 14
3333
contract: v1beta1
34+
- major: 0
35+
minor: 15
36+
contract: v1beta2

test/e2e/data/e2e_conf.yaml

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ images:
1010
# Use local dev images built source tree;
1111
- name: gcr.io/k8s-staging-capi-openstack/capi-openstack-controller:e2e
1212
loadBehavior: mustLoad
13-
- name: quay.io/orc/openstack-resource-controller:v2.4.0
13+
- name: quay.io/orc/openstack-resource-controller:v2.5.0
1414
loadBehavior: tryLoad
1515

1616
providers:
@@ -36,6 +36,15 @@ providers:
3636
new: --metrics-addr=:8080
3737
files:
3838
- sourcePath: "../data/shared/capi/metadata.yaml"
39+
- name: "{go://sigs.k8s.io/cluster-api@v1.10}"
40+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.10}/core-components.yaml"
41+
type: "url"
42+
contract: v1beta1
43+
replacements:
44+
- old: --metrics-addr=127.0.0.1:8080
45+
new: --metrics-addr=:8080
46+
files:
47+
- sourcePath: "../data/shared/capi/metadata.yaml"
3948
- name: kubeadm
4049
type: BootstrapProvider
4150
versions:
@@ -58,6 +67,15 @@ providers:
5867
new: --metrics-addr=:8080
5968
files:
6069
- sourcePath: "../data/shared/capi/metadata.yaml"
70+
- name: "{go://sigs.k8s.io/cluster-api@v1.10}"
71+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.10}/bootstrap-components.yaml"
72+
type: "url"
73+
contract: v1beta1
74+
replacements:
75+
- old: --metrics-addr=127.0.0.1:8080
76+
new: --metrics-addr=:8080
77+
files:
78+
- sourcePath: "../data/shared/capi/metadata.yaml"
6179
- name: kubeadm
6280
type: ControlPlaneProvider
6381
versions:
@@ -80,6 +98,15 @@ providers:
8098
new: --metrics-addr=:8080
8199
files:
82100
- sourcePath: "../data/shared/capi/metadata.yaml"
101+
- name: "{go://sigs.k8s.io/cluster-api@v1.10}"
102+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.10}/control-plane-components.yaml"
103+
type: "url"
104+
contract: v1beta1
105+
replacements:
106+
- old: --metrics-addr=127.0.0.1:8080
107+
new: --metrics-addr=:8080
108+
files:
109+
- sourcePath: "../data/shared/capi/metadata.yaml"
83110
- name: openstack
84111
type: InfrastructureProvider
85112
versions:
@@ -131,7 +158,7 @@ providers:
131158
- name: v0.15.99
132159
value: ../../../config/default
133160
# This is the upcoming version.
134-
contract: v1beta1
161+
contract: v1beta2
135162
files:
136163
- sourcePath: "../data/shared/provider/metadata.yaml"
137164
- sourcePath: "./infrastructure-openstack-no-artifact/cluster-template.yaml"
@@ -151,9 +178,9 @@ providers:
151178
- name: openstack-resource-controller
152179
type: RuntimeExtensionProvider # ORC isn't a provider but we fake it so it can be handled by the clusterctl machinery.
153180
versions:
154-
- name: v2.4.0
181+
- name: v2.5.0
155182
value: ../../../../cluster-api-provider-openstack/test/infrastructure/openstack-resource-controller/config/default
156-
contract: v1beta1
183+
contract: v1beta2
157184
files:
158185
- sourcePath: "../data/shared/openstack-resource-controller/metadata.yaml"
159186
replacements:

test/e2e/data/shared/openstack-resource-controller/metadata.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@ releaseSeries:
1717
- major: 2
1818
minor: 4
1919
contract: v1beta1
20+
- major: 2
21+
minor: 5
22+
contract: v1beta2

test/e2e/data/shared/provider/metadata.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,4 @@ releaseSeries:
3333
contract: v1beta1
3434
- major: 0
3535
minor: 15
36-
contract: v1beta1
36+
contract: v1beta2

test/e2e/suites/e2e/clusterctl_upgrade_test.go

Lines changed: 52 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ var (
3333
capoRelease012 string
3434
capoRelease013 string
3535
capoRelease014 string
36+
capiRelease110 string
3637
capiRelease112 string
3738
)
3839

@@ -43,9 +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.
46-
capiRelease112, err = capi_e2e.GetStableReleaseOfMinor(ctx, "1.12")
47+
capiRelease110, err = capi_e2e.GetStableReleaseOfMinor(ctx, "1.10")
4748
Expect(err).ToNot(HaveOccurred(), "failed to get stable release of CAPI")
48-
capiRelease112 = "v" + capiRelease112
49+
capiRelease110 = "v" + capiRelease110
4950
})
5051

5152
capi_e2e.ClusterctlUpgradeSpec(context.TODO(), func() capi_e2e.ClusterctlUpgradeSpecInput {
@@ -55,12 +56,12 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.12=>current) and
5556
BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy,
5657
ArtifactFolder: e2eCtx.Settings.ArtifactFolder,
5758
SkipCleanup: false,
58-
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/" + capiRelease112 + "/clusterctl-{OS}-{ARCH}",
59-
InitWithProvidersContract: "v1beta2",
59+
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/" + capiRelease110 + "/clusterctl-{OS}-{ARCH}",
60+
InitWithProvidersContract: "v1beta1",
6061
InitWithInfrastructureProviders: []string{"openstack:" + capoRelease012},
61-
InitWithCoreProvider: "cluster-api:" + capiRelease112,
62-
InitWithBootstrapProviders: []string{"kubeadm:" + capiRelease112},
63-
InitWithControlPlaneProviders: []string{"kubeadm:" + capiRelease112},
62+
InitWithCoreProvider: "cluster-api:" + capiRelease110,
63+
InitWithBootstrapProviders: []string{"kubeadm:" + capiRelease110},
64+
InitWithControlPlaneProviders: []string{"kubeadm:" + capiRelease110},
6465
MgmtFlavor: shared.FlavorDefault,
6566
WorkloadFlavor: shared.FlavorCapiV1Beta1,
6667
InitWithKubernetesVersion: e2eCtx.E2EConfig.MustGetVariable(shared.KubernetesKindVersion),
@@ -77,9 +78,9 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.13=>current) and
7778
Expect(err).ToNot(HaveOccurred(), "failed to get stable release of CAPO")
7879
capoRelease013 = "v" + capoRelease013
7980
// Note: This gives the version without the 'v' prefix, so we need to add it below.
80-
capiRelease112, err = capi_e2e.GetStableReleaseOfMinor(ctx, "1.12")
81+
capiRelease110, err = capi_e2e.GetStableReleaseOfMinor(ctx, "1.10")
8182
Expect(err).ToNot(HaveOccurred(), "failed to get stable release of CAPI")
82-
capiRelease112 = "v" + capiRelease112
83+
capiRelease110 = "v" + capiRelease110
8384
})
8485

8586
capi_e2e.ClusterctlUpgradeSpec(context.TODO(), func() capi_e2e.ClusterctlUpgradeSpecInput {
@@ -89,12 +90,12 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.13=>current) and
8990
BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy,
9091
ArtifactFolder: e2eCtx.Settings.ArtifactFolder,
9192
SkipCleanup: false,
92-
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/" + capiRelease112 + "/clusterctl-{OS}-{ARCH}",
93-
InitWithProvidersContract: "v1beta2",
93+
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/" + capiRelease110 + "/clusterctl-{OS}-{ARCH}",
94+
InitWithProvidersContract: "v1beta1",
9495
InitWithInfrastructureProviders: []string{"openstack:" + capoRelease013},
95-
InitWithCoreProvider: "cluster-api:" + capiRelease112,
96-
InitWithBootstrapProviders: []string{"kubeadm:" + capiRelease112},
97-
InitWithControlPlaneProviders: []string{"kubeadm:" + capiRelease112},
96+
InitWithCoreProvider: "cluster-api:" + capiRelease110,
97+
InitWithBootstrapProviders: []string{"kubeadm:" + capiRelease110},
98+
InitWithControlPlaneProviders: []string{"kubeadm:" + capiRelease110},
9899
MgmtFlavor: shared.FlavorDefault,
99100
WorkloadFlavor: shared.FlavorCapiV1Beta1,
100101
InitWithKubernetesVersion: e2eCtx.E2EConfig.MustGetVariable(shared.KubernetesKindVersion),
@@ -105,6 +106,40 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.13=>current) and
105106
})
106107

107108
var _ = Describe("When testing clusterctl upgrades for CAPO (v0.14=>current) and ORC (v1.0.2=>current)[clusterctl-upgrade]", func() {
109+
BeforeEach(func(ctx context.Context) {
110+
// Note: This gives the version without the 'v' prefix, so we need to add it below.
111+
capoRelease014, err = clusterctl.ResolveRelease(ctx, "go://github.com/kubernetes-sigs/cluster-api-provider-openstack@v0.14")
112+
Expect(err).ToNot(HaveOccurred(), "failed to get stable release of CAPO")
113+
capoRelease014 = "v" + capoRelease014
114+
// Note: This gives the version without the 'v' prefix, so we need to add it below.
115+
capiRelease110, err = capi_e2e.GetStableReleaseOfMinor(ctx, "1.10")
116+
Expect(err).ToNot(HaveOccurred(), "failed to get stable release of CAPI")
117+
capiRelease110 = "v" + capiRelease110
118+
})
119+
120+
capi_e2e.ClusterctlUpgradeSpec(context.TODO(), func() capi_e2e.ClusterctlUpgradeSpecInput {
121+
return capi_e2e.ClusterctlUpgradeSpecInput{
122+
E2EConfig: e2eCtx.E2EConfig,
123+
ClusterctlConfigPath: e2eCtx.Environment.ClusterctlConfigPath,
124+
BootstrapClusterProxy: e2eCtx.Environment.BootstrapClusterProxy,
125+
ArtifactFolder: e2eCtx.Settings.ArtifactFolder,
126+
SkipCleanup: false,
127+
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/" + capiRelease110 + "/clusterctl-{OS}-{ARCH}",
128+
InitWithProvidersContract: "v1beta1",
129+
InitWithInfrastructureProviders: []string{"openstack:" + capoRelease014},
130+
InitWithCoreProvider: "cluster-api:" + capiRelease110,
131+
InitWithBootstrapProviders: []string{"kubeadm:" + capiRelease110},
132+
InitWithControlPlaneProviders: []string{"kubeadm:" + capiRelease110},
133+
MgmtFlavor: shared.FlavorDefault,
134+
WorkloadFlavor: shared.FlavorCapiV1Beta1,
135+
InitWithKubernetesVersion: e2eCtx.E2EConfig.MustGetVariable(shared.KubernetesKindVersion),
136+
InitWithRuntimeExtensionProviders: []string{"openstack-resource-controller:v1.0.2"},
137+
UseKindForManagementCluster: true,
138+
}
139+
})
140+
})
141+
142+
var _ = Describe("When testing clusterctl upgrades for CAPO (v0.14=>current) and CAPI v1beta2 backwards compatibility [clusterctl-upgrade]", func() {
108143
BeforeEach(func(ctx context.Context) {
109144
// Note: This gives the version without the 'v' prefix, so we need to add it below.
110145
capoRelease014, err = clusterctl.ResolveRelease(ctx, "go://github.com/kubernetes-sigs/cluster-api-provider-openstack@v0.14")
@@ -116,6 +151,9 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.14=>current) and
116151
capiRelease112 = "v" + capiRelease112
117152
})
118153

154+
// Here we verify v1beta2 backwards compatibility by initializing with a
155+
// CAPI version that has v1beta2 and a CAPI version that has v1beta1 contract.
156+
// We specify no contract for initialization and instead set the specific versions.
119157
capi_e2e.ClusterctlUpgradeSpec(context.TODO(), func() capi_e2e.ClusterctlUpgradeSpecInput {
120158
return capi_e2e.ClusterctlUpgradeSpecInput{
121159
E2EConfig: e2eCtx.E2EConfig,
@@ -124,7 +162,6 @@ var _ = Describe("When testing clusterctl upgrades for CAPO (v0.14=>current) and
124162
ArtifactFolder: e2eCtx.Settings.ArtifactFolder,
125163
SkipCleanup: false,
126164
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/" + capiRelease112 + "/clusterctl-{OS}-{ARCH}",
127-
InitWithProvidersContract: "v1beta2",
128165
InitWithInfrastructureProviders: []string{"openstack:" + capoRelease014},
129166
InitWithCoreProvider: "cluster-api:" + capiRelease112,
130167
InitWithBootstrapProviders: []string{"kubeadm:" + capiRelease112},

test/infrastructure/openstack-resource-controller/config/default/kustomization.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ labels:
88
cluster.x-k8s.io/provider: "runtime-extension-openstack-resource-controller"
99

1010
resources:
11-
- https://github.com/k-orc/openstack-resource-controller/releases/download/v2.4.0/install.yaml
11+
- https://github.com/k-orc/openstack-resource-controller/releases/download/v2.5.0/install.yaml

0 commit comments

Comments
 (0)