Skip to content

Commit 0142472

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 0142472

6 files changed

Lines changed: 94 additions & 15 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: 55 additions & 9 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,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

107114
var _ = 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},

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)