Skip to content

Commit 8881420

Browse files
Change upgrade test to newer CAPI
1 parent 9dda276 commit 8881420

File tree

9 files changed

+40
-80
lines changed

9 files changed

+40
-80
lines changed

docs/book/src/developers/releasing.md

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,29 +44,40 @@ Sometimes pull requests touch a large number of files and are more likely to cre
4444
- Open a PR in https://github.com/kubernetes/test-infra to change this [line](https://github.com/kubernetes/test-infra/blob/25db54eb9d52e08c16b3601726d8f154f8741025/config/prow/plugins.yaml#L344)
4545
- Example PR: https://github.com/kubernetes/test-infra/pull/16827
4646

47-
### Update test capz provider metadata.yaml (skip for patch releases)
47+
### Update test provider versions (skip for patch releases)
48+
49+
This can be done in parallel with release publishing and does not impact the release or its artifacts.
50+
51+
#### Update test capz provider metadata.yaml
4852

4953
Using that same next release version used to create a new milestone, update the the capz provider [metadata.yaml](https://github.com/kubernetes-sigs/cluster-api-provider-azure/blob/main/test/e2e/data/shared/v1beta1_provider/metadata.yaml) that we use to run PR and periodic cluster E2E tests against the main branch templates.
5054

51-
For example, if the latest stable API version of capz that we run E2E tests against is `v1beta`, and we're releasing `v1.4.0`, and our next release version is `v1.5.0`, then we want to ensure that the `metadata.yaml` defines a contract between `1.5` and `v1beta1`:
55+
For example, if the latest stable API version of capz that we run E2E tests against is `v1beta`, and we're releasing `v1.12.0`, and our next release version is `v1.13.0`, then we want to ensure that the `metadata.yaml` defines a contract between `v1.13.0` and `v1beta1`:
5256

5357
```yaml
5458
apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3
5559
releaseSeries:
56-
- major: 0
57-
minor: 5
58-
contract: v1alpha4
5960
- major: 1
60-
minor: 5
61+
minor: 11
62+
contract: v1beta1
63+
- major: 1
64+
minor: 12
65+
contract: v1beta1
66+
- major: 1
67+
minor: 13
6168
contract: v1beta1
6269
```
6370
64-
Additionally, we need to update the `type: InfrastructureProvider` spec in [azure-dev.yaml](https://github.com/kubernetes-sigs/cluster-api-provider-azure/blob/main/test/e2e/config/azure-dev.yaml) to express that our intent is to test (using the above example) `1.5`. By convention we use a sentinel patch version "99" to express "any patch version". In this example we want to look for the `type: InfrastructureProvider` with a `name` value of `v1.4.99` and update it to `v1.5.99`:
71+
Additionally, we need to update the `type: InfrastructureProvider` spec in [azure-dev.yaml](https://github.com/kubernetes-sigs/cluster-api-provider-azure/blob/main/test/e2e/config/azure-dev.yaml) to express that our intent is to test (using the above example) `1.5`. By convention we use a sentinel patch version "99" to express "any patch version". In this example we want to look for the `type: InfrastructureProvider` with a `name` value of `v1.12.99` and update it to `v1.13.99`:
6572

6673
```
67-
- name: v1.5.99 # "vNext"; use manifests from local source files
74+
- name: v1.13.99 # "vNext"; use manifests from local source files
6875
```
6976
77+
#### Update clusterctl API version upgrade tests
78+
79+
Update the [API version upgrade tests](https://github.com/kubernetes-sigs/cluster-api-provider-azure/blob/v1.12.1/test/e2e/capi_test.go#L214) to use the oldest supported release versions of CAPI and CAPZ after the release is cut as "Init" provider versions. See [this PR](https://github.com/kubernetes-sigs/cluster-api-provider-azure/pull/4433) for more details.
80+
7081
### Create a tag
7182
7283
Before you create a GPG-signed tag you may need to prepare your local environment's TTY to properly hoist your signed key into the flow of the `git tag` command:

test/e2e/capi_test.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -236,11 +236,12 @@ var _ = Describe("Running the Cluster API E2E tests", func() {
236236
ControlPlaneWaiters: clusterctl.ControlPlaneWaiters{
237237
WaitForControlPlaneInitialized: EnsureControlPlaneInitialized,
238238
},
239-
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.0.5/clusterctl-{OS}-{ARCH}",
240-
InitWithCoreProvider: "cluster-api:v1.0.5",
241-
InitWithBootstrapProviders: []string{"kubeadm:v1.0.5"},
242-
InitWithControlPlaneProviders: []string{"kubeadm:v1.0.5"},
243-
InitWithInfrastructureProviders: []string{"azure:v1.0.2"},
239+
InitWithKubernetesVersion: "v1.26.12",
240+
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.5.4/clusterctl-{OS}-{ARCH}",
241+
InitWithCoreProvider: "cluster-api:v1.5.4",
242+
InitWithBootstrapProviders: []string{"kubeadm:v1.5.4"},
243+
InitWithControlPlaneProviders: []string{"kubeadm:v1.5.4"},
244+
InitWithInfrastructureProviders: []string{"azure:v1.9.8"},
244245
}
245246
})
246247
})

test/e2e/config/azure-dev.yaml

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ providers:
1414
- name: cluster-api
1515
type: CoreProvider
1616
versions:
17-
- name: v1.0.5 # earliest published release in the v1beta1 series; this is used for v1beta1 old --> v1beta1 latest clusterctl upgrades test only.
18-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.0.5/core-components.yaml"
17+
- name: v1.5.4 # latest patch of earliest minor in supported v1beta1 releases; this is used for v1beta1 old --> v1beta1 latest clusterctl upgrades test only.
18+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.5.4/core-components.yaml"
1919
type: "url"
2020
contract: v1beta1
2121
replacements:
@@ -37,8 +37,8 @@ providers:
3737
- name: kubeadm
3838
type: BootstrapProvider
3939
versions:
40-
- name: v1.0.5 # earliest published release in the v1beta1 series; this is used for v1beta1 old --> v1beta1 latest clusterctl upgrades test only.
41-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.0.5/bootstrap-components.yaml"
40+
- name: v1.5.4 # latest patch of earliest minor in supported v1beta1 releases; this is used for v1beta1 old --> v1beta1 latest clusterctl upgrades test only.
41+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.5.4/bootstrap-components.yaml"
4242
type: "url"
4343
contract: v1beta1
4444
replacements:
@@ -59,8 +59,8 @@ providers:
5959
- name: kubeadm
6060
type: ControlPlaneProvider
6161
versions:
62-
- name: v1.0.5 # earliest published release in the v1beta1 series; this is used for v1beta1 old --> v1beta1 latest clusterctl upgrades test only.
63-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.0.5/control-plane-components.yaml"
62+
- name: v1.5.4 # latest patch of earliest minor in supported v1beta1 releases; this is used for v1beta1 old --> v1beta1 latest clusterctl upgrades test only.
63+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.5.4/control-plane-components.yaml"
6464
type: "url"
6565
contract: v1beta1
6666
replacements:
@@ -81,18 +81,18 @@ providers:
8181
- name: azure
8282
type: InfrastructureProvider
8383
versions:
84-
- name: v1.0.2 # earliest published release in the v1beta1 series; this is used for v1beta1 old --> v1beta1 latest clusterctl upgrades test only.
85-
value: https://github.com/kubernetes-sigs/cluster-api-provider-azure/releases/download/v1.0.2/infrastructure-components.yaml
84+
- name: v1.9.8 # latest patch of earliest minor in supported v1beta1 releases; this is used for v1beta1 old --> v1beta1 latest clusterctl upgrades test only.
85+
value: https://github.com/kubernetes-sigs/cluster-api-provider-azure/releases/download/v1.9.8/infrastructure-components.yaml
8686
type: url
8787
contract: v1beta1
8888
files:
8989
- sourcePath: "../data/shared/v1beta1_provider/metadata.yaml"
90-
- sourcePath: "../data/infrastructure-azure/v1.0.2/cluster-template-prow.yaml"
90+
- sourcePath: "../data/infrastructure-azure/v1.9.8/cluster-template-prow.yaml"
9191
targetName: "cluster-template.yaml"
9292
replacements:
9393
- old: "imagePullPolicy: Always"
9494
new: "imagePullPolicy: IfNotPresent"
95-
- name: v1.12.99 # "vNext"; use manifests from local source files
95+
- name: v1.11.99 # "vNext"; use manifests from local source files
9696
value: "${PWD}/config/default"
9797
contract: v1beta1
9898
files:
@@ -173,11 +173,6 @@ variables:
173173
CLUSTER_IDENTITY_NAME: "cluster-identity-sp"
174174
NODE_DRAIN_TIMEOUT: "60s"
175175
CI_VERSION: ""
176-
# NOTE: INIT_WITH_BINARY and INIT_WITH_KUBERNETES_VERSION are only used by the clusterctl upgrade test to initialize
177-
# the management cluster to be upgraded.
178-
INIT_WITH_BINARY: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.0.5/clusterctl-{OS}-{ARCH}"
179-
INIT_WITH_PROVIDERS_CONTRACT: "v1beta1"
180-
INIT_WITH_KUBERNETES_VERSION: "v1.23.13"
181176
KUBETEST_CONFIGURATION: "./data/kubetest/conformance.yaml"
182177
WINDOWS_CONTAINERD_URL: "${WINDOWS_CONTAINERD_URL:-}"
183178
SECURITY_SCAN_FAIL_THRESHOLD: "${SECURITY_SCAN_FAIL_THRESHOLD:-100}"

test/e2e/data/infrastructure-azure/v1.0.2/cluster-template-prow.yaml renamed to test/e2e/data/infrastructure-azure/v1.9.8/cluster-template-prow.yaml

File renamed without changes.

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

Lines changed: 0 additions & 9 deletions
This file was deleted.

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

Lines changed: 0 additions & 13 deletions
This file was deleted.

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

Lines changed: 0 additions & 12 deletions
This file was deleted.

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

Lines changed: 0 additions & 16 deletions
This file was deleted.

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@
88
apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3
99
releaseSeries:
1010
- major: 1
11-
minor: 0
11+
minor: 9
1212
contract: v1beta1
1313
- major: 1
14-
minor: 12
14+
minor: 10
15+
contract: v1beta1
16+
- major: 1
17+
minor: 11
1518
contract: v1beta1

0 commit comments

Comments
 (0)