Skip to content

Commit b343480

Browse files
committed
Add templates to generate vpc-clusterclass template
1 parent bfbfb08 commit b343480

File tree

5 files changed

+213
-47
lines changed

5 files changed

+213
-47
lines changed

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ generate-templates: $(KUSTOMIZE)
188188
$(KUSTOMIZE) build $(TEMPLATES_DIR)/cluster-template-powervs --load-restrictor LoadRestrictionsNone > $(TEMPLATES_DIR)/cluster-template-powervs.yaml
189189
$(KUSTOMIZE) build $(TEMPLATES_DIR)/cluster-template-powervs-cloud-provider --load-restrictor LoadRestrictionsNone > $(TEMPLATES_DIR)/cluster-template-powervs-cloud-provider.yaml
190190
$(KUSTOMIZE) build $(TEMPLATES_DIR)/cluster-template-powervs-clusterclass --load-restrictor LoadRestrictionsNone > $(TEMPLATES_DIR)/cluster-template-powervs-clusterclass.yaml
191+
$(KUSTOMIZE) build $(TEMPLATES_DIR)/cluster-template-vpc-clusterclass --load-restrictor LoadRestrictionsNone > $(TEMPLATES_DIR)/cluster-template-vpc-clusterclass.yaml
191192

192193
.PHONY: generate-e2e-templates
193194
generate-e2e-templates: $(KUSTOMIZE)

templates/cluster-template-vpc-clusterclass.yaml

Lines changed: 45 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ spec:
2222
version: ${KUBERNETES_VERSION}
2323
workers:
2424
machineDeployments:
25-
- class: default-worker
26-
name: md-0
27-
replicas: 2
25+
- class: default-worker
26+
name: md-0
27+
replicas: ${WORKER_MACHINE_COUNT}
2828
---
2929
apiVersion: cluster.x-k8s.io/v1beta1
3030
kind: ClusterClass
@@ -51,18 +51,18 @@ spec:
5151
namespace: ${NAMESPACE}
5252
workers:
5353
machineDeployments:
54-
- class: default-worker
55-
template:
56-
bootstrap:
57-
ref:
58-
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
59-
kind: KubeadmConfigTemplate
60-
name: ${IBMVPC_CLUSTER_CLASS_NAME}-md-0
61-
infrastructure:
62-
ref:
63-
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
64-
kind: IBMVPCMachineTemplate
65-
name: ${IBMVPC_CLUSTER_CLASS_NAME}-worker-machinetemplate
54+
- class: default-worker
55+
template:
56+
bootstrap:
57+
ref:
58+
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
59+
kind: KubeadmConfigTemplate
60+
name: ${IBMVPC_CLUSTER_CLASS_NAME}-md-0
61+
infrastructure:
62+
ref:
63+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
64+
kind: IBMVPCMachineTemplate
65+
name: ${IBMVPC_CLUSTER_CLASS_NAME}-worker-machinetemplate
6666
---
6767
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
6868
kind: IBMVPCClusterTemplate
@@ -88,41 +88,39 @@ spec:
8888
spec:
8989
kubeadmConfigSpec:
9090
clusterConfiguration:
91-
kubernetesVersion: ${KUBERNETES_VERSION}
9291
apiServer:
93-
certSANs: [localhost, 127.0.0.1]
92+
certSANs:
93+
- localhost
94+
- 127.0.0.1
9495
extraArgs:
9596
cloud-provider: external
9697
controllerManager:
97-
extraArgs:
98-
enable-hostpath-provisioner: 'true'
99-
cloud-provider: external
100-
apiServer:
101-
certSANs: [localhost, 127.0.0.1]
10298
extraArgs:
10399
cloud-provider: external
100+
enable-hostpath-provisioner: "true"
104101
dns: {}
105102
etcd: {}
103+
kubernetesVersion: ${KUBERNETES_VERSION}
106104
networking: {}
107105
scheduler: {}
108106
initConfiguration:
109107
nodeRegistration:
110108
criSocket: /var/run/containerd/containerd.sock
111-
kubeletExtraArgs:
109+
kubeletExtraArgs:
112110
cloud-provider: external
113-
eviction-hard: 'nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0%'
111+
eviction-hard: nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0%
114112
joinConfiguration:
115113
discovery: {}
116114
nodeRegistration:
117115
criSocket: /var/run/containerd/containerd.sock
118-
kubeletExtraArgs:
116+
kubeletExtraArgs:
119117
cloud-provider: external
120-
eviction-hard: 'nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0%'
118+
eviction-hard: nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0%
121119
---
122120
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
123121
kind: KubeadmConfigTemplate
124122
metadata:
125-
name: "${IBMVPC_CLUSTER_CLASS_NAME}-md-0"
123+
name: ${IBMVPC_CLUSTER_CLASS_NAME}-md-0
126124
spec:
127125
template:
128126
spec:
@@ -151,18 +149,18 @@ spec:
151149
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
152150
kind: IBMVPCMachineTemplate
153151
metadata:
154-
name: "${IBMVPC_CLUSTER_CLASS_NAME}-worker-machinetemplate"
152+
name: ${IBMVPC_CLUSTER_CLASS_NAME}-worker-machinetemplate
155153
spec:
156154
template:
157155
spec:
158-
image:
159-
name: "${IBMVPC_IMAGE_NAME}"
160-
zone: "${IBMVPC_ZONE}"
161-
profile: "${IBMVPC_PROFILE}"
162-
sshKeys:
163-
- name: "${IBMVPC_SSHKEY_NAME}"
164156
bootVolume:
165157
sizeGiB: ${IBMVPC_WORKER_BOOT_VOLUME_SIZEGIB:=20}
158+
image:
159+
name: ${IBMVPC_IMAGE_NAME}
160+
profile: ${IBMVPC_PROFILE}
161+
sshKeys:
162+
- name: ${IBMVPC_SSHKEY_NAME}
163+
zone: ${IBMVPC_ZONE}
166164
---
167165
apiVersion: addons.cluster.x-k8s.io/v1beta1
168166
kind: ClusterResourceSet
@@ -173,18 +171,15 @@ spec:
173171
matchLabels:
174172
ccm: external
175173
resources:
176-
- kind: Secret
177-
name: ibm-credential
178-
- kind: ConfigMap
179-
name: ibm-cfg
180-
- kind: ConfigMap
181-
name: cloud-controller-manager-addon
174+
- kind: Secret
175+
name: ibm-credential
176+
- kind: ConfigMap
177+
name: ibm-cfg
178+
- kind: ConfigMap
179+
name: cloud-controller-manager-addon
182180
strategy: ApplyOnce
183181
---
184182
apiVersion: v1
185-
kind: ConfigMap
186-
metadata:
187-
name: ibm-cfg
188183
data:
189184
ibm-cloud-conf.yaml: |-
190185
apiVersion: v1
@@ -208,12 +203,14 @@ data:
208203
g2VpcSubnetNames = "${CLUSTER_NAME}-subnet"
209204
g2VpcName = ${IBMVPC_NAME:=""}
210205
region = ${IBMVPC_REGION:=""}
206+
kind: ConfigMap
207+
metadata:
208+
name: ibm-cfg
211209
---
212210
apiVersion: v1
213211
kind: Secret
214212
metadata:
215213
name: ibm-credential
216-
type: addons.cluster.x-k8s.io/resource-set
217214
stringData:
218215
ibm-credential.yaml: |-
219216
apiVersion: v1
@@ -223,11 +220,9 @@ stringData:
223220
namespace: kube-system
224221
data:
225222
ibmcloud_api_key: ${BASE64_API_KEY}
223+
type: addons.cluster.x-k8s.io/resource-set
226224
---
227225
apiVersion: v1
228-
kind: ConfigMap
229-
metadata:
230-
name: cloud-controller-manager-addon
231226
data:
232227
ibm-ccm-external.yaml: |-
233228
apiVersion: v1
@@ -420,3 +415,6 @@ data:
420415
- name: ibm-secret
421416
secret:
422417
secretName: ibm-cloud-credential
418+
kind: ConfigMap
419+
metadata:
420+
name: cloud-controller-manager-addon
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
apiVersion: cluster.x-k8s.io/v1beta1
2+
kind: Cluster
3+
metadata:
4+
labels:
5+
ccm: external
6+
cluster.x-k8s.io/cluster-name: ${CLUSTER_NAME}
7+
name: ${CLUSTER_NAME}
8+
namespace: ${NAMESPACE}
9+
spec:
10+
clusterNetwork:
11+
pods:
12+
cidrBlocks:
13+
- ${POD_CIDR:="192.168.0.0/16"}
14+
serviceDomain: ${SERVICE_DOMAIN:="cluster.local"}
15+
services:
16+
cidrBlocks:
17+
- ${SERVICE_CIDR:="10.128.0.0/12"}
18+
topology:
19+
class: ${IBMVPC_CLUSTER_CLASS_NAME}
20+
controlPlane:
21+
replicas: ${CONTROL_PLANE_MACHINE_COUNT}
22+
version: ${KUBERNETES_VERSION}
23+
workers:
24+
machineDeployments:
25+
- class: default-worker
26+
name: md-0
27+
replicas: ${WORKER_MACHINE_COUNT}
28+
---
29+
apiVersion: cluster.x-k8s.io/v1beta1
30+
kind: ClusterClass
31+
metadata:
32+
name: ${IBMVPC_CLUSTER_CLASS_NAME:="vpc-cc"}
33+
spec:
34+
controlPlane:
35+
machineInfrastructure:
36+
ref:
37+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
38+
kind: IBMVPCMachineTemplate
39+
name: ${IBMVPC_CLUSTER_CLASS_NAME}-control-plane-machinetemplate
40+
namespace: ${NAMESPACE}
41+
ref:
42+
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
43+
kind: KubeadmControlPlaneTemplate
44+
name: ${IBMVPC_CLUSTER_CLASS_NAME}-control-plane
45+
namespace: ${NAMESPACE}
46+
infrastructure:
47+
ref:
48+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
49+
kind: IBMVPCClusterTemplate
50+
name: ${IBMVPC_CLUSTER_CLASS_NAME}-cluster-template
51+
namespace: ${NAMESPACE}
52+
workers:
53+
machineDeployments:
54+
- class: default-worker
55+
template:
56+
bootstrap:
57+
ref:
58+
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
59+
kind: KubeadmConfigTemplate
60+
name: ${IBMVPC_CLUSTER_CLASS_NAME}-md-0
61+
infrastructure:
62+
ref:
63+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
64+
kind: IBMVPCMachineTemplate
65+
name: ${IBMVPC_CLUSTER_CLASS_NAME}-worker-machinetemplate
66+
---
67+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
68+
kind: IBMVPCClusterTemplate
69+
metadata:
70+
name: ${IBMVPC_CLUSTER_CLASS_NAME}-cluster-template
71+
spec:
72+
template:
73+
spec:
74+
controlPlaneLoadBalancer:
75+
name: ${CLUSTER_NAME}-load-balancer
76+
region: ${IBMVPC_REGION}
77+
resourceGroup: ${IBMVPC_RESOURCEGROUP}
78+
vpc: ${IBMVPC_NAME}
79+
zone: ${IBMVPC_ZONE}
80+
---
81+
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
82+
kind: KubeadmControlPlaneTemplate
83+
metadata:
84+
name: ${IBMVPC_CLUSTER_CLASS_NAME}-control-plane
85+
namespace: ${NAMESPACE}
86+
spec:
87+
template:
88+
spec:
89+
kubeadmConfigSpec:
90+
clusterConfiguration:
91+
kubernetesVersion: ${KUBERNETES_VERSION}
92+
apiServer:
93+
certSANs: [localhost, 127.0.0.1]
94+
extraArgs:
95+
cloud-provider: external
96+
controllerManager:
97+
extraArgs:
98+
enable-hostpath-provisioner: 'true'
99+
cloud-provider: external
100+
dns: {}
101+
etcd: {}
102+
networking: {}
103+
scheduler: {}
104+
initConfiguration:
105+
nodeRegistration:
106+
criSocket: /var/run/containerd/containerd.sock
107+
kubeletExtraArgs:
108+
cloud-provider: external
109+
eviction-hard: 'nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0%'
110+
joinConfiguration:
111+
discovery: {}
112+
nodeRegistration:
113+
criSocket: /var/run/containerd/containerd.sock
114+
kubeletExtraArgs:
115+
cloud-provider: external
116+
eviction-hard: 'nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0%'
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
resources:
2+
- cluster-with-kcp.yaml
3+
- md.yaml
4+
- ../addons/crs.yaml
5+
6+
sortOptions:
7+
order: fifo
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
2+
kind: KubeadmConfigTemplate
3+
metadata:
4+
name: "${IBMVPC_CLUSTER_CLASS_NAME}-md-0"
5+
spec:
6+
template:
7+
spec:
8+
joinConfiguration:
9+
nodeRegistration:
10+
kubeletExtraArgs:
11+
cloud-provider: external
12+
eviction-hard: nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0%
13+
---
14+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
15+
kind: IBMVPCMachineTemplate
16+
metadata:
17+
name: ${IBMVPC_CLUSTER_CLASS_NAME}-control-plane-machinetemplate
18+
spec:
19+
template:
20+
spec:
21+
bootVolume:
22+
sizeGiB: ${IBMVPC_CONTROLPLANE_BOOT_VOLUME_SIZEGIB:=20}
23+
image:
24+
name: ${IBMVPC_IMAGE_NAME}
25+
profile: ${IBMVPC_PROFILE}
26+
sshKeys:
27+
- name: ${IBMVPC_SSHKEY_NAME}
28+
zone: ${IBMVPC_ZONE}
29+
---
30+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
31+
kind: IBMVPCMachineTemplate
32+
metadata:
33+
name: "${IBMVPC_CLUSTER_CLASS_NAME}-worker-machinetemplate"
34+
spec:
35+
template:
36+
spec:
37+
image:
38+
name: "${IBMVPC_IMAGE_NAME}"
39+
zone: "${IBMVPC_ZONE}"
40+
profile: "${IBMVPC_PROFILE}"
41+
sshKeys:
42+
- name: "${IBMVPC_SSHKEY_NAME}"
43+
bootVolume:
44+
sizeGiB: ${IBMVPC_WORKER_BOOT_VOLUME_SIZEGIB:=20}

0 commit comments

Comments
 (0)