Skip to content

Commit 283580c

Browse files
committed
Prepare main branch for v1.15
1 parent f7dd2c7 commit 283580c

10 files changed

Lines changed: 121 additions & 76 deletions

File tree

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,30 +54,30 @@
5454
providers = {
5555
'cluster-api': {
5656
'componentsFile': 'core-components.yaml',
57-
'nextVersion': 'v1.14.99',
57+
'nextVersion': 'v1.15.99',
5858
'type': 'CoreProvider',
5959
},
6060
'bootstrap-kubeadm': {
6161
'componentsFile': 'bootstrap-components.yaml',
62-
'nextVersion': 'v1.14.99',
62+
'nextVersion': 'v1.15.99',
6363
'type': 'BootstrapProvider',
6464
'configFolder': 'bootstrap/kubeadm/config/default',
6565
},
6666
'control-plane-kubeadm': {
6767
'componentsFile': 'control-plane-components.yaml',
68-
'nextVersion': 'v1.14.99',
68+
'nextVersion': 'v1.15.99',
6969
'type': 'ControlPlaneProvider',
7070
'configFolder': 'controlplane/kubeadm/config/default',
7171
},
7272
'infrastructure-docker': {
7373
'componentsFile': 'infrastructure-components-development.yaml',
74-
'nextVersion': 'v1.14.99',
74+
'nextVersion': 'v1.15.99',
7575
'type': 'InfrastructureProvider',
7676
'configFolder': 'test/infrastructure/docker/config/default',
7777
},
7878
'runtime-extension-test': {
7979
'componentsFile': 'runtime-extension-components-development.yaml',
80-
'nextVersion': 'v1.14.99',
80+
'nextVersion': 'v1.15.99',
8181
'type': 'RuntimeExtensionProvider',
8282
'configFolder': 'test/extension/config/default',
8383
},

docs/release/role-handbooks/release-lead/README.md

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -92,15 +92,10 @@ Here's an example of how to do this for the `v1.11` release cycle. That means `v
9292
3. Add the new release, `v1.11`, to the root level `metadata.yaml`.
9393
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.
9494
4. Adjust cluster templates in `test/e2e/data/infrastructure-docker`:
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`).
95+
1. Create a new `v1.10` folder. It should be created based on the `main` folder and only contain the files we use in the clusterctl upgrade tests (as of today `cluster-template-in-memory-topology.yaml` and `clusterclass-in-memory.yaml`).
9696
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`.
10297
2. Update `create-local-repository.py` and `tools/internal/tilt-prepare/main.go`: `v1.10.99` => `v1.11.99`.
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`).
98+
3. Make sure all tests are green (also run `pull-cluster-api-e2e-main` and `pull-cluster-api-e2e-upgrade-.*`).
10499

105100
Prior art:
106101

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

Lines changed: 1 addition & 1 deletion
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.14.99"
74+
defaultProviderVersion = "v1.15.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

Lines changed: 3 additions & 0 deletions
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: 15
11+
contract: v1beta2
912
- major: 1
1013
minor: 14
1114
contract: v1beta2

test/e2e/clusterctl_upgrade_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ var (
4343
)
4444

4545
// Note: This test should be changed during "prepare main branch", it should test n-3 => current.
46-
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.11=>current) [ClusterClass]", Label("ClusterClass"), func() {
46+
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.12=>current) [ClusterClass]", Label("ClusterClass"), func() {
4747
// Get n-3 latest stable release
48-
version := "1.11"
48+
version := "1.12"
4949
stableRelease, err := GetStableReleaseOfMinor(ctx, version)
5050
Expect(err).ToNot(HaveOccurred(), "Failed to get stable version for minor release : %s", version)
5151
ClusterctlUpgradeSpec(ctx, func() ClusterctlUpgradeSpecInput {
@@ -65,8 +65,8 @@ var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.11=>cu
6565
InitWithProvidersContract: "v1beta1",
6666
// Note: Both InitWithKubernetesVersion and WorkloadKubernetesVersion should be the highest mgmt cluster version supported by the source Cluster API version.
6767
// When picking this version, please check also the list of versions known by the source Cluster API version (rif. test/infrastructure/kind/mapper.go).
68-
InitWithKubernetesVersion: "v1.34.0",
69-
WorkloadKubernetesVersion: "v1.34.0",
68+
InitWithKubernetesVersion: "v1.35.0",
69+
WorkloadKubernetesVersion: "v1.35.0",
7070
MgmtFlavor: "topology",
7171
WorkloadFlavor: "in-memory-topology",
7272
UseKindForManagementCluster: true,
@@ -76,9 +76,9 @@ var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.11=>cu
7676
})
7777

7878
// Note: This test should be changed during "prepare main branch", it should test n-2 => current.
79-
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.12=>current) [ClusterClass]", Label("ClusterClass"), func() {
79+
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.13=>current) [ClusterClass]", Label("ClusterClass"), func() {
8080
// Get n-2 latest stable release
81-
version := "1.12"
81+
version := "1.13"
8282
stableRelease, err := GetStableReleaseOfMinor(ctx, version)
8383
Expect(err).ToNot(HaveOccurred(), "Failed to get stable version for minor release : %s", version)
8484
ClusterctlUpgradeSpec(ctx, func() ClusterctlUpgradeSpecInput {
@@ -107,8 +107,8 @@ var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.12=>cu
107107
},
108108
// Note: Both InitWithKubernetesVersion and WorkloadKubernetesVersion should be the highest mgmt cluster version supported by the source Cluster API version.
109109
// When picking this version, please check also the list of versions known by the source Cluster API version (rif. test/infrastructure/kind/mapper.go).
110-
InitWithKubernetesVersion: "v1.35.0",
111-
WorkloadKubernetesVersion: "v1.35.0",
110+
InitWithKubernetesVersion: "v1.36.1",
111+
WorkloadKubernetesVersion: "v1.36.1",
112112
MgmtFlavor: "topology",
113113
WorkloadFlavor: "in-memory-topology",
114114
UseKindForManagementCluster: true,
@@ -118,9 +118,9 @@ var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.12=>cu
118118
})
119119

120120
// Note: This test should be changed during "prepare main branch", it should test n-1 => current.
121-
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.13=>current) [ClusterClass]", Label("ClusterClass"), func() {
121+
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.14=>current) [ClusterClass]", Label("ClusterClass"), func() {
122122
// Get n-1 latest stable release
123-
version := "1.13"
123+
version := "1.14"
124124
stableRelease, err := GetStableReleaseOfMinor(ctx, version)
125125
Expect(err).ToNot(HaveOccurred(), "Failed to get stable version for minor release : %s", version)
126126
ClusterctlUpgradeSpec(ctx, func() ClusterctlUpgradeSpecInput {
@@ -154,9 +154,9 @@ var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.13=>cu
154154
})
155155

156156
// Note: This test should be changed during "prepare main branch", it should test n-1 => current.
157-
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.13=>current) on K8S latest ci mgmt cluster [ClusterClass]", Label("ClusterClass"), func() {
157+
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.14=>current) on K8S latest ci mgmt cluster [ClusterClass]", Label("ClusterClass"), func() {
158158
// Get n-1 latest stable release
159-
version := "1.13"
159+
version := "1.14"
160160
stableRelease, err := GetStableReleaseOfMinor(ctx, version)
161161
Expect(err).ToNot(HaveOccurred(), "Failed to get stable version for minor release : %s", version)
162162
ClusterctlUpgradeSpec(ctx, func() ClusterctlUpgradeSpecInput {

test/e2e/config/docker.yaml

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,6 @@ providers:
3333
- name: cluster-api
3434
type: CoreProvider
3535
versions:
36-
- name: "{go://sigs.k8s.io/cluster-api@v1.11}"
37-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.11}/core-components.yaml"
38-
type: "url"
39-
contract: v1beta1
40-
replacements:
41-
- old: --metrics-addr=127.0.0.1:8080
42-
new: --metrics-addr=:8080
43-
files:
44-
- sourcePath: "../data/shared/v1.11/metadata.yaml"
4536
- name: "{go://sigs.k8s.io/cluster-api@v1.12}"
4637
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.12}/core-components.yaml"
4738
type: "url"
@@ -60,23 +51,23 @@ providers:
6051
new: --metrics-addr=:8080
6152
files:
6253
- sourcePath: "../data/shared/v1.13/metadata.yaml"
63-
- name: v1.14.99 # next; use manifest from source files
54+
- name: "{go://sigs.k8s.io/cluster-api@v1.14}"
55+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.14}/core-components.yaml"
56+
type: "url"
57+
contract: v1beta1
58+
replacements:
59+
- old: --metrics-addr=127.0.0.1:8080
60+
new: --metrics-addr=:8080
61+
files:
62+
- sourcePath: "../data/shared/v1.14/metadata.yaml"
63+
- name: v1.15.99 # next; use manifest from source files
6464
value: ../../../core/config/default
6565
files:
6666
- sourcePath: "../data/shared/main/metadata.yaml"
6767

6868
- name: kubeadm
6969
type: BootstrapProvider
7070
versions:
71-
- name: "{go://sigs.k8s.io/cluster-api@v1.11}"
72-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.11}/bootstrap-components.yaml"
73-
type: "url"
74-
contract: v1beta1
75-
replacements:
76-
- old: --metrics-addr=127.0.0.1:8080
77-
new: --metrics-addr=:8080
78-
files:
79-
- sourcePath: "../data/shared/v1.11/metadata.yaml"
8071
- name: "{go://sigs.k8s.io/cluster-api@v1.12}"
8172
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.12}/bootstrap-components.yaml"
8273
type: "url"
@@ -95,23 +86,23 @@ providers:
9586
new: --metrics-addr=:8080
9687
files:
9788
- sourcePath: "../data/shared/v1.13/metadata.yaml"
98-
- name: v1.14.99 # next; use manifest from source files
89+
- name: "{go://sigs.k8s.io/cluster-api@v1.14}"
90+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.14}/bootstrap-components.yaml"
91+
type: "url"
92+
contract: v1beta1
93+
replacements:
94+
- old: --metrics-addr=127.0.0.1:8080
95+
new: --metrics-addr=:8080
96+
files:
97+
- sourcePath: "../data/shared/v1.14/metadata.yaml"
98+
- name: v1.15.99 # next; use manifest from source files
9999
value: ../../../bootstrap/kubeadm/config/default
100100
files:
101101
- sourcePath: "../data/shared/main/metadata.yaml"
102102

103103
- name: kubeadm
104104
type: ControlPlaneProvider
105105
versions:
106-
- name: "{go://sigs.k8s.io/cluster-api@v1.11}"
107-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.11}/control-plane-components.yaml"
108-
type: "url"
109-
contract: v1beta1
110-
replacements:
111-
- old: --metrics-addr=127.0.0.1:8080
112-
new: --metrics-addr=:8080
113-
files:
114-
- sourcePath: "../data/shared/v1.11/metadata.yaml"
115106
- name: "{go://sigs.k8s.io/cluster-api@v1.12}"
116107
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.12}/control-plane-components.yaml"
117108
type: "url"
@@ -130,25 +121,23 @@ providers:
130121
new: --metrics-addr=:8080
131122
files:
132123
- sourcePath: "../data/shared/v1.13/metadata.yaml"
133-
- name: v1.14.99 # next; use manifest from source files
124+
- name: "{go://sigs.k8s.io/cluster-api@v1.14}"
125+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.14}/control-plane-components.yaml"
126+
type: "url"
127+
contract: v1beta1
128+
replacements:
129+
- old: --metrics-addr=127.0.0.1:8080
130+
new: --metrics-addr=:8080
131+
files:
132+
- sourcePath: "../data/shared/v1.14/metadata.yaml"
133+
- name: v1.15.99 # next; use manifest from source files
134134
value: ../../../controlplane/kubeadm/config/default
135135
files:
136136
- sourcePath: "../data/shared/main/metadata.yaml"
137137

138138
- name: docker
139139
type: InfrastructureProvider
140140
versions:
141-
- name: "{go://sigs.k8s.io/cluster-api@v1.11}"
142-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.11}/infrastructure-components-development.yaml"
143-
type: "url"
144-
contract: v1beta1
145-
replacements:
146-
- old: --metrics-addr=127.0.0.1:8080
147-
new: --metrics-addr=:8080
148-
files:
149-
- sourcePath: "../data/shared/v1.11/metadata.yaml"
150-
- sourcePath: "../data/infrastructure-docker/v1.11/cluster-template-in-memory-topology.yaml"
151-
- sourcePath: "../data/infrastructure-docker/v1.11/clusterclass-in-memory.yaml"
152141
- name: "{go://sigs.k8s.io/cluster-api@v1.12}"
153142
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.12}/infrastructure-components-development.yaml"
154143
type: "url"
@@ -171,7 +160,18 @@ providers:
171160
- sourcePath: "../data/shared/v1.13/metadata.yaml"
172161
- sourcePath: "../data/infrastructure-docker/v1.13/cluster-template-in-memory-topology.yaml"
173162
- sourcePath: "../data/infrastructure-docker/v1.13/clusterclass-in-memory.yaml"
174-
- name: v1.14.99 # next; use manifest from source files
163+
- name: "{go://sigs.k8s.io/cluster-api@v1.14}"
164+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/{go://sigs.k8s.io/cluster-api@v1.14}/infrastructure-components-development.yaml"
165+
type: "url"
166+
contract: v1beta1
167+
replacements:
168+
- old: --metrics-addr=127.0.0.1:8080
169+
new: --metrics-addr=:8080
170+
files:
171+
- sourcePath: "../data/shared/v1.14/metadata.yaml"
172+
- sourcePath: "../data/infrastructure-docker/v1.14/cluster-template-in-memory-topology.yaml"
173+
- sourcePath: "../data/infrastructure-docker/v1.14/clusterclass-in-memory.yaml"
174+
- name: v1.15.99 # next; use manifest from source files
175175
value: ../../../test/infrastructure/docker/config/default
176176
files:
177177
# Add cluster templates
@@ -207,7 +207,7 @@ providers:
207207
- name: test-extension
208208
type: RuntimeExtensionProvider
209209
versions:
210-
- name: v1.14.99 # next; use manifest from source files
210+
- name: v1.15.99 # next; use manifest from source files
211211
value: ../../../test/extension/config/default
212212
files:
213213
- sourcePath: "../data/shared/main/metadata.yaml"

test/e2e/data/infrastructure-docker/v1.11/cluster-template-in-memory-topology.yaml renamed to test/e2e/data/infrastructure-docker/v1.14/cluster-template-in-memory-topology.yaml

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,15 @@ spec:
2828
Cluster.topology.controlPlane.label: Cluster.topology.controlPlane.labelValue
2929
Cluster.topology.controlPlane.label.node.cluster.x-k8s.io: Cluster.topology.controlPlane.nodeLabelValue
3030
replicas: ${CONTROL_PLANE_MACHINE_COUNT}
31+
taints:
32+
- effect: PreferNoSchedule
33+
key: pre-existing-on-initialization-taint
34+
propagation: OnInitialization
35+
value: on-initialization-value
36+
- effect: PreferNoSchedule
37+
key: pre-existing-always-taint
38+
propagation: Always
39+
value: always-value
3140
version: ${KUBERNETES_VERSION}
3241
workers:
3342
machineDeployments:
@@ -45,9 +54,23 @@ spec:
4554
minReadySeconds: 5
4655
name: md-0
4756
replicas: ${WORKER_MACHINE_COUNT}
57+
taints:
58+
- effect: PreferNoSchedule
59+
key: pre-existing-on-initialization-taint
60+
propagation: OnInitialization
61+
value: on-initialization-value
62+
- effect: PreferNoSchedule
63+
key: pre-existing-always-taint
64+
propagation: Always
65+
value: always-value
4866
rollout:
4967
strategy:
5068
rollingUpdate:
51-
maxSurge: 20%
52-
maxUnavailable: 0
69+
maxSurge: ${MD_MAX_SURGE:-20%}
70+
maxUnavailable: ${MD_MAX_UNAVAILABLE:-0}
5371
type: RollingUpdate
72+
variables:
73+
- name: kubeadmControlPlaneMaxSurge
74+
value: "${KUBEADM_CONTROL_PLANE_MAX_SURGE:-1}"
75+
- name: imageRepository
76+
value: "kindest"

test/e2e/data/infrastructure-docker/v1.11/clusterclass-in-memory.yaml renamed to test/e2e/data/infrastructure-docker/v1.14/clusterclass-in-memory.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ metadata:
7878
name: in-memory
7979
spec:
8080
controlPlane:
81+
metadata:
82+
labels:
83+
ClusterClass.controlPlane.label: "ClusterClass.controlPlane.labelValue"
84+
annotations:
85+
ClusterClass.controlPlane.annotation: "ClusterClass.controlPlane.annotationValue"
8186
machineInfrastructure:
8287
templateRef:
8388
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
@@ -104,6 +109,11 @@ spec:
104109
workers:
105110
machineDeployments:
106111
- class: default-worker
112+
metadata:
113+
labels:
114+
ClusterClass.machineDeployment.label: "ClusterClass.machineDeployment.labelValue"
115+
annotations:
116+
ClusterClass.machineDeployment.annotation: "ClusterClass.machineDeployment.annotationValue"
107117
bootstrap:
108118
templateRef:
109119
apiVersion: bootstrap.cluster.x-k8s.io/v1beta2
@@ -123,3 +133,11 @@ spec:
123133
- type: Ready
124134
status: "False"
125135
timeoutSeconds: 300
136+
patches:
137+
- name: test-patch
138+
external:
139+
generatePatchesExtension: generate-patches.${EXTENSION_CONFIG_NAME:-"scale"}
140+
discoverVariablesExtension: discover-variables.${EXTENSION_CONFIG_NAME:-"scale"}
141+
upgrade:
142+
external:
143+
generateUpgradePlanExtension: generate-upgrade-plan.${EXTENSION_CONFIG_NAME:-"scale"}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3
22
kind: Metadata
33
releaseSeries:
4+
- major: 1
5+
minor: 15
6+
contract: v1beta2
47
- major: 1
58
minor: 14
69
contract: v1beta2

0 commit comments

Comments
 (0)