Skip to content

Commit a15a701

Browse files
authored
🌱 Prepare main branch for v1.9 development (#11059)
* Prepare main branch for v1.9 development Signed-off-by: Stefan Büringer [email protected] * review fixes --------- Signed-off-by: Stefan Büringer [email protected]
1 parent b8d0914 commit a15a701

File tree

16 files changed

+1078
-73
lines changed

16 files changed

+1078
-73
lines changed

Makefile

+6-1
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ generate-doctoc:
558558
TRACE=$(TRACE) ./hack/generate-doctoc.sh
559559

560560
.PHONY: generate-e2e-templates
561-
generate-e2e-templates: $(KUSTOMIZE) $(addprefix generate-e2e-templates-, v0.3 v0.4 v1.0 v1.5 v1.6 v1.7 main) ## Generate cluster templates for all versions
561+
generate-e2e-templates: $(KUSTOMIZE) $(addprefix generate-e2e-templates-, v0.3 v0.4 v1.0 v1.5 v1.6 v1.7 v1.8 main) ## Generate cluster templates for all versions
562562

563563
DOCKER_TEMPLATES := test/e2e/data/infrastructure-docker
564564
INMEMORY_TEMPLATES := test/e2e/data/infrastructure-inmemory
@@ -590,6 +590,11 @@ generate-e2e-templates-v1.7: $(KUSTOMIZE)
590590
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1.7/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1.7/cluster-template.yaml
591591
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1.7/cluster-template-topology --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1.7/cluster-template-topology.yaml
592592

593+
.PHONY: generate-e2e-templates-v1.8
594+
generate-e2e-templates-v1.8: $(KUSTOMIZE)
595+
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1.8/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1.8/cluster-template.yaml
596+
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1.8/cluster-template-topology --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1.8/cluster-template-topology.yaml
597+
593598
.PHONY: generate-e2e-templates-main
594599
generate-e2e-templates-main: $(KUSTOMIZE)
595600
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/main/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/main/cluster-template.yaml

cmd/clusterctl/hack/create-local-repository.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -54,36 +54,36 @@
5454
providers = {
5555
'cluster-api': {
5656
'componentsFile': 'core-components.yaml',
57-
'nextVersion': 'v1.8.99',
57+
'nextVersion': 'v1.9.99',
5858
'type': 'CoreProvider',
5959
},
6060
'bootstrap-kubeadm': {
6161
'componentsFile': 'bootstrap-components.yaml',
62-
'nextVersion': 'v1.8.99',
62+
'nextVersion': 'v1.9.99',
6363
'type': 'BootstrapProvider',
6464
'configFolder': 'bootstrap/kubeadm/config/default',
6565
},
6666
'control-plane-kubeadm': {
6767
'componentsFile': 'control-plane-components.yaml',
68-
'nextVersion': 'v1.8.99',
68+
'nextVersion': 'v1.9.99',
6969
'type': 'ControlPlaneProvider',
7070
'configFolder': 'controlplane/kubeadm/config/default',
7171
},
7272
'infrastructure-docker': {
7373
'componentsFile': 'infrastructure-components-development.yaml',
74-
'nextVersion': 'v1.8.99',
74+
'nextVersion': 'v1.9.99',
7575
'type': 'InfrastructureProvider',
7676
'configFolder': 'test/infrastructure/docker/config/default',
7777
},
7878
'infrastructure-in-memory': {
7979
'componentsFile': 'infrastructure-components-in-memory-development.yaml',
80-
'nextVersion': 'v1.8.99',
80+
'nextVersion': 'v1.9.99',
8181
'type': 'InfrastructureProvider',
8282
'configFolder': 'test/infrastructure/inmemory/config/default',
8383
},
8484
'runtime-extension-test': {
8585
'componentsFile': 'runtime-extension-components-development.yaml',
86-
'nextVersion': 'v1.8.99',
86+
'nextVersion': 'v1.9.99',
8787
'type': 'RuntimeExtensionProvider',
8888
'configFolder': 'test/extension/config/default',
8989
},

docs/release/release-tasks.md

+7-9
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,12 @@ is used for e.g. local development and e2e tests. We also modify tests so that t
9797
This comes down to changing occurrences of the old version to the new version, e.g. `v1.5` to `v1.6`:
9898

9999
1. Setup E2E tests for the new release:
100-
1. Goal is that we have clusterctl upgrade tests for the latest stable versions of each contract / for each supported branch. For `v1.6` this means:
101-
* v1beta1: `v1.0`, `v1.4`, `v1.5` (will change with each new release)
100+
1. Goal is that we have clusterctl upgrade tests for all relevant upgrade cases
101+
1. Modify the test specs in `test/e2e/clusterctl_upgrade_test.go`. Please note the comments above each test case (look for `This test should be changed during "prepare main branch"`)
102+
Please note that both `InitWithKubernetesVersion` and `WorkloadKubernetesVersion` should be the highest management cluster version supported by the respective Cluster API version.
103+
2. Please ping maintainers after these changes are made for a first round of feedback before continuing with the steps below.
102104
2. Update providers in `docker.yaml`:
103-
1. Add a new `v1.6.0` entry.
105+
1. Add a new `v1.6` entry.
104106
2. Remove providers that are not used anymore in clusterctl upgrade tests.
105107
3. Change `v1.5.99` to `v1.6.99`.
106108
3. Adjust `metadata.yaml`'s:
@@ -112,17 +114,13 @@ This comes down to changing occurrences of the old version to the new version, e
112114
4. Adjust cluster templates in `test/e2e/data/infrastructure-docker`:
113115
1. Create a new `v1.6` folder. It should be created based on the `main` folder and only contain the templates we use in the clusterctl upgrade tests (as of today `cluster-template` and `cluster-template-topology`).
114116
2. Remove old folders that are not used anymore in clusterctl upgrade tests.
115-
5. Modify the test specs in `test/e2e/clusterctl_upgrade_test.go` (according to the versions we want to test described above).
116-
Please note that both `InitWithKubernetesVersion` and `WorkloadKubernetesVersion` should be the highest mgmt cluster version supported by the respective Cluster API version.
117+
5. Add a new Makefile target (e.g. `generate-e2e-templates-v1.6`) and potentially remove the Makefile target of versions that are not used anymore (if something was removed in 4.2)
117118
2. Update `create-local-repository.py` and `tools/internal/tilt-prepare/main.go`: `v1.5.99` => `v1.6.99`.
118119
3. Make sure all tests are green (also run `pull-cluster-api-e2e-full-main` and `pull-cluster-api-e2e-workload-upgrade-1-27-latest-main`).
119-
4. Remove an unsupported release version of Cluster API from the Makefile target that generates e2e templates. For example, remove `v1.3` while working on `v1.6`.
120120

121121
Prior art:
122122

123-
* 1.5 - https://github.com/kubernetes-sigs/cluster-api/pull/8430/files
124-
* 1.6 - https://github.com/kubernetes-sigs/cluster-api/pull/9097/files
125-
* 1.7 - https://github.com/kubernetes-sigs/cluster-api/pull/9799/files
123+
* 1.9 - https://github.com/kubernetes-sigs/cluster-api/pull/11059
126124

127125
#### Create a new GitHub milestone for the next release
128126

hack/tools/internal/tilt-prepare/main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ const (
7171

7272
var (
7373
// Defines the default version to be used for the provider CR if no version is specified in the tilt-provider.yaml|json file.
74-
defaultProviderVersion = "v1.8.99"
74+
defaultProviderVersion = "v1.9.99"
7575

7676
// This data struct mirrors a subset of info from the providers struct in the tilt file
7777
// which is containing "hard-coded" tilt-provider.yaml files for the providers managed in the Cluster API repository.

metadata.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3
77
kind: Metadata
88
releaseSeries:
9+
- major: 1
10+
minor: 9
11+
contract: v1beta1
912
- major: 1
1013
minor: 8
1114
contract: v1beta1

test/e2e/clusterctl_upgrade_test.go

+32-24
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ var (
3838
providerDockerPrefix = "docker:v%s"
3939
)
4040

41+
// Note: This test should not be changed during "prepare main branch".
4142
var _ = Describe("When testing clusterctl upgrades (v0.3=>v1.5=>current)", func() {
4243
// We are testing v0.3=>v1.5=>current to ensure that old entries with v1alpha3 in managed files do not cause issues
4344
// as described in https://github.com/kubernetes-sigs/cluster-api/issues/10051.
@@ -114,6 +115,7 @@ var _ = Describe("When testing clusterctl upgrades (v0.3=>v1.5=>current)", func(
114115
})
115116
})
116117

118+
// Note: This test should not be changed during "prepare main branch".
117119
var _ = Describe("When testing clusterctl upgrades (v0.4=>v1.6=>current)", func() {
118120
// We are testing v0.4=>v1.6=>current to ensure that old entries with v1alpha4 in managed files do not cause issues
119121
// as described in https://github.com/kubernetes-sigs/cluster-api/issues/10051.
@@ -180,6 +182,7 @@ var _ = Describe("When testing clusterctl upgrades (v0.4=>v1.6=>current)", func(
180182
})
181183
})
182184

185+
// Note: This test should not be changed during "prepare main branch".
183186
var _ = Describe("When testing clusterctl upgrades (v1.0=>current)", func() {
184187
// Get v1.0 latest stable release
185188
version := "1.0"
@@ -215,9 +218,10 @@ var _ = Describe("When testing clusterctl upgrades (v1.0=>current)", func() {
215218
})
216219
})
217220

218-
var _ = Describe("When testing clusterctl upgrades (v1.6=>current)", func() {
219-
// Get v1.6 latest stable release
220-
version := "1.6"
221+
// Note: This test should be changed during "prepare main branch", it should test n-2 => current.
222+
var _ = Describe("When testing clusterctl upgrades (v1.7=>current)", func() {
223+
// Get v1.7 latest stable release
224+
version := "1.7"
221225
stableRelease, err := GetStableReleaseOfMinor(ctx, version)
222226
Expect(err).ToNot(HaveOccurred(), "Failed to get stable version for minor release : %s", version)
223227
ClusterctlUpgradeSpec(ctx, func() ClusterctlUpgradeSpecInput {
@@ -237,18 +241,19 @@ var _ = Describe("When testing clusterctl upgrades (v1.6=>current)", func() {
237241
InitWithInfrastructureProviders: []string{fmt.Sprintf(providerDockerPrefix, stableRelease)},
238242
InitWithProvidersContract: "v1beta1",
239243
// Note: Both InitWithKubernetesVersion and WorkloadKubernetesVersion should be the highest mgmt cluster version supported by the source Cluster API version.
240-
InitWithKubernetesVersion: "v1.29.0",
241-
WorkloadKubernetesVersion: "v1.29.0",
244+
InitWithKubernetesVersion: "v1.30.0",
245+
WorkloadKubernetesVersion: "v1.30.0",
242246
MgmtFlavor: "topology",
243247
WorkloadFlavor: "",
244248
UseKindForManagementCluster: true,
245249
}
246250
})
247251
})
248252

249-
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.6=>current) [ClusterClass]", func() {
250-
// Get v1.6 latest stable release
251-
version := "1.6"
253+
// Note: This test should be changed during "prepare main branch", it should test n-2 => current.
254+
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.7=>current) [ClusterClass]", func() {
255+
// Get v1.7 latest stable release
256+
version := "1.7"
252257
stableRelease, err := GetStableReleaseOfMinor(ctx, version)
253258
Expect(err).ToNot(HaveOccurred(), "Failed to get stable version for minor release : %s", version)
254259
ClusterctlUpgradeSpec(ctx, func() ClusterctlUpgradeSpecInput {
@@ -268,18 +273,19 @@ var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.6=>cur
268273
InitWithInfrastructureProviders: []string{fmt.Sprintf(providerDockerPrefix, stableRelease)},
269274
InitWithProvidersContract: "v1beta1",
270275
// Note: Both InitWithKubernetesVersion and WorkloadKubernetesVersion should be the highest mgmt cluster version supported by the source Cluster API version.
271-
InitWithKubernetesVersion: "v1.29.0",
272-
WorkloadKubernetesVersion: "v1.29.0",
276+
InitWithKubernetesVersion: "v1.30.0",
277+
WorkloadKubernetesVersion: "v1.30.0",
273278
MgmtFlavor: "topology",
274279
WorkloadFlavor: "topology",
275280
UseKindForManagementCluster: true,
276281
}
277282
})
278283
})
279284

280-
var _ = Describe("When testing clusterctl upgrades (v1.7=>current)", func() {
281-
// Get v1.7 latest stable release
282-
version := "1.7"
285+
// Note: This test should be changed during "prepare main branch", it should test n-1 => current.
286+
var _ = Describe("When testing clusterctl upgrades (v1.8=>current)", func() {
287+
// Get v1.8 latest stable release
288+
version := "1.8"
283289
stableRelease, err := GetStableReleaseOfMinor(ctx, version)
284290
Expect(err).ToNot(HaveOccurred(), "Failed to get stable version for minor release : %s", version)
285291
ClusterctlUpgradeSpec(ctx, func() ClusterctlUpgradeSpecInput {
@@ -293,18 +299,19 @@ var _ = Describe("When testing clusterctl upgrades (v1.7=>current)", func() {
293299
InitWithBinary: fmt.Sprintf(clusterctlDownloadURL, stableRelease),
294300
InitWithProvidersContract: "v1beta1",
295301
// Note: Both InitWithKubernetesVersion and WorkloadKubernetesVersion should be the highest mgmt cluster version supported by the source Cluster API version.
296-
InitWithKubernetesVersion: "v1.30.0",
297-
WorkloadKubernetesVersion: "v1.30.0",
302+
InitWithKubernetesVersion: "v1.31.0",
303+
WorkloadKubernetesVersion: "v1.31.0",
298304
MgmtFlavor: "topology",
299305
WorkloadFlavor: "",
300306
UseKindForManagementCluster: true,
301307
}
302308
})
303309
})
304310

305-
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.7=>current) [ClusterClass]", func() {
306-
// Get v1.7 latest stable release
307-
version := "1.7"
311+
// Note: This test should be changed during "prepare main branch", it should test n-1 => current.
312+
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.8=>current) [ClusterClass]", func() {
313+
// Get v1.8 latest stable release
314+
version := "1.8"
308315
stableRelease, err := GetStableReleaseOfMinor(ctx, version)
309316
Expect(err).ToNot(HaveOccurred(), "Failed to get stable version for minor release : %s", version)
310317
ClusterctlUpgradeSpec(ctx, func() ClusterctlUpgradeSpecInput {
@@ -318,18 +325,19 @@ var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.7=>cur
318325
InitWithBinary: fmt.Sprintf(clusterctlDownloadURL, stableRelease),
319326
InitWithProvidersContract: "v1beta1",
320327
// Note: Both InitWithKubernetesVersion and WorkloadKubernetesVersion should be the highest mgmt cluster version supported by the source Cluster API version.
321-
InitWithKubernetesVersion: "v1.30.0",
322-
WorkloadKubernetesVersion: "v1.30.0",
328+
InitWithKubernetesVersion: "v1.31.0",
329+
WorkloadKubernetesVersion: "v1.31.0",
323330
MgmtFlavor: "topology",
324331
WorkloadFlavor: "topology",
325332
UseKindForManagementCluster: true,
326333
}
327334
})
328335
})
329336

330-
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.7=>current) on K8S latest ci mgmt cluster [ClusterClass]", func() {
331-
// Get v1.7 latest stable release
332-
version := "1.7"
337+
// Note: This test should be changed during "prepare main branch", it should test n-1 => current.
338+
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.8=>current) on K8S latest ci mgmt cluster [ClusterClass]", func() {
339+
// Get v1.8 latest stable release
340+
version := "1.8"
333341
stableRelease, err := GetStableReleaseOfMinor(ctx, version)
334342
Expect(err).ToNot(HaveOccurred(), "Failed to get stable version for minor release : %s", version)
335343
ClusterctlUpgradeSpec(ctx, func() ClusterctlUpgradeSpecInput {
@@ -347,7 +355,7 @@ var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.7=>cur
347355
// Note: InitWithKubernetesVersion should be the latest of the next supported kubernetes version by the target Cluster API version.
348356
// Note: WorkloadKubernetesVersion should be the highest mgmt cluster version supported by the source Cluster API version.
349357
InitWithKubernetesVersion: initKubernetesVersion,
350-
WorkloadKubernetesVersion: "v1.30.0",
358+
WorkloadKubernetesVersion: "v1.31.0",
351359
MgmtFlavor: "topology",
352360
WorkloadFlavor: "topology",
353361
UseKindForManagementCluster: true,

0 commit comments

Comments
 (0)