You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/release/role-handbooks/release-lead/README.md
+24-14Lines changed: 24 additions & 14 deletions
Original file line number
Diff line number
Diff line change
@@ -68,33 +68,43 @@ If necessary, the release lead can adjust the release team during the cycle to h
68
68
The goal of this issue is to bump the versions on the main branch so that the upcoming release version
69
69
is used for e.g. local development and e2e tests. We also modify tests so that they are testing the previous release.
70
70
71
-
This comes down to changing occurrences of the old version to the new version, e.g. `v1.5` to `v1.6`:
71
+
Here's an example of how to do this for the `v1.11` release cycle. That means `v1.10` just released and we are preparing for `v1.11`.
72
72
73
73
1. Setup E2E tests for the new release:
74
74
1. Goal is that we have clusterctl upgrade tests for all relevant upgrade cases
75
75
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"`)
76
76
Please note that both `InitWithKubernetesVersion` and `WorkloadKubernetesVersion` should be the highest management cluster version supported by the respective Cluster API version.
77
-
2. Please ping maintainers after these changes are made for a first round of feedback before continuing with the steps below.
77
+
1. Be careful here. For example, let's say you're updating the `v1.9` test in `test/e2e/clusterctl_upgrade_test.go`. You want to set WorkloadKubernetesVersion to be the latest
78
+
version of kubernetes that `v1.9` supports, which would be `1.32`. You can't just use the very latest version of k8s `1.32.X` that exists, because the e2e tests use the
79
+
version of kind inside the `release-1.9` branch. So you have to use the latest version of k8s `1.32` that is in the `release-1.9` branch's `test/infrastructure/kind/mapper.go`
80
+
file. Which would be `1.32.0` as of this writing.
81
+
2. You may even have to delay using the latest verison of k8s for the version of CAPI that just released until kind is updated with an image of that new version.
82
+
So for `v1.10`, which supports k8s `v1.33`, we had to use `1.32.2` at first, as that was the latest version of `1.32` that was in the `release-1.10` branch's
83
+
`test/infrastructure/kind/mapper.go` file. We usually add a comment in the test case to remind us to update `release-1.10`'s kind and use `1.33.X` later.
84
+
2.:warning: Please ping maintainers after these changes are made for a first round of feedback before continuing with the steps below.
78
85
2. Update providers in `docker.yaml`:
79
-
1. Add a new `v1.6` entry.
86
+
1. Add a new `v1.11` entry.
80
87
2. Remove providers that are not used anymore in clusterctl upgrade tests.
81
-
3. Change `v1.5.99` to `v1.6.99`.
88
+
3. Change `v1.10.99` to `v1.11.99`.
82
89
3. Adjust `metadata.yaml`'s:
83
-
1. Create a new `v1.6``metadata.yaml` (`test/e2e/data/shared/v1.6/metadata.yaml`) by copying
84
-
`test/e2e/data/shared/main/metadata.yaml`
85
-
2. Add the new release to the main `metadata.yaml` (`test/e2e/data/shared/main/metadata.yaml`).
86
-
3. Add the new release to the root level `metadata.yaml`
87
-
4. Remove old `metadata.yaml`'s that are not used anymore in clusterctl upgrade tests.
90
+
1. Create a new `v1.10``metadata.yaml` (`test/e2e/data/shared/v1.10/metadata.yaml`) by copying the `test/e2e/data/shared/main` folder and renaming it to `v1.10`.
91
+
2. Add the new release, `v1.11`, to the main `metadata.yaml` (`test/e2e/data/shared/main/metadata.yaml`).
92
+
3. Add the new release, `v1.11`, to the root level `metadata.yaml`.
93
+
4. Remove old `metadata.yaml`'s that are not used anymore in clusterctl upgrade tests, the `test/e2e/data/shared/v1.7` folder in this example.
88
94
4. Adjust cluster templates in `test/e2e/data/infrastructure-docker`:
89
-
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`).
90
-
2. Remove old folders that are not used anymore in clusterctl upgrade tests.
91
-
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)
92
-
2. Update `create-local-repository.py` and `tools/internal/tilt-prepare/main.go`: `v1.5.99` => `v1.6.99`.
95
+
1. Create a new `v1.10` 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`).
96
+
2. Remove old folders that are not used anymore in clusterctl upgrade tests, `test/e2e/data/infrastructure-docker/v1.7` in this example.
97
+
5. Add a new Makefile target
98
+
1. Create the new target, `generate-e2e-templates-v1.10` in this example.
99
+
1. Add the new target `v1.10` to `generate-e2e-templates`.
100
+
1. Potentially remove the Makefile target of versions that are not used anymore (if something was removed in 4.2)
101
+
1. In this example we removed `generate-e2e-templates-v1.7` and removed `v1.7` from `generate-e2e-templates`.
102
+
2. Update `create-local-repository.py` and `tools/internal/tilt-prepare/main.go`: `v1.10.99` => `v1.11.99`.
93
103
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`).
0 commit comments