...
1apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if we don't have this
2name: "[Stable] ControlPlaneMachineSet"
3crd: 0000_10_controlplanemachineset.crd.yaml
4tests:
5 onCreate:
6 - name: Should be able to create a minimal ControlPlaneMachineSet
7 initial: |
8 apiVersion: machine.openshift.io/v1
9 kind: ControlPlaneMachineSet
10 spec:
11 selector:
12 matchLabels:
13 machine.openshift.io/cluster-api-machine-role: master
14 machine.openshift.io/cluster-api-machine-type: master
15 template:
16 machineType: machines_v1beta1_machine_openshift_io
17 machines_v1beta1_machine_openshift_io:
18 metadata:
19 labels:
20 machine.openshift.io/cluster-api-machine-role: master
21 machine.openshift.io/cluster-api-machine-type: master
22 machine.openshift.io/cluster-api-cluster: cluster
23 spec:
24 providerSpec: {}
25 expected: |
26 apiVersion: machine.openshift.io/v1
27 kind: ControlPlaneMachineSet
28 spec:
29 replicas: 3
30 state: Inactive
31 strategy:
32 type: RollingUpdate
33 selector:
34 matchLabels:
35 machine.openshift.io/cluster-api-machine-role: master
36 machine.openshift.io/cluster-api-machine-type: master
37 template:
38 machineType: machines_v1beta1_machine_openshift_io
39 machines_v1beta1_machine_openshift_io:
40 metadata:
41 labels:
42 machine.openshift.io/cluster-api-machine-role: master
43 machine.openshift.io/cluster-api-machine-type: master
44 machine.openshift.io/cluster-api-cluster: cluster
45 spec:
46 providerSpec: {}
47 - name: Should reject a missing machineType
48 initial: |
49 apiVersion: machine.openshift.io/v1
50 kind: ControlPlaneMachineSet
51 spec:
52 selector:
53 matchLabels:
54 machine.openshift.io/cluster-api-machine-role: master
55 machine.openshift.io/cluster-api-machine-type: master
56 template:
57 machines_v1beta1_machine_openshift_io:
58 metadata:
59 labels:
60 machine.openshift.io/cluster-api-machine-role: master
61 machine.openshift.io/cluster-api-machine-type: master
62 machine.openshift.io/cluster-api-cluster: cluster
63 spec:
64 providerSpec: {}
65 expectedError: "spec.template.machineType: Required value"
66 - name: Should reject a missing machines_v1beta1_machine_openshift_io
67 initial: |
68 apiVersion: machine.openshift.io/v1
69 kind: ControlPlaneMachineSet
70 spec:
71 selector:
72 matchLabels:
73 machine.openshift.io/cluster-api-machine-role: master
74 machine.openshift.io/cluster-api-machine-type: master
75 template:
76 machineType: machines_v1beta1_machine_openshift_io
77 expectedError: "spec.template: Invalid value: \"object\": machines_v1beta1_machine_openshift_io configuration is required when machineType is machines_v1beta1_machine_openshift_io, and forbidden otherwise"
78 - name: Should reject a worker role label
79 initial: |
80 apiVersion: machine.openshift.io/v1
81 kind: ControlPlaneMachineSet
82 spec:
83 selector:
84 matchLabels:
85 machine.openshift.io/cluster-api-machine-role: master
86 machine.openshift.io/cluster-api-machine-type: master
87 template:
88 machineType: machines_v1beta1_machine_openshift_io
89 machines_v1beta1_machine_openshift_io:
90 metadata:
91 labels:
92 machine.openshift.io/cluster-api-machine-role: worker
93 machine.openshift.io/cluster-api-machine-type: master
94 machine.openshift.io/cluster-api-cluster: cluster
95 spec:
96 providerSpec: {}
97 expectedError: "spec.template.machines_v1beta1_machine_openshift_io.metadata.labels: Invalid value: \"object\": label 'machine.openshift.io/cluster-api-machine-role' is required, and must have value 'master'"
98 - name: Should reject a missing role label
99 initial: |
100 apiVersion: machine.openshift.io/v1
101 kind: ControlPlaneMachineSet
102 spec:
103 selector:
104 matchLabels:
105 machine.openshift.io/cluster-api-machine-role: master
106 machine.openshift.io/cluster-api-machine-type: master
107 template:
108 machineType: machines_v1beta1_machine_openshift_io
109 machines_v1beta1_machine_openshift_io:
110 metadata:
111 labels:
112 machine.openshift.io/cluster-api-machine-type: master
113 machine.openshift.io/cluster-api-cluster: cluster
114 spec:
115 providerSpec: {}
116 expectedError: "spec.template.machines_v1beta1_machine_openshift_io.metadata.labels: Invalid value: \"object\": label 'machine.openshift.io/cluster-api-machine-role' is required, and must have value 'master'"
117 - name: Should reject a worker type label
118 initial: |
119 apiVersion: machine.openshift.io/v1
120 kind: ControlPlaneMachineSet
121 spec:
122 selector:
123 matchLabels:
124 machine.openshift.io/cluster-api-machine-role: master
125 machine.openshift.io/cluster-api-machine-type: master
126 template:
127 machineType: machines_v1beta1_machine_openshift_io
128 machines_v1beta1_machine_openshift_io:
129 metadata:
130 labels:
131 machine.openshift.io/cluster-api-machine-role: master
132 machine.openshift.io/cluster-api-machine-type: worker
133 machine.openshift.io/cluster-api-cluster: cluster
134 spec:
135 providerSpec: {}
136 expectedError: "spec.template.machines_v1beta1_machine_openshift_io.metadata.labels: Invalid value: \"object\": label 'machine.openshift.io/cluster-api-machine-type' is required, and must have value 'master'"
137 - name: Should reject a missing type label
138 initial: |
139 apiVersion: machine.openshift.io/v1
140 kind: ControlPlaneMachineSet
141 spec:
142 selector:
143 matchLabels:
144 machine.openshift.io/cluster-api-machine-role: master
145 machine.openshift.io/cluster-api-machine-type: master
146 template:
147 machineType: machines_v1beta1_machine_openshift_io
148 machines_v1beta1_machine_openshift_io:
149 metadata:
150 labels:
151 machine.openshift.io/cluster-api-machine-role: master
152 machine.openshift.io/cluster-api-cluster: cluster
153 spec:
154 providerSpec: {}
155 expectedError: "spec.template.machines_v1beta1_machine_openshift_io.metadata.labels: Invalid value: \"object\": label 'machine.openshift.io/cluster-api-machine-type' is required, and must have value 'master'"
156 - name: Should reject a missing cluster ID label
157 initial: |
158 apiVersion: machine.openshift.io/v1
159 kind: ControlPlaneMachineSet
160 spec:
161 selector:
162 matchLabels:
163 machine.openshift.io/cluster-api-machine-role: master
164 machine.openshift.io/cluster-api-machine-type: master
165 template:
166 machineType: machines_v1beta1_machine_openshift_io
167 machines_v1beta1_machine_openshift_io:
168 metadata:
169 labels:
170 machine.openshift.io/cluster-api-machine-role: master
171 machine.openshift.io/cluster-api-machine-type: master
172 spec:
173 providerSpec: {}
174 expectedError: "spec.template.machines_v1beta1_machine_openshift_io.metadata.labels: Invalid value: \"object\": label 'machine.openshift.io/cluster-api-cluster' is required"
175 - name: Should be able to create an Active ControlPlaneMachineSet
176 initial: |
177 apiVersion: machine.openshift.io/v1
178 kind: ControlPlaneMachineSet
179 spec:
180 state: Active
181 selector:
182 matchLabels:
183 machine.openshift.io/cluster-api-machine-role: master
184 machine.openshift.io/cluster-api-machine-type: master
185 template:
186 machineType: machines_v1beta1_machine_openshift_io
187 machines_v1beta1_machine_openshift_io:
188 metadata:
189 labels:
190 machine.openshift.io/cluster-api-machine-role: master
191 machine.openshift.io/cluster-api-machine-type: master
192 machine.openshift.io/cluster-api-cluster: cluster
193 spec:
194 providerSpec: {}
195 expected: |
196 apiVersion: machine.openshift.io/v1
197 kind: ControlPlaneMachineSet
198 spec:
199 replicas: 3
200 state: Active
201 strategy:
202 type: RollingUpdate
203 selector:
204 matchLabels:
205 machine.openshift.io/cluster-api-machine-role: master
206 machine.openshift.io/cluster-api-machine-type: master
207 template:
208 machineType: machines_v1beta1_machine_openshift_io
209 machines_v1beta1_machine_openshift_io:
210 metadata:
211 labels:
212 machine.openshift.io/cluster-api-machine-role: master
213 machine.openshift.io/cluster-api-machine-type: master
214 machine.openshift.io/cluster-api-cluster: cluster
215 spec:
216 providerSpec: {}
217 onUpdate:
218 - name: Replicas should be immutable
219 initial: |
220 apiVersion: machine.openshift.io/v1
221 kind: ControlPlaneMachineSet
222 spec:
223 replicas: 3
224 state: Inactive
225 strategy:
226 type: RollingUpdate
227 selector:
228 matchLabels:
229 machine.openshift.io/cluster-api-machine-role: master
230 machine.openshift.io/cluster-api-machine-type: master
231 template:
232 machineType: machines_v1beta1_machine_openshift_io
233 machines_v1beta1_machine_openshift_io:
234 metadata:
235 labels:
236 machine.openshift.io/cluster-api-machine-role: master
237 machine.openshift.io/cluster-api-machine-type: master
238 machine.openshift.io/cluster-api-cluster: cluster
239 spec:
240 providerSpec: {}
241 updated: |
242 apiVersion: machine.openshift.io/v1
243 kind: ControlPlaneMachineSet
244 spec:
245 replicas: 5
246 state: Inactive
247 strategy:
248 type: RollingUpdate
249 selector:
250 matchLabels:
251 machine.openshift.io/cluster-api-machine-role: master
252 machine.openshift.io/cluster-api-machine-type: master
253 template:
254 machineType: machines_v1beta1_machine_openshift_io
255 machines_v1beta1_machine_openshift_io:
256 metadata:
257 labels:
258 machine.openshift.io/cluster-api-machine-role: master
259 machine.openshift.io/cluster-api-machine-type: master
260 machine.openshift.io/cluster-api-cluster: cluster
261 spec:
262 providerSpec: {}
263 expectedError: "spec.replicas: Invalid value: \"integer\": replicas is immutable"
264 - name: Selector should be immutable
265 initial: |
266 apiVersion: machine.openshift.io/v1
267 kind: ControlPlaneMachineSet
268 spec:
269 replicas: 3
270 state: Inactive
271 strategy:
272 type: RollingUpdate
273 selector:
274 matchLabels:
275 machine.openshift.io/cluster-api-machine-role: master
276 machine.openshift.io/cluster-api-machine-type: master
277 template:
278 machineType: machines_v1beta1_machine_openshift_io
279 machines_v1beta1_machine_openshift_io:
280 metadata:
281 labels:
282 machine.openshift.io/cluster-api-machine-role: master
283 machine.openshift.io/cluster-api-machine-type: master
284 machine.openshift.io/cluster-api-cluster: cluster
285 spec:
286 providerSpec: {}
287 updated: |
288 apiVersion: machine.openshift.io/v1
289 kind: ControlPlaneMachineSet
290 spec:
291 replicas: 3
292 state: Inactive
293 strategy:
294 type: RollingUpdate
295 selector:
296 matchLabels:
297 machine.openshift.io/cluster-api-machine-role: master
298 machine.openshift.io/cluster-api-machine-type: master
299 foo: bar
300 template:
301 machineType: machines_v1beta1_machine_openshift_io
302 machines_v1beta1_machine_openshift_io:
303 metadata:
304 labels:
305 machine.openshift.io/cluster-api-machine-role: master
306 machine.openshift.io/cluster-api-machine-type: master
307 machine.openshift.io/cluster-api-cluster: cluster
308 spec:
309 providerSpec: {}
310 expectedError: "spec.selector: Invalid value: \"object\": selector is immutable"
311 - name: Should default the strategy when removed
312 initial: |
313 apiVersion: machine.openshift.io/v1
314 kind: ControlPlaneMachineSet
315 spec:
316 replicas: 3
317 state: Inactive
318 strategy:
319 type: OnDelete
320 selector:
321 matchLabels:
322 machine.openshift.io/cluster-api-machine-role: master
323 machine.openshift.io/cluster-api-machine-type: master
324 template:
325 machineType: machines_v1beta1_machine_openshift_io
326 machines_v1beta1_machine_openshift_io:
327 metadata:
328 labels:
329 machine.openshift.io/cluster-api-machine-role: master
330 machine.openshift.io/cluster-api-machine-type: master
331 machine.openshift.io/cluster-api-cluster: cluster
332 spec:
333 providerSpec: {}
334 updated: |
335 apiVersion: machine.openshift.io/v1
336 kind: ControlPlaneMachineSet
337 spec:
338 replicas: 3
339 state: Inactive
340 selector:
341 matchLabels:
342 machine.openshift.io/cluster-api-machine-role: master
343 machine.openshift.io/cluster-api-machine-type: master
344 template:
345 machineType: machines_v1beta1_machine_openshift_io
346 machines_v1beta1_machine_openshift_io:
347 metadata:
348 labels:
349 machine.openshift.io/cluster-api-machine-role: master
350 machine.openshift.io/cluster-api-machine-type: master
351 machine.openshift.io/cluster-api-cluster: cluster
352 spec:
353 providerSpec: {}
354 expected: |
355 apiVersion: machine.openshift.io/v1
356 kind: ControlPlaneMachineSet
357 spec:
358 replicas: 3
359 state: Inactive
360 strategy:
361 type: RollingUpdate
362 selector:
363 matchLabels:
364 machine.openshift.io/cluster-api-machine-role: master
365 machine.openshift.io/cluster-api-machine-type: master
366 template:
367 machineType: machines_v1beta1_machine_openshift_io
368 machines_v1beta1_machine_openshift_io:
369 metadata:
370 labels:
371 machine.openshift.io/cluster-api-machine-role: master
372 machine.openshift.io/cluster-api-machine-type: master
373 machine.openshift.io/cluster-api-cluster: cluster
374 spec:
375 providerSpec: {}
376 - name: Should allow the state to change to Active
377 initial: |
378 apiVersion: machine.openshift.io/v1
379 kind: ControlPlaneMachineSet
380 spec:
381 replicas: 3
382 state: Inactive
383 strategy:
384 type: RollingUpdate
385 selector:
386 matchLabels:
387 machine.openshift.io/cluster-api-machine-role: master
388 machine.openshift.io/cluster-api-machine-type: master
389 template:
390 machineType: machines_v1beta1_machine_openshift_io
391 machines_v1beta1_machine_openshift_io:
392 metadata:
393 labels:
394 machine.openshift.io/cluster-api-machine-role: master
395 machine.openshift.io/cluster-api-machine-type: master
396 machine.openshift.io/cluster-api-cluster: cluster
397 spec:
398 providerSpec: {}
399 updated: |
400 apiVersion: machine.openshift.io/v1
401 kind: ControlPlaneMachineSet
402 spec:
403 replicas: 3
404 state: Active
405 strategy:
406 type: RollingUpdate
407 selector:
408 matchLabels:
409 machine.openshift.io/cluster-api-machine-role: master
410 machine.openshift.io/cluster-api-machine-type: master
411 template:
412 machineType: machines_v1beta1_machine_openshift_io
413 machines_v1beta1_machine_openshift_io:
414 metadata:
415 labels:
416 machine.openshift.io/cluster-api-machine-role: master
417 machine.openshift.io/cluster-api-machine-type: master
418 machine.openshift.io/cluster-api-cluster: cluster
419 spec:
420 providerSpec: {}
421 expected: |
422 apiVersion: machine.openshift.io/v1
423 kind: ControlPlaneMachineSet
424 spec:
425 replicas: 3
426 state: Active
427 strategy:
428 type: RollingUpdate
429 selector:
430 matchLabels:
431 machine.openshift.io/cluster-api-machine-role: master
432 machine.openshift.io/cluster-api-machine-type: master
433 template:
434 machineType: machines_v1beta1_machine_openshift_io
435 machines_v1beta1_machine_openshift_io:
436 metadata:
437 labels:
438 machine.openshift.io/cluster-api-machine-role: master
439 machine.openshift.io/cluster-api-machine-type: master
440 machine.openshift.io/cluster-api-cluster: cluster
441 spec:
442 providerSpec: {}
443 - name: Should not allow the state to change from Active
444 initial: |
445 apiVersion: machine.openshift.io/v1
446 kind: ControlPlaneMachineSet
447 spec:
448 replicas: 3
449 state: Active
450 strategy:
451 type: RollingUpdate
452 selector:
453 matchLabels:
454 machine.openshift.io/cluster-api-machine-role: master
455 machine.openshift.io/cluster-api-machine-type: master
456 template:
457 machineType: machines_v1beta1_machine_openshift_io
458 machines_v1beta1_machine_openshift_io:
459 metadata:
460 labels:
461 machine.openshift.io/cluster-api-machine-role: master
462 machine.openshift.io/cluster-api-machine-type: master
463 machine.openshift.io/cluster-api-cluster: cluster
464 spec:
465 providerSpec: {}
466 updated: |
467 apiVersion: machine.openshift.io/v1
468 kind: ControlPlaneMachineSet
469 spec:
470 replicas: 3
471 state: Inactive
472 strategy:
473 type: RollingUpdate
474 selector:
475 matchLabels:
476 machine.openshift.io/cluster-api-machine-role: master
477 machine.openshift.io/cluster-api-machine-type: master
478 template:
479 machineType: machines_v1beta1_machine_openshift_io
480 machines_v1beta1_machine_openshift_io:
481 metadata:
482 labels:
483 machine.openshift.io/cluster-api-machine-role: master
484 machine.openshift.io/cluster-api-machine-type: master
485 machine.openshift.io/cluster-api-cluster: cluster
486 spec:
487 providerSpec: {}
488 expectedError: "spec.state: Invalid value: \"string\": state cannot be changed once Active"
View as plain text