Skip to content

Commit a05d171

Browse files
author
Yuvaraj Kakaraparthi
committed
prepare main branch for v1.4 development
1 parent f73b00d commit a05d171

File tree

16 files changed

+634
-22
lines changed

16 files changed

+634
-22
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ hack/tools/bin
1414
test/e2e/data/infrastructure-docker/v1alpha3/cluster-template*.yaml
1515
test/e2e/data/infrastructure-docker/v1alpha4/cluster-template*.yaml
1616
test/e2e/data/infrastructure-docker/v1beta1/v1.2/cluster-template*.yaml
17+
test/e2e/data/infrastructure-docker/v1beta1/v1.3/cluster-template*.yaml
1718
test/e2e/data/infrastructure-docker/v1beta1/main/cluster-template*.yaml
1819

1920
# E2e test extension deployment

Makefile

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ generate-modules: ## Run go mod tidy to ensure modules are up to date
470470
cd $(TEST_DIR); go mod tidy
471471

472472
.PHONY: generate-e2e-templates
473-
generate-e2e-templates: $(KUSTOMIZE) $(addprefix generate-e2e-templates-, v1alpha3 v1alpha4 v1.2 v1beta1) ## Generate cluster templates for all versions
473+
generate-e2e-templates: $(KUSTOMIZE) $(addprefix generate-e2e-templates-, v1alpha3 v1alpha4 v1.2 v1.3 v1beta1) ## Generate cluster templates for all versions
474474

475475
DOCKER_TEMPLATES := test/e2e/data/infrastructure-docker
476476

@@ -497,6 +497,11 @@ generate-e2e-templates-v1.2: $(KUSTOMIZE)
497497
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/v1.2/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/v1.2/cluster-template.yaml
498498
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/v1.2/cluster-template-topology --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/v1.2/cluster-template-topology.yaml
499499

500+
.PHONY: generate-e2e-templates-v1.3
501+
generate-e2e-templates-v1.3: $(KUSTOMIZE)
502+
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/v1.3/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/v1.3/cluster-template.yaml
503+
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/v1.3/cluster-template-topology --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/v1.3/cluster-template-topology.yaml
504+
500505
.PHONY: generate-e2e-templates-v1beta1
501506
generate-e2e-templates-v1beta1: $(KUSTOMIZE)
502507
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template.yaml

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,30 +53,30 @@
5353
providers = {
5454
'cluster-api': {
5555
'componentsFile': 'core-components.yaml',
56-
'nextVersion': 'v1.3.99',
56+
'nextVersion': 'v1.4.99',
5757
'type': 'CoreProvider',
5858
},
5959
'bootstrap-kubeadm': {
6060
'componentsFile': 'bootstrap-components.yaml',
61-
'nextVersion': 'v1.3.99',
61+
'nextVersion': 'v1.4.99',
6262
'type': 'BootstrapProvider',
6363
'configFolder': 'bootstrap/kubeadm/config/default',
6464
},
6565
'control-plane-kubeadm': {
6666
'componentsFile': 'control-plane-components.yaml',
67-
'nextVersion': 'v1.3.99',
67+
'nextVersion': 'v1.4.99',
6868
'type': 'ControlPlaneProvider',
6969
'configFolder': 'controlplane/kubeadm/config/default',
7070
},
7171
'infrastructure-docker': {
7272
'componentsFile': 'infrastructure-components.yaml',
73-
'nextVersion': 'v1.3.99',
73+
'nextVersion': 'v1.4.99',
7474
'type': 'InfrastructureProvider',
7575
'configFolder': 'test/infrastructure/docker/config/default',
7676
},
7777
'runtime-extension-test': {
7878
'componentsFile': 'runtime-extension-components.yaml',
79-
'nextVersion': 'v1.3.99',
79+
'nextVersion': 'v1.4.99',
8080
'type': 'RuntimeExtensionProvider',
8181
'configFolder': 'test/extension/config/default',
8282
},

hack/tools/tilt-prepare/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -919,7 +919,7 @@ func getProviderObj(prefix string, objs []unstructured.Unstructured) (*unstructu
919919
},
920920
ProviderName: providerName,
921921
Type: providerType,
922-
Version: "v1.3.99",
922+
Version: "v1.4.99",
923923
}
924924

925925
providerObj := &unstructured.Unstructured{}

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: 4
11+
contract: v1beta1
912
- major: 1
1013
minor: 3
1114
contract: v1beta1

test/e2e/clusterctl_upgrade_test.go

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,22 @@ var _ = Describe("When testing clusterctl upgrades (v1.2=>current)", func() {
6666
BootstrapClusterProxy: bootstrapClusterProxy,
6767
ArtifactFolder: artifactFolder,
6868
SkipCleanup: skipCleanup,
69-
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.2.5/clusterctl-{OS}-{ARCH}",
69+
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.2.7/clusterctl-{OS}-{ARCH}",
70+
InitWithProvidersContract: "v1beta1",
71+
InitWithKubernetesVersion: "v1.25.3",
72+
}
73+
})
74+
})
75+
76+
var _ = Describe("When testing clusterctl upgrades (v1.3=>current)", func() {
77+
ClusterctlUpgradeSpec(ctx, func() ClusterctlUpgradeSpecInput {
78+
return ClusterctlUpgradeSpecInput{
79+
E2EConfig: e2eConfig,
80+
ClusterctlConfigPath: clusterctlConfigPath,
81+
BootstrapClusterProxy: bootstrapClusterProxy,
82+
ArtifactFolder: artifactFolder,
83+
SkipCleanup: skipCleanup,
84+
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.3.0/clusterctl-{OS}-{ARCH}",
7085
InitWithProvidersContract: "v1beta1",
7186
InitWithKubernetesVersion: "v1.25.3",
7287
}
@@ -81,7 +96,23 @@ var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.2=>cur
8196
BootstrapClusterProxy: bootstrapClusterProxy,
8297
ArtifactFolder: artifactFolder,
8398
SkipCleanup: skipCleanup,
84-
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.2.5/clusterctl-{OS}-{ARCH}",
99+
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.2.7/clusterctl-{OS}-{ARCH}",
100+
InitWithProvidersContract: "v1beta1",
101+
InitWithKubernetesVersion: "v1.25.3",
102+
WorkloadFlavor: "topology",
103+
}
104+
})
105+
})
106+
107+
var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.3=>current) [ClusterClass]", func() {
108+
ClusterctlUpgradeSpec(ctx, func() ClusterctlUpgradeSpecInput {
109+
return ClusterctlUpgradeSpecInput{
110+
E2EConfig: e2eConfig,
111+
ClusterctlConfigPath: clusterctlConfigPath,
112+
BootstrapClusterProxy: bootstrapClusterProxy,
113+
ArtifactFolder: artifactFolder,
114+
SkipCleanup: skipCleanup,
115+
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.3.0/clusterctl-{OS}-{ARCH}",
85116
InitWithProvidersContract: "v1beta1",
86117
InitWithKubernetesVersion: "v1.25.3",
87118
WorkloadFlavor: "topology",

test/e2e/config/docker.yaml

Lines changed: 52 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,25 @@ providers:
4949
new: --metrics-addr=:8080
5050
files:
5151
- sourcePath: "../data/shared/v1alpha4/metadata.yaml"
52-
- name: v1.2.5 # latest published release in the v1beta1 series; this is used for v1beta1 --> main clusterctl upgrades test only.
53-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.2.5/core-components.yaml"
52+
- name: v1.2.7 # supported release in the v1beta1 series; this is used for v1beta1 --> main clusterctl upgrades test only.
53+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.2.7/core-components.yaml"
5454
type: "url"
5555
contract: v1beta1
5656
replacements:
5757
- old: --metrics-addr=127.0.0.1:8080
5858
new: --metrics-addr=:8080
5959
files:
6060
- sourcePath: "../data/shared/v1beta1/v1.2/metadata.yaml"
61-
- name: v1.3.99 # next; use manifest from source files
61+
- name: v1.3.0 # latest published release in the v1beta1 series; this is used for v1beta1 --> main clusterctl upgrades test only.
62+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.3.0/core-components.yaml"
63+
type: "url"
64+
contract: v1beta1
65+
replacements:
66+
- old: --metrics-addr=127.0.0.1:8080
67+
new: --metrics-addr=:8080
68+
files:
69+
- sourcePath: "../data/shared/v1beta1/v1.3/metadata.yaml"
70+
- name: v1.4.99 # next; use manifest from source files
6271
value: ../../../config/default
6372
replacements:
6473
- old: --metrics-bind-addr=localhost:8080
@@ -87,16 +96,25 @@ providers:
8796
new: --metrics-addr=:8080
8897
files:
8998
- sourcePath: "../data/shared/v1alpha4/metadata.yaml"
90-
- name: v1.2.5 # latest published release in the v1beta1 series; this is used for v1beta1 --> main clusterctl upgrades test only.
91-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.2.5/bootstrap-components.yaml"
99+
- name: v1.2.7 # supported release in the v1beta1 series; this is used for v1beta1 --> main clusterctl upgrades test only.
100+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.2.7/bootstrap-components.yaml"
92101
type: "url"
93102
contract: v1beta1
94103
replacements:
95104
- old: --metrics-addr=127.0.0.1:8080
96105
new: --metrics-addr=:8080
97106
files:
98107
- sourcePath: "../data/shared/v1beta1/v1.2/metadata.yaml"
99-
- name: v1.3.99 # next; use manifest from source files
108+
- name: v1.3.0 # latest published release in the v1beta1 series; this is used for v1beta1 --> main clusterctl upgrades test only.
109+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.3.0/bootstrap-components.yaml"
110+
type: "url"
111+
contract: v1beta1
112+
replacements:
113+
- old: --metrics-addr=127.0.0.1:8080
114+
new: --metrics-addr=:8080
115+
files:
116+
- sourcePath: "../data/shared/v1beta1/v1.3/metadata.yaml"
117+
- name: v1.4.99 # next; use manifest from source files
100118
value: ../../../bootstrap/kubeadm/config/default
101119
replacements:
102120
- old: --metrics-bind-addr=localhost:8080
@@ -125,16 +143,25 @@ providers:
125143
new: --metrics-addr=:8080
126144
files:
127145
- sourcePath: "../data/shared/v1alpha4/metadata.yaml"
128-
- name: v1.2.5 # latest published release in the v1beta1 series; this is used for v1beta1 --> main clusterctl upgrades test only.
129-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.2.5/control-plane-components.yaml"
146+
- name: v1.2.7 # supported release in the v1beta1 series; this is used for v1beta1 --> main clusterctl upgrades test only.
147+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.2.7/control-plane-components.yaml"
130148
type: "url"
131149
contract: v1beta1
132150
replacements:
133151
- old: --metrics-addr=127.0.0.1:8080
134152
new: --metrics-addr=:8080
135153
files:
136154
- sourcePath: "../data/shared/v1beta1/v1.2/metadata.yaml"
137-
- name: v1.3.99 # next; use manifest from source files
155+
- name: v1.3.0 # latest published release in the v1beta1 series; this is used for v1beta1 --> main clusterctl upgrades test only.
156+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.3.0/control-plane-components.yaml"
157+
type: "url"
158+
contract: v1beta1
159+
replacements:
160+
- old: --metrics-addr=127.0.0.1:8080
161+
new: --metrics-addr=:8080
162+
files:
163+
- sourcePath: "../data/shared/v1beta1/v1.3/metadata.yaml"
164+
- name: v1.4.99 # next; use manifest from source files
138165
value: ../../../controlplane/kubeadm/config/default
139166
replacements:
140167
- old: --metrics-bind-addr=localhost:8080
@@ -165,8 +192,8 @@ providers:
165192
files:
166193
- sourcePath: "../data/shared/v1alpha4/metadata.yaml"
167194
- sourcePath: "../data/infrastructure-docker/v1alpha4/cluster-template.yaml"
168-
- name: v1.2.5 # latest published release in the v1beta1 series; this is used for v1beta1 --> main clusterctl upgrades test only.
169-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.2.5/infrastructure-components-development.yaml"
195+
- name: v1.2.7 # supported release in the v1beta1 series; this is used for v1beta1 --> main clusterctl upgrades test only.
196+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.2.7/infrastructure-components-development.yaml"
170197
type: "url"
171198
contract: v1beta1
172199
replacements:
@@ -177,7 +204,19 @@ providers:
177204
- sourcePath: "../data/infrastructure-docker/v1beta1/v1.2/cluster-template.yaml"
178205
- sourcePath: "../data/infrastructure-docker/v1beta1/v1.2/cluster-template-topology.yaml"
179206
- sourcePath: "../data/infrastructure-docker/v1beta1/v1.2/clusterclass-quick-start.yaml"
180-
- name: v1.3.99 # next; use manifest from source files
207+
- name: v1.3.0 # latest published release in the v1beta1 series; this is used for v1beta1 --> main clusterctl upgrades test only.
208+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.3.0/infrastructure-components-development.yaml"
209+
type: "url"
210+
contract: v1beta1
211+
replacements:
212+
- old: --metrics-addr=127.0.0.1:8080
213+
new: --metrics-addr=:8080
214+
files:
215+
- sourcePath: "../data/shared/v1beta1/v1.3/metadata.yaml"
216+
- sourcePath: "../data/infrastructure-docker/v1beta1/v1.3/cluster-template.yaml"
217+
- sourcePath: "../data/infrastructure-docker/v1beta1/v1.3/cluster-template-topology.yaml"
218+
- sourcePath: "../data/infrastructure-docker/v1beta1/v1.3/clusterclass-quick-start.yaml"
219+
- name: v1.4.99 # next; use manifest from source files
181220
value: ../../../test/infrastructure/docker/config/default
182221
replacements:
183222
- old: --metrics-bind-addr=localhost:8080
@@ -205,7 +244,7 @@ providers:
205244
- name: test-extension
206245
type: RuntimeExtensionProvider
207246
versions:
208-
- name: v1.3.99 # next; use manifest from source files
247+
- name: v1.4.99 # next; use manifest from source files
209248
value: ../../../test/extension/config/default
210249
files:
211250
- sourcePath: "../data/shared/v1beta1/main/metadata.yaml"
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
---
2+
# DockerCluster object referenced by the Cluster object
3+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
4+
kind: DockerCluster
5+
metadata:
6+
name: '${CLUSTER_NAME}'
7+
spec:
8+
failureDomains:
9+
fd1:
10+
controlPlane: true
11+
fd2:
12+
controlPlane: true
13+
fd3:
14+
controlPlane: true
15+
fd4:
16+
controlPlane: false
17+
fd5:
18+
controlPlane: false
19+
fd6:
20+
controlPlane: false
21+
fd7:
22+
controlPlane: false
23+
fd8:
24+
controlPlane: false
25+
---
26+
# Cluster object with
27+
# - Reference to the KubeadmControlPlane object
28+
# - the label cni=${CLUSTER_NAME}-crs-0, so the cluster can be selected by the ClusterResourceSet.
29+
apiVersion: cluster.x-k8s.io/v1beta1
30+
kind: Cluster
31+
metadata:
32+
name: '${CLUSTER_NAME}'
33+
labels:
34+
cni: "${CLUSTER_NAME}-crs-0"
35+
spec:
36+
clusterNetwork:
37+
services:
38+
cidrBlocks: ['${DOCKER_SERVICE_CIDRS}']
39+
pods:
40+
cidrBlocks: ['${DOCKER_POD_CIDRS}']
41+
serviceDomain: '${DOCKER_SERVICE_DOMAIN}'
42+
infrastructureRef:
43+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
44+
kind: DockerCluster
45+
name: '${CLUSTER_NAME}'
46+
controlPlaneRef:
47+
kind: KubeadmControlPlane
48+
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
49+
name: "${CLUSTER_NAME}-control-plane"
50+
---
51+
# DockerMachineTemplate object referenced by the KubeadmControlPlane object
52+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
53+
kind: DockerMachineTemplate
54+
metadata:
55+
name: "${CLUSTER_NAME}-control-plane"
56+
spec:
57+
template:
58+
spec:
59+
extraMounts:
60+
- containerPath: "/var/run/docker.sock"
61+
hostPath: "/var/run/docker.sock"
62+
---
63+
# KubeadmControlPlane referenced by the Cluster object with
64+
# - the label kcp-adoption.step2, because it should be created in the second step of the kcp-adoption test.
65+
kind: KubeadmControlPlane
66+
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
67+
metadata:
68+
name: "${CLUSTER_NAME}-control-plane"
69+
labels:
70+
kcp-adoption.step2: ""
71+
spec:
72+
replicas: ${CONTROL_PLANE_MACHINE_COUNT}
73+
machineTemplate:
74+
infrastructureRef:
75+
kind: DockerMachineTemplate
76+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
77+
name: "${CLUSTER_NAME}-control-plane"
78+
kubeadmConfigSpec:
79+
clusterConfiguration:
80+
controllerManager:
81+
extraArgs: {enable-hostpath-provisioner: 'true'}
82+
apiServer:
83+
# host.docker.internal is required by kubetest when running on MacOS because of the way ports are proxied.
84+
certSANs: [localhost, 127.0.0.1, 0.0.0.0, host.docker.internal]
85+
initConfiguration:
86+
nodeRegistration:
87+
criSocket: unix:///var/run/containerd/containerd.sock
88+
kubeletExtraArgs:
89+
eviction-hard: 'nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0%'
90+
joinConfiguration:
91+
nodeRegistration:
92+
criSocket: unix:///var/run/containerd/containerd.sock
93+
kubeletExtraArgs:
94+
eviction-hard: 'nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0%'
95+
version: "${KUBERNETES_VERSION}"
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
apiVersion: cluster.x-k8s.io/v1beta1
2+
kind: Cluster
3+
metadata:
4+
name: '${CLUSTER_NAME}'
5+
namespace: default
6+
labels:
7+
cni: "${CLUSTER_NAME}-crs-0"
8+
spec:
9+
clusterNetwork:
10+
services:
11+
cidrBlocks: ['${DOCKER_SERVICE_CIDRS}']
12+
pods:
13+
cidrBlocks: ['${DOCKER_POD_CIDRS}']
14+
serviceDomain: '${DOCKER_SERVICE_DOMAIN}'
15+
topology:
16+
class: "quick-start"
17+
version: "${KUBERNETES_VERSION}"
18+
controlPlane:
19+
metadata: {}
20+
nodeDeletionTimeout: "30s"
21+
replicas: ${CONTROL_PLANE_MACHINE_COUNT}
22+
workers:
23+
machineDeployments:
24+
- class: "default-worker"
25+
name: "md-0"
26+
nodeDeletionTimeout: "30s"
27+
replicas: ${WORKER_MACHINE_COUNT}
28+
failureDomain: fd4
29+
variables:
30+
# We set an empty value to use the default tag kubeadm init is using.
31+
- name: etcdImageTag
32+
value: ""
33+
# We set an empty value to use the default tag kubeadm init is using.
34+
- name: coreDNSImageTag
35+
value: ""

0 commit comments

Comments
 (0)