1
+ apiVersion : v1
2
+ data :
3
+ ibmpowervs-ccm-external.yaml : |-
4
+ apiVersion: v1
5
+ kind: ServiceAccount
6
+ metadata:
7
+ name: cloud-controller-manager
8
+ namespace: kube-system
9
+ ---
10
+ apiVersion: rbac.authorization.k8s.io/v1
11
+ kind: RoleBinding
12
+ metadata:
13
+ name: cloud-controller-manager:apiserver-authentication-reader
14
+ namespace: kube-system
15
+ roleRef:
16
+ apiGroup: rbac.authorization.k8s.io
17
+ kind: Role
18
+ name: extension-apiserver-authentication-reader
19
+ subjects:
20
+ - apiGroup: ""
21
+ kind: ServiceAccount
22
+ name: cloud-controller-manager
23
+ namespace: kube-system
24
+ ---
25
+ apiVersion: rbac.authorization.k8s.io/v1
26
+ kind: ClusterRoleBinding
27
+ metadata:
28
+ name: system:cloud-controller-manager
29
+ roleRef:
30
+ apiGroup: rbac.authorization.k8s.io
31
+ kind: ClusterRole
32
+ name: system:cloud-controller-manager
33
+ subjects:
34
+ - kind: ServiceAccount
35
+ name: cloud-controller-manager
36
+ namespace: kube-system
37
+ ---
38
+ apiVersion: rbac.authorization.k8s.io/v1
39
+ kind: ClusterRole
40
+ metadata:
41
+ name: system:cloud-controller-manager
42
+ rules:
43
+ - apiGroups:
44
+ - ""
45
+ resources:
46
+ - events
47
+ verbs:
48
+ - create
49
+ - patch
50
+ - update
51
+ - apiGroups:
52
+ - ""
53
+ resources:
54
+ - nodes
55
+ verbs:
56
+ - "*"
57
+ - apiGroups:
58
+ - ""
59
+ resources:
60
+ - nodes/status
61
+ verbs:
62
+ - patch
63
+ - apiGroups:
64
+ - ""
65
+ resources:
66
+ - services
67
+ verbs:
68
+ - list
69
+ - patch
70
+ - update
71
+ - watch
72
+ - apiGroups:
73
+ - ""
74
+ resources:
75
+ - services/status
76
+ verbs:
77
+ - patch
78
+ - apiGroups:
79
+ - ""
80
+ resources:
81
+ - serviceaccounts
82
+ verbs:
83
+ - create
84
+ - get
85
+ - list
86
+ - watch
87
+ - update
88
+ - apiGroups:
89
+ - ""
90
+ resources:
91
+ - persistentvolumes
92
+ verbs:
93
+ - get
94
+ - list
95
+ - update
96
+ - watch
97
+ - apiGroups:
98
+ - ""
99
+ resources:
100
+ - endpoints
101
+ verbs:
102
+ - create
103
+ - get
104
+ - list
105
+ - watch
106
+ - update
107
+ - apiGroups:
108
+ - ""
109
+ resources:
110
+ - secrets
111
+ verbs:
112
+ - get
113
+ - list
114
+ - watch
115
+ - apiGroups:
116
+ - "coordination.k8s.io"
117
+ resources:
118
+ - leases
119
+ verbs:
120
+ - create
121
+ - get
122
+ - list
123
+ - watch
124
+ - update
125
+ - apiGroups:
126
+ - ""
127
+ resourceNames:
128
+ - node-controller
129
+ - service-controller
130
+ resources:
131
+ - serviceaccounts/token
132
+ verbs:
133
+ - create
134
+ ---
135
+ apiVersion: apps/v1
136
+ kind: DaemonSet
137
+ metadata:
138
+ name: ibmpowervs-cloud-controller-manager
139
+ namespace: kube-system
140
+ labels:
141
+ k8s-app: ibmpowervs-cloud-controller-manager
142
+ spec:
143
+ selector:
144
+ matchLabels:
145
+ k8s-app: ibmpowervs-cloud-controller-manager
146
+ updateStrategy:
147
+ type: RollingUpdate
148
+ template:
149
+ metadata:
150
+ labels:
151
+ k8s-app: ibmpowervs-cloud-controller-manager
152
+ spec:
153
+ nodeSelector:
154
+ node-role.kubernetes.io/control-plane: ""
155
+ tolerations:
156
+ - key: node.cloudprovider.kubernetes.io/uninitialized
157
+ value: "true"
158
+ effect: NoSchedule
159
+ - key: node-role.kubernetes.io/master
160
+ effect: NoSchedule
161
+ operator: Exists
162
+ - key: node-role.kubernetes.io/control-plane
163
+ effect: NoSchedule
164
+ operator: Exists
165
+ - key: node.kubernetes.io/not-ready
166
+ effect: NoSchedule
167
+ operator: Exists
168
+ serviceAccountName: cloud-controller-manager
169
+ containers:
170
+ - name: ibmpowervs-cloud-controller-manager
171
+ image: gcr.io/k8s-staging-capi-ibmcloud/powervs-cloud-controller-manager:6c98ec5
172
+ args:
173
+ - --v=2
174
+ - --cloud-provider=ibm
175
+ - --cloud-config=/etc/cloud/ibmpowervs.conf
176
+ - --use-service-account-credentials=true
177
+ env:
178
+ - name: ENABLE_VPC_PUBLIC_ENDPOINT
179
+ value: "true"
180
+ resources:
181
+ requests:
182
+ cpu: 200m
183
+ terminationMessagePolicy: FallbackToLogsOnError
184
+ volumeMounts:
185
+ - mountPath: /etc/cloud
186
+ name: ibmpowervs-config-volume
187
+ readOnly: true
188
+ - mountPath: /etc/ibm-secret
189
+ name: ibm-secret
190
+ hostNetwork: true
191
+ volumes:
192
+ - name: ibmpowervs-config-volume
193
+ configMap:
194
+ name: ibmpowervs-cloud-config
195
+ - name: ibm-secret
196
+ secret:
197
+ secretName: ibmpowervs-cloud-credential
198
+ kind : ConfigMap
199
+ metadata :
200
+ name : cloud-controller-manager-addon
201
+ ---
202
+ apiVersion : v1
203
+ data :
204
+ ibmpowervs-cloud-conf.yaml : |-
205
+ apiVersion: v1
206
+ kind: ConfigMap
207
+ metadata:
208
+ name: ibmpowervs-cloud-config
209
+ namespace: kube-system
210
+ data:
211
+ ibmpowervs.conf: |
212
+ [global]
213
+ version = 1.1.0
214
+ [kubernetes]
215
+ config-file = ""
216
+ [provider]
217
+ cluster-default-provider = g2
218
+ accountID = ${IBMACCOUNT_ID}
219
+ clusterID = ${CLUSTER_NAME}
220
+ g2workerServiceAccountID = ${IBMACCOUNT_ID}
221
+ g2Credentials = /etc/ibm-secret/ibmcloud_api_key
222
+ g2ResourceGroupName = ${IBMVPC_RESOURCE_GROUP:=""}
223
+ g2VpcSubnetNames = ${IBMVPC_SUBNET_NAMES:=""}
224
+ g2VpcName = ${IBMVPC_NAME:=""}
225
+ region = ${IBMVPC_REGION:=""}
226
+ powerVSCloudInstanceID = ${IBMPOWERVS_SERVICE_INSTANCE_ID}
227
+ powerVSRegion = ${IBMPOWERVS_REGION}
228
+ powerVSZone = ${IBMPOWERVS_ZONE}
229
+ kind : ConfigMap
230
+ metadata :
231
+ name : ibmpowervs-cfg
232
+ ---
233
+ apiVersion : v1
234
+ kind : Secret
235
+ metadata :
236
+ name : ibmpowervs-credential
237
+ stringData :
238
+ ibmpowervs-credential.yaml : |-
239
+ apiVersion: v1
240
+ kind: Secret
241
+ metadata:
242
+ name: ibmpowervs-cloud-credential
243
+ namespace: kube-system
244
+ data:
245
+ ibmcloud_api_key: ${BASE64_API_KEY}
246
+ type : addons.cluster.x-k8s.io/resource-set
247
+ ---
248
+ apiVersion : addons.cluster.x-k8s.io/v1beta1
249
+ kind : ClusterResourceSet
250
+ metadata :
251
+ name : crs-cloud-conf
252
+ spec :
253
+ clusterSelector :
254
+ matchLabels :
255
+ ccm : external
256
+ resources :
257
+ - kind : Secret
258
+ name : ibmpowervs-credential
259
+ - kind : ConfigMap
260
+ name : ibmpowervs-cfg
261
+ - kind : ConfigMap
262
+ name : cloud-controller-manager-addon
263
+ strategy : ApplyOnce
264
+ ---
1
265
apiVersion : bootstrap.cluster.x-k8s.io/v1beta1
2
266
kind : KubeadmConfigTemplate
3
267
metadata :
4
268
labels :
5
269
cluster.x-k8s.io/cluster-name : ${CLUSTER_NAME}
270
+ cluster.x-k8s.io/control-plane : " "
6
271
name : ${CLUSTER_NAME}-md-0
7
272
spec :
8
273
template :
19
284
kubeletExtraArgs :
20
285
cloud-provider : external
21
286
eviction-hard : nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0%
22
- provider-id : ibmpowervs://${CLUSTER_NAME}/'{{ v1.local_hostname }}'
23
287
name : ' {{ v1.local_hostname }}'
24
288
preKubeadmCommands :
25
289
- hostname "{{ v1.local_hostname }}"
@@ -32,6 +296,7 @@ apiVersion: cluster.x-k8s.io/v1beta1
32
296
kind : Cluster
33
297
metadata :
34
298
labels :
299
+ ccm : external
35
300
cluster.x-k8s.io/cluster-name : ${CLUSTER_NAME}
36
301
name : ${CLUSTER_NAME}
37
302
spec :
@@ -77,25 +342,6 @@ spec:
77
342
name : ${CLUSTER_NAME}-md-0
78
343
version : ${KUBERNETES_VERSION}
79
344
---
80
- apiVersion : cluster.x-k8s.io/v1beta1
81
- kind : MachineHealthCheck
82
- metadata :
83
- name : ${CLUSTER_NAME}-mhc-md
84
- spec :
85
- clusterName : ${CLUSTER_NAME}
86
- maxUnhealthy : 100%
87
- nodeStartupTimeout : 20m
88
- selector :
89
- matchLabels :
90
- e2e.remediation.label : " "
91
- unhealthyConditions :
92
- - status : " False"
93
- timeout : 60s
94
- type : Ready
95
- - status : Unknown
96
- timeout : 60s
97
- type : Ready
98
- ---
99
345
apiVersion : controlplane.cluster.x-k8s.io/v1beta1
100
346
kind : KubeadmControlPlane
101
347
metadata :
@@ -107,9 +353,12 @@ spec:
107
353
certSANs :
108
354
- ${IBMPOWERVS_VIP}
109
355
- ${IBMPOWERVS_VIP_EXTERNAL}
356
+ extraArgs :
357
+ cloud-provider : external
110
358
controlPlaneEndpoint : ${IBMPOWERVS_VIP}:${API_SERVER_PORT:=6443}
111
359
controllerManager :
112
360
extraArgs :
361
+ cloud-provider : external
113
362
enable-hostpath-provisioner : " true"
114
363
files :
115
364
- content : |
@@ -234,7 +483,6 @@ spec:
234
483
kubeletExtraArgs :
235
484
cloud-provider : external
236
485
eviction-hard : nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0%
237
- provider-id : ibmpowervs://${CLUSTER_NAME}/'{{ v1.local_hostname }}'
238
486
name : ' {{ v1.local_hostname }}'
239
487
joinConfiguration :
240
488
discovery :
@@ -248,7 +496,6 @@ spec:
248
496
kubeletExtraArgs :
249
497
cloud-provider : external
250
498
eviction-hard : nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0%
251
- provider-id : ibmpowervs://${CLUSTER_NAME}/'{{ v1.local_hostname }}'
252
499
name : ' {{ v1.local_hostname }}'
253
500
preKubeadmCommands :
254
501
- hostname "{{ v1.local_hostname }}"
0 commit comments