Skip to content
This repository was archived by the owner on Oct 10, 2023. It is now read-only.

Commit 2f778ba

Browse files
committed
Windows change for multiple-azs
1 parent aef7d20 commit 2f778ba

File tree

7 files changed

+306
-233
lines changed

7 files changed

+306
-233
lines changed

pkg/v1/providers/infrastructure-vsphere/v1.0.1/ytt/base-template.yaml

Lines changed: 170 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,55 @@ spec:
6565
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
6666
kind: VSphereMachineTemplate
6767
metadata:
68-
name: '${ CLUSTER_NAME }-worker'
68+
name: '${ CLUSTER_NAME }-md-0'
69+
namespace: '${ NAMESPACE }'
70+
spec:
71+
template:
72+
spec:
73+
cloneMode: '${ VSPHERE_CLONE_MODE }'
74+
datacenter: '${ VSPHERE_DATACENTER }'
75+
datastore: '${ VSPHERE_DATASTORE }'
76+
storagePolicyName: '${ VSPHERE_STORAGE_POLICY_ID }'
77+
diskGiB: ${VSPHERE_WORKER_DISK_GIB}
78+
folder: '${ VSPHERE_FOLDER }'
79+
memoryMiB: ${VSPHERE_WORKER_MEM_MIB}
80+
network:
81+
devices:
82+
- dhcp4: true
83+
networkName: '${ VSPHERE_NETWORK }'
84+
numCPUs: ${ VSPHERE_WORKER_NUM_CPUS }
85+
resourcePool: '${ VSPHERE_RESOURCE_POOL }'
86+
server: '${ VSPHERE_SERVER }'
87+
template: '${ VSPHERE_TEMPLATE }'
88+
---
89+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
90+
kind: VSphereMachineTemplate
91+
metadata:
92+
name: '${ CLUSTER_NAME }-md-1'
93+
namespace: '${ NAMESPACE }'
94+
spec:
95+
template:
96+
spec:
97+
cloneMode: '${ VSPHERE_CLONE_MODE }'
98+
datacenter: '${ VSPHERE_DATACENTER }'
99+
datastore: '${ VSPHERE_DATASTORE }'
100+
storagePolicyName: '${ VSPHERE_STORAGE_POLICY_ID }'
101+
diskGiB: ${VSPHERE_WORKER_DISK_GIB}
102+
folder: '${ VSPHERE_FOLDER }'
103+
memoryMiB: ${VSPHERE_WORKER_MEM_MIB}
104+
network:
105+
devices:
106+
- dhcp4: true
107+
networkName: '${ VSPHERE_NETWORK }'
108+
numCPUs: ${ VSPHERE_WORKER_NUM_CPUS }
109+
resourcePool: '${ VSPHERE_RESOURCE_POOL }'
110+
server: '${ VSPHERE_SERVER }'
111+
template: '${ VSPHERE_TEMPLATE }'
112+
---
113+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
114+
kind: VSphereMachineTemplate
115+
metadata:
116+
name: '${ CLUSTER_NAME }-md-2'
69117
namespace: '${ NAMESPACE }'
70118
spec:
71119
template:
@@ -228,6 +276,64 @@ spec:
228276
- '${ VSPHERE_SSH_AUTHORIZED_KEY }'
229277
sudo: ALL=(ALL) NOPASSWD:ALL
230278
---
279+
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
280+
kind: KubeadmConfigTemplate
281+
metadata:
282+
name: '${ CLUSTER_NAME }-md-1'
283+
namespace: '${ NAMESPACE }'
284+
spec:
285+
template:
286+
spec:
287+
useExperimentalRetryJoin: true
288+
joinConfiguration:
289+
nodeRegistration:
290+
criSocket: /var/run/containerd/containerd.sock
291+
kubeletExtraArgs:
292+
cloud-provider: external
293+
tls-cipher-suites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
294+
name: '{{ ds.meta_data.hostname }}'
295+
preKubeadmCommands:
296+
- hostname "{{ ds.meta_data.hostname }}"
297+
- echo "::1 ipv6-localhost ipv6-loopback" >/etc/hosts
298+
- echo "127.0.0.1 localhost" >>/etc/hosts
299+
- echo "127.0.0.1 {{ ds.meta_data.hostname }}" >>/etc/hosts
300+
- echo "{{ ds.meta_data.hostname }}" >/etc/hostname
301+
files: []
302+
users:
303+
- name: capv
304+
sshAuthorizedKeys:
305+
- '${ VSPHERE_SSH_AUTHORIZED_KEY }'
306+
sudo: ALL=(ALL) NOPASSWD:ALL
307+
---
308+
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
309+
kind: KubeadmConfigTemplate
310+
metadata:
311+
name: '${ CLUSTER_NAME }-md-2'
312+
namespace: '${ NAMESPACE }'
313+
spec:
314+
template:
315+
spec:
316+
useExperimentalRetryJoin: true
317+
joinConfiguration:
318+
nodeRegistration:
319+
criSocket: /var/run/containerd/containerd.sock
320+
kubeletExtraArgs:
321+
cloud-provider: external
322+
tls-cipher-suites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
323+
name: '{{ ds.meta_data.hostname }}'
324+
preKubeadmCommands:
325+
- hostname "{{ ds.meta_data.hostname }}"
326+
- echo "::1 ipv6-localhost ipv6-loopback" >/etc/hosts
327+
- echo "127.0.0.1 localhost" >>/etc/hosts
328+
- echo "127.0.0.1 {{ ds.meta_data.hostname }}" >>/etc/hosts
329+
- echo "{{ ds.meta_data.hostname }}" >/etc/hostname
330+
files: []
331+
users:
332+
- name: capv
333+
sshAuthorizedKeys:
334+
- '${ VSPHERE_SSH_AUTHORIZED_KEY }'
335+
sudo: ALL=(ALL) NOPASSWD:ALL
336+
---
231337
apiVersion: cluster.x-k8s.io/v1beta1
232338
kind: MachineDeployment
233339
metadata:
@@ -256,7 +362,69 @@ spec:
256362
infrastructureRef:
257363
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
258364
kind: VSphereMachineTemplate
259-
name: '${ CLUSTER_NAME }-worker'
365+
name: '${ CLUSTER_NAME }-md-0'
366+
version: '${ KUBERNETES_VERSION }'
367+
---
368+
apiVersion: cluster.x-k8s.io/v1beta1
369+
kind: MachineDeployment
370+
metadata:
371+
labels:
372+
cluster.x-k8s.io/cluster-name: '${ CLUSTER_NAME }'
373+
name: '${ CLUSTER_NAME }-md-1'
374+
namespace: '${ NAMESPACE }'
375+
spec:
376+
clusterName: '${ CLUSTER_NAME }'
377+
replicas: ${ WORKER_MACHINE_COUNT }
378+
selector:
379+
matchLabels:
380+
cluster.x-k8s.io/cluster-name: '${ CLUSTER_NAME }'
381+
template:
382+
metadata:
383+
labels:
384+
cluster.x-k8s.io/cluster-name: '${ CLUSTER_NAME }'
385+
node-pool: "${CLUSTER_NAME}-worker-pool"
386+
spec:
387+
bootstrap:
388+
configRef:
389+
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
390+
kind: KubeadmConfigTemplate
391+
name: '${ CLUSTER_NAME }-md-1'
392+
clusterName: '${ CLUSTER_NAME }'
393+
infrastructureRef:
394+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
395+
kind: VSphereMachineTemplate
396+
name: '${ CLUSTER_NAME }-md-1'
397+
version: '${ KUBERNETES_VERSION }'
398+
---
399+
apiVersion: cluster.x-k8s.io/v1beta1
400+
kind: MachineDeployment
401+
metadata:
402+
labels:
403+
cluster.x-k8s.io/cluster-name: '${ CLUSTER_NAME }'
404+
name: '${ CLUSTER_NAME }-md-2'
405+
namespace: '${ NAMESPACE }'
406+
spec:
407+
clusterName: '${ CLUSTER_NAME }'
408+
replicas: ${ WORKER_MACHINE_COUNT }
409+
selector:
410+
matchLabels:
411+
cluster.x-k8s.io/cluster-name: '${ CLUSTER_NAME }'
412+
template:
413+
metadata:
414+
labels:
415+
cluster.x-k8s.io/cluster-name: '${ CLUSTER_NAME }'
416+
node-pool: "${CLUSTER_NAME}-worker-pool"
417+
spec:
418+
bootstrap:
419+
configRef:
420+
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
421+
kind: KubeadmConfigTemplate
422+
name: '${ CLUSTER_NAME }-md-2'
423+
clusterName: '${ CLUSTER_NAME }'
424+
infrastructureRef:
425+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
426+
kind: VSphereMachineTemplate
427+
name: '${ CLUSTER_NAME }-md-2'
260428
version: '${ KUBERNETES_VERSION }'
261429
---
262430
apiVersion: v1

pkg/v1/providers/infrastructure-vsphere/v1.0.1/ytt/overlay-windows.yaml

Lines changed: 81 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@
1212

1313
#@ if data.values.IS_WINDOWS_WORKLOAD_CLUSTER:
1414

15+
#@ if data.values.CLUSTER_PLAN == "prod":
16+
#@ mdNumber = 3
17+
#@ else:
18+
#@ mdNumber = 1
19+
#@ end
20+
1521
#@ def kube_vip_pod():
1622
---
1723
apiVersion: v1
@@ -146,54 +152,71 @@ spec:
146152
memoryMiB: #@ data.values.VSPHERE_CONTROL_PLANE_MEM_MIB
147153
network:
148154
devices:
149-
#@ if data.values.TKG_IP_FAMILY == "ipv6":
150155
#@overlay/match by=overlay.index(0)
151156
#@overlay/replace
152-
- dhcp6: true
153-
networkName: #@ data.values.VSPHERE_NETWORK
154-
#@ else:
155-
#@overlay/match by=overlay.index(0)
156-
#@overlay/replace
157-
- dhcp4: true
158-
networkName: #@ data.values.VSPHERE_NETWORK
159-
#@ end
157+
- networkName: #@ data.values.VSPHERE_NETWORK
158+
#@ if data.values.CONTROL_PLANE_NODE_NAMESERVERS:
159+
nameservers: #@ data.values.CONTROL_PLANE_NODE_NAMESERVERS.replace(" ", "").split(",")
160+
#@ end
161+
#@ if data.values.TKG_IP_FAMILY == "ipv6":
162+
dhcp6: true
163+
#@ elif data.values.TKG_IP_FAMILY in ["ipv4,ipv6", "ipv6,ipv4"]:
164+
dhcp4: true
165+
dhcp6: true
166+
#@ else:
167+
dhcp4: true
168+
#@ end
160169
numCPUs: #@ data.values.VSPHERE_CONTROL_PLANE_NUM_CPUS
161170
resourcePool: #@ data.values.VSPHERE_RESOURCE_POOL
162171
server: #@ data.values.VSPHERE_SERVER
163172
template: #@ data.values.VSPHERE_TEMPLATE
164-
#@overlay/match by=overlay.subset({"kind": "VSphereMachineTemplate", "metadata":{"name": "${ CLUSTER_NAME }-worker"}})
173+
174+
#@ for mdIndex in range(0, mdNumber):
175+
#@overlay/match by=overlay.subset({"kind":"VSphereMachineTemplate", "metadata":{"name": "${ CLUSTER_NAME }-md-" + str(mdIndex)}})
165176
---
166177
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
167178
kind: VSphereMachineTemplate
168179
metadata:
169-
name: #@ "{}-windows-containerd".format(data.values.CLUSTER_NAME)
180+
name: #@ "{}-md-{}-windows-containerd".format(data.values.CLUSTER_NAME, mdIndex)
170181
spec:
171182
template:
172183
spec:
173184
cloneMode: #@ data.values.VSPHERE_CLONE_MODE
174185
datacenter: #@ data.values.VSPHERE_DATACENTER
175186
datastore: #@ data.values.VSPHERE_DATASTORE
176187
storagePolicyName: #@ data.values.VSPHERE_STORAGE_POLICY_ID
177-
diskGiB: 80
188+
diskGiB: #@ data.values.VSPHERE_WORKER_DISK_GIB
178189
folder: #@ data.values.VSPHERE_FOLDER
179190
memoryMiB: #@ data.values.VSPHERE_WORKER_MEM_MIB
180191
network:
181192
devices:
182-
#@ if data.values.TKG_IP_FAMILY == "ipv6":
183193
#@overlay/match by=overlay.index(0)
184194
#@overlay/replace
185-
- dhcp6: true
186-
networkName: #@ data.values.VSPHERE_NETWORK
187-
#@ else:
188-
#@overlay/match by=overlay.index(0)
189-
#@overlay/replace
190-
- dhcp4: true
191-
networkName: #@ data.values.VSPHERE_NETWORK
192-
#@ end
195+
- networkName: #@ data.values.VSPHERE_NETWORK
196+
#@ if data.values.WORKER_NODE_NAMESERVERS:
197+
nameservers: #@ data.values.WORKER_NODE_NAMESERVERS.replace(" ", "").split(",")
198+
#@ end
199+
#@ if data.values.TKG_IP_FAMILY == "ipv6":
200+
dhcp6: true
201+
#@ elif data.values.TKG_IP_FAMILY in ["ipv4,ipv6", "ipv6,ipv4"]:
202+
dhcp4: true
203+
dhcp6: true
204+
#@ else:
205+
dhcp4: true
206+
#@ end
193207
numCPUs: #@ data.values.VSPHERE_WORKER_NUM_CPUS
194208
resourcePool: #@ data.values.VSPHERE_RESOURCE_POOL
195209
server: #@ data.values.VSPHERE_SERVER
196210
template: #@ data.values.VSPHERE_WINDOWS_TEMPLATE
211+
#@ end
212+
213+
#@ for mdIndex in range(mdNumber, 3):
214+
#@overlay/match by=overlay.subset({"kind":"VSphereMachineTemplate", "metadata":{"name": "${ CLUSTER_NAME }-md-" + str(mdIndex)}})
215+
---
216+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
217+
#@overlay/remove
218+
kind: VSphereMachineTemplate
219+
#@ end
197220

198221
#@overlay/match by=overlay.subset({"kind":"KubeadmControlPlane"})
199222
---
@@ -254,12 +277,13 @@ spec:
254277
replicas: #@ data.values.CONTROL_PLANE_MACHINE_COUNT
255278
version: #@ data.values.KUBERNETES_VERSION
256279

257-
#@overlay/match by=overlay.subset({"kind":"KubeadmConfigTemplate", "metadata":{"name": "${ CLUSTER_NAME }-md-0"}})
280+
#@ for mdIndex in range(0, mdNumber):
281+
#@overlay/match by=overlay.subset({"kind":"KubeadmConfigTemplate", "metadata":{"name": "${ CLUSTER_NAME }-md-" + str(mdIndex)}})
258282
---
259283
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
260284
kind: KubeadmConfigTemplate
261285
metadata:
262-
name: #@ "{}-md-0-windows-containerd".format(data.values.CLUSTER_NAME)
286+
name: #@ "{}-md-{}-windows-containerd".format(data.values.CLUSTER_NAME, mdIndex)
263287
#@overlay/replace
264288
spec:
265289
template:
@@ -382,15 +406,25 @@ spec:
382406
sshAuthorizedKeys:
383407
- #@ data.values.VSPHERE_SSH_AUTHORIZED_KEY
384408
sudo: ALL=(ALL) NOPASSWD:ALL
409+
#@ end
385410

386-
#@overlay/match by=overlay.subset({"kind":"MachineDeployment", "metadata":{"name": "${ CLUSTER_NAME }-md-0"}})
411+
#@ for mdIndex in range(mdNumber, 3):
412+
#@overlay/match by=overlay.subset({"kind":"KubeadmConfigTemplate", "metadata":{"name": "${ CLUSTER_NAME }-md-" + str(mdIndex)}})
413+
---
414+
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
415+
#@overlay/remove
416+
kind: KubeadmConfigTemplate
417+
#@ end
418+
419+
#@ for mdIndex in range(0, mdNumber):
420+
#@overlay/match by=overlay.subset({"kind":"MachineDeployment", "metadata":{"name": "${ CLUSTER_NAME }-md-" + str(mdIndex)}})
387421
---
388422
apiVersion: cluster.x-k8s.io/v1beta1
389423
kind: MachineDeployment
390424
metadata:
391425
labels:
392426
cluster.x-k8s.io/cluster-name: #@ data.values.CLUSTER_NAME
393-
name: #@ "{}-md-0-windows-containerd".format(data.values.CLUSTER_NAME)
427+
name: #@ "{}-md-{}-windows-containerd".format(data.values.CLUSTER_NAME, mdIndex)
394428
spec:
395429
clusterName: #@ data.values.CLUSTER_NAME
396430
replicas: #@ data.values.WORKER_MACHINE_COUNT
@@ -405,11 +439,31 @@ spec:
405439
spec:
406440
bootstrap:
407441
configRef:
408-
name: #@ "{}-md-0-windows-containerd".format(data.values.CLUSTER_NAME)
442+
name: #@ "{}-md-{}-windows-containerd".format(data.values.CLUSTER_NAME, mdIndex)
409443
clusterName: #@ data.values.CLUSTER_NAME
410444
infrastructureRef:
411-
name: #@ "{}-windows-containerd".format(data.values.CLUSTER_NAME)
445+
name: #@ "{}-md-{}-windows-containerd".format(data.values.CLUSTER_NAME, mdIndex)
412446
version: #@ data.values.KUBERNETES_VERSION
447+
#@overlay/match missing_ok=True
448+
#@ if mdIndex == 0 and data.values.VSPHERE_AZ_0:
449+
failureDomain: #@ data.values.VSPHERE_AZ_0
450+
#@ end
451+
#@ if mdIndex == 1 and data.values.VSPHERE_AZ_1:
452+
failureDomain: #@ data.values.VSPHERE_AZ_1
453+
#@ end
454+
#@ if mdIndex == 2 and data.values.VSPHERE_AZ_2:
455+
failureDomain: #@ data.values.VSPHERE_AZ_2
456+
#@ end
457+
#@ end
458+
459+
#@ for mdIndex in range(mdNumber, 3):
460+
#@overlay/match by=overlay.subset({"kind":"MachineDeployment", "metadata":{"name": "${ CLUSTER_NAME }-md-" + str(mdIndex)}})
461+
---
462+
apiVersion: cluster.x-k8s.io/v1beta1
463+
#@overlay/remove
464+
kind: MachineDeployment
465+
#@ end
466+
413467
#@overlay/match by=overlay.subset({"kind": "Secret", "metadata":{"name": "${ CLUSTER_NAME }"}})
414468
---
415469
apiVersion: v1

0 commit comments

Comments
 (0)