1- # ! Please add any overlays specific to vSphere provider under this file.
1+ # ! Please add any overlays specific to vSphere provider under this file.
2+ # @ load("@ytt:overlay", "overlay")
3+ # @ load("@ytt:data", "data")
4+
5+
6+ # @ load("lib/helpers.star", "get_bom_data_for_tkr_name", "get_default_tkg_bom_data", "kubeadm_image_repo", "get_image_repo_for_component", "get_vsphere_thumbprint")
7+
8+ # @ load("lib/validate.star", "validate_configuration")
9+ # @ load("@ytt:yaml", "yaml")
10+ # @ validate_configuration("vsphere")
11+
12+ # @ bomDataForK8sVersion = get_bom_data_for_tkr_name()
13+
14+ # @ if data.values.CLUSTER_PLAN == "prod":
15+ # @overlay/match by=overlay.subset({"kind":"VSphereCluster"})
16+ ---
17+ apiVersion : infrastructure.cluster.x-k8s.io/v1beta1
18+ kind : VSphereCluster
19+ metadata :
20+ name : # @ data.values.CLUSTER_NAME
21+ spec :
22+ # @ if not data.values.AVI_CONTROL_PLANE_HA_PROVIDER:
23+ controlPlaneEndpoint :
24+ host : # @ data.values.VSPHERE_CONTROL_PLANE_ENDPOINT
25+ # @ else:
26+ # @overlay/remove
27+ controlPlaneEndpoint :
28+ # @ end
29+ thumbprint : # @ get_vsphere_thumbprint()
30+ server : # @ data.values.VSPHERE_SERVER
31+ identityRef :
32+ kind : Secret
33+ name : # @ data.values.CLUSTER_NAME
34+ ---
35+ apiVersion : infrastructure.cluster.x-k8s.io/v1beta1
36+ kind : VSphereMachineTemplate
37+ metadata :
38+ name : # @ "{}-md-1".format(data.values.CLUSTER_NAME)
39+ spec :
40+ template :
41+ spec :
42+ cloneMode : # @ data.values.VSPHERE_CLONE_MODE
43+ datacenter : # @ data.values.VSPHERE_DATACENTER
44+ datastore : # @ data.values.VSPHERE_DATASTORE
45+ storagePolicyName : # @ data.values.VSPHERE_STORAGE_POLICY_ID
46+ diskGiB : # @ data.values.VSPHERE_WORKER_DISK_GIB
47+ folder : # @ data.values.VSPHERE_FOLDER
48+ memoryMiB : # @ data.values.VSPHERE_WORKER_MEM_MIB
49+ network :
50+ devices :
51+ # @overlay/match by=overlay.index(0)
52+ # @overlay/replace
53+ - networkName : # @ data.values.VSPHERE_NETWORK
54+ # @ if data.values.WORKER_NODE_NAMESERVERS:
55+ nameservers : # @ data.values.WORKER_NODE_NAMESERVERS.replace(" ", "").split(",")
56+ # @ end
57+ # @ if data.values.TKG_IP_FAMILY == "ipv6":
58+ dhcp6 : true
59+ # @ elif data.values.TKG_IP_FAMILY in ["ipv4,ipv6", "ipv6,ipv4"]:
60+ dhcp4 : true
61+ dhcp6 : true
62+ # @ else:
63+ dhcp4 : true
64+ # @ end
65+ numCPUs : # @ data.values.VSPHERE_WORKER_NUM_CPUS
66+ resourcePool : # @ data.values.VSPHERE_RESOURCE_POOL
67+ server : # @ data.values.VSPHERE_SERVER
68+ template : # @ data.values.VSPHERE_TEMPLATE
69+ ---
70+ apiVersion : infrastructure.cluster.x-k8s.io/v1beta1
71+ kind : VSphereMachineTemplate
72+ metadata :
73+ name : # @ "{}-md-2".format(data.values.CLUSTER_NAME)
74+ spec :
75+ template :
76+ spec :
77+ cloneMode : # @ data.values.VSPHERE_CLONE_MODE
78+ datacenter : # @ data.values.VSPHERE_DATACENTER
79+ datastore : # @ data.values.VSPHERE_DATASTORE
80+ storagePolicyName : # @ data.values.VSPHERE_STORAGE_POLICY_ID
81+ diskGiB : # @ data.values.VSPHERE_WORKER_DISK_GIB
82+ folder : # @ data.values.VSPHERE_FOLDER
83+ memoryMiB : # @ data.values.VSPHERE_WORKER_MEM_MIB
84+ network :
85+ devices :
86+ # @overlay/match by=overlay.index(0)
87+ # @overlay/replace
88+ - networkName : # @ data.values.VSPHERE_NETWORK
89+ # @ if data.values.WORKER_NODE_NAMESERVERS:
90+ nameservers : # @ data.values.WORKER_NODE_NAMESERVERS.replace(" ", "").split(",")
91+ # @ end
92+ # @ if data.values.TKG_IP_FAMILY == "ipv6":
93+ dhcp6 : true
94+ # @ elif data.values.TKG_IP_FAMILY in ["ipv4,ipv6", "ipv6,ipv4"]:
95+ dhcp4 : true
96+ dhcp6 : true
97+ # @ else:
98+ dhcp4 : true
99+ # @ end
100+ numCPUs : # @ data.values.VSPHERE_WORKER_NUM_CPUS
101+ resourcePool : # @ data.values.VSPHERE_RESOURCE_POOL
102+ server : # @ data.values.VSPHERE_SERVER
103+ template : # @ data.values.VSPHERE_TEMPLATE
104+ ---
105+ apiVersion : cluster.x-k8s.io/v1beta1
106+ kind : MachineDeployment
107+ metadata :
108+ labels :
109+ cluster.x-k8s.io/cluster-name : # @ data.values.CLUSTER_NAME
110+ name : # @ "{}-md-1".format(data.values.CLUSTER_NAME)
111+ spec :
112+ clusterName : # @ data.values.CLUSTER_NAME
113+ replicas : # @ data.values.WORKER_MACHINE_COUNT_1
114+ selector :
115+ matchLabels :
116+ cluster.x-k8s.io/cluster-name : # @ data.values.CLUSTER_NAME
117+ template :
118+ metadata :
119+ labels :
120+ cluster.x-k8s.io/cluster-name : # @ data.values.CLUSTER_NAME
121+ node-pool : # @ "{}-worker-pool".format(data.values.CLUSTER_NAME)
122+ spec :
123+ bootstrap :
124+ configRef :
125+ apiVersion : bootstrap.cluster.x-k8s.io/v1beta1
126+ kind : KubeadmConfigTemplate
127+ name : # @ "{}-md-1".format(data.values.CLUSTER_NAME)
128+ clusterName : # @ data.values.CLUSTER_NAME
129+ infrastructureRef :
130+ apiVersion : infrastructure.cluster.x-k8s.io/v1beta1
131+ kind : VSphereMachineTemplate
132+ name : # @ "{}-md-1".format(data.values.CLUSTER_NAME)
133+ version : # @ data.values.KUBERNETES_VERSION
134+ # @ if data.values.VSPHERE_AZ_1:
135+ failureDomain : # @ data.values.VSPHERE_AZ_1
136+ # @ end
137+ ---
138+ apiVersion : cluster.x-k8s.io/v1beta1
139+ kind : MachineDeployment
140+ metadata :
141+ labels :
142+ cluster.x-k8s.io/cluster-name : # @ data.values.CLUSTER_NAME
143+ name : # @ "{}-md-2".format(data.values.CLUSTER_NAME)
144+ spec :
145+ clusterName : # @ data.values.CLUSTER_NAME
146+ replicas : # @ data.values.WORKER_MACHINE_COUNT_2
147+ selector :
148+ matchLabels :
149+ cluster.x-k8s.io/cluster-name : # @ data.values.CLUSTER_NAME
150+ template :
151+ metadata :
152+ labels :
153+ cluster.x-k8s.io/cluster-name : # @ data.values.CLUSTER_NAME
154+ node-pool : # @ "{}-worker-pool".format(data.values.CLUSTER_NAME)
155+ spec :
156+ bootstrap :
157+ configRef :
158+ apiVersion : bootstrap.cluster.x-k8s.io/v1beta1
159+ kind : KubeadmConfigTemplate
160+ name : # @ "{}-md-2".format(data.values.CLUSTER_NAME)
161+ clusterName : # @ data.values.CLUSTER_NAME
162+ infrastructureRef :
163+ apiVersion : infrastructure.cluster.x-k8s.io/v1beta1
164+ kind : VSphereMachineTemplate
165+ name : # @ "{}-md-2".format(data.values.CLUSTER_NAME)
166+ version : # @ data.values.KUBERNETES_VERSION
167+ # @ if data.values.VSPHERE_AZ_2:
168+ failureDomain : # @ data.values.VSPHERE_AZ_2
169+ # @ end
170+ ---
171+ apiVersion : bootstrap.cluster.x-k8s.io/v1beta1
172+ kind : KubeadmConfigTemplate
173+ metadata :
174+ name : # @ "{}-md-1".format(data.values.CLUSTER_NAME)
175+ namespace : ' ${ NAMESPACE }'
176+ spec :
177+ template :
178+ spec :
179+ useExperimentalRetryJoin : true
180+ joinConfiguration :
181+ nodeRegistration :
182+ criSocket : /var/run/containerd/containerd.sock
183+ kubeletExtraArgs :
184+ cloud-provider : external
185+ 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
186+ name : ' {{ ds.meta_data.hostname }}'
187+ preKubeadmCommands :
188+ - hostname "{{ ds.meta_data.hostname }}"
189+ - echo "::1 ipv6-localhost ipv6-loopback" >/etc/hosts
190+ - echo "127.0.0.1 localhost" >>/etc/hosts
191+ - echo "127.0.0.1 {{ ds.meta_data.hostname }}" >>/etc/hosts
192+ - echo "{{ ds.meta_data.hostname }}" >/etc/hostname
193+ files : []
194+ users :
195+ - name : capv
196+ sshAuthorizedKeys :
197+ - ' ${ VSPHERE_SSH_AUTHORIZED_KEY }'
198+ sudo : ALL=(ALL) NOPASSWD:ALL
199+ ---
200+ apiVersion : bootstrap.cluster.x-k8s.io/v1beta1
201+ kind : KubeadmConfigTemplate
202+ metadata :
203+ name : # @ "{}-md-2".format(data.values.CLUSTER_NAME)
204+ namespace : ' ${ NAMESPACE }'
205+ spec :
206+ template :
207+ spec :
208+ useExperimentalRetryJoin : true
209+ joinConfiguration :
210+ nodeRegistration :
211+ criSocket : /var/run/containerd/containerd.sock
212+ kubeletExtraArgs :
213+ cloud-provider : external
214+ 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
215+ name : ' {{ ds.meta_data.hostname }}'
216+ preKubeadmCommands :
217+ - hostname "{{ ds.meta_data.hostname }}"
218+ - echo "::1 ipv6-localhost ipv6-loopback" >/etc/hosts
219+ - echo "127.0.0.1 localhost" >>/etc/hosts
220+ - echo "127.0.0.1 {{ ds.meta_data.hostname }}" >>/etc/hosts
221+ - echo "{{ ds.meta_data.hostname }}" >/etc/hostname
222+ files : []
223+ users :
224+ - name : capv
225+ sshAuthorizedKeys :
226+ - ' ${ VSPHERE_SSH_AUTHORIZED_KEY }'
227+ sudo : ALL=(ALL) NOPASSWD:ALL
228+ # @ end
0 commit comments