9
9
apiVersion: machineconfiguration.openshift.io/v1
10
10
kind: MachineOSConfig
11
11
metadata:
12
- name: foobar
12
+ name: worker
13
13
spec:
14
14
machineConfigPool:
15
15
name: worker
24
24
apiVersion: machineconfiguration.openshift.io/v1
25
25
kind: MachineOSConfig
26
26
metadata:
27
- name: foobar
27
+ name: worker
28
28
spec:
29
29
machineConfigPool:
30
30
name: worker
40
40
apiVersion: machineconfiguration.openshift.io/v1
41
41
kind: MachineOSConfig
42
42
metadata:
43
- name: foobar
43
+ name: worker
44
44
spec:
45
45
machineConfigPool:
46
46
name: worker
55
55
apiVersion: machineconfiguration.openshift.io/v1
56
56
kind: MachineOSConfig
57
57
metadata:
58
- name: foobar
58
+ name: worker
59
59
spec:
60
60
machineConfigPool:
61
61
name: worker
71
71
apiVersion: machineconfiguration.openshift.io/v1
72
72
kind: MachineOSConfig
73
73
metadata:
74
- name: foobar
74
+ name: worker
75
75
spec:
76
76
machineConfigPool:
77
77
name: worker
88
88
apiVersion: machineconfiguration.openshift.io/v1
89
89
kind: MachineOSConfig
90
90
metadata:
91
- name: foobar
91
+ name: worker
92
92
spec:
93
93
machineConfigPool:
94
94
name: worker
@@ -101,12 +101,184 @@ tests:
101
101
apiVersion: machineconfiguration.openshift.io/v1
102
102
kind: MachineOSConfig
103
103
metadata:
104
- name: foobar
104
+ name: worker
105
105
spec:
106
106
machineConfigPool:
107
107
name: worker
108
- imageBuilder:
108
+ imageBuilder:
109
+ imageBuilderType: Job
110
+ renderedImagePushSecret:
111
+ name: foo
112
+ renderedImagePushSpec: quay.io/mco/renderedImg:latest
113
+ - name : Should succeed when MachineOSConfig name matches MachineConfigPool name
114
+ initial : |
115
+ apiVersion: machineconfiguration.openshift.io/v1
116
+ kind: MachineOSConfig
117
+ metadata:
118
+ name: worker
119
+ spec:
120
+ machineConfigPool:
121
+ name: worker
122
+ imageBuilder:
123
+ imageBuilderType: Job
124
+ renderedImagePushSecret:
125
+ name: foo
126
+ renderedImagePushSpec: quay.io/mco/renderedImg:latest
127
+ expected : |
128
+ apiVersion: machineconfiguration.openshift.io/v1
129
+ kind: MachineOSConfig
130
+ metadata:
131
+ name: worker
132
+ spec:
133
+ machineConfigPool:
134
+ name: worker
135
+ imageBuilder:
136
+ imageBuilderType: Job
137
+ renderedImagePushSecret:
138
+ name: foo
139
+ renderedImagePushSpec: quay.io/mco/renderedImg:latest
140
+ - name : Should fail when MachineOSConfig name does not match MachineConfigPool name
141
+ initial : |
142
+ apiVersion: machineconfiguration.openshift.io/v1
143
+ kind: MachineOSConfig
144
+ metadata:
145
+ name: different-name
146
+ spec:
147
+ machineConfigPool:
148
+ name: worker
149
+ imageBuilder:
150
+ imageBuilderType: Job
151
+ renderedImagePushSecret:
152
+ name: foo
153
+ renderedImagePushSpec: quay.io/mco/renderedImg:latest
154
+ expectedError : " MachineOSConfig name must match the referenced MachineConfigPool name; can only have one MachineOSConfig per MachineConfigPool"
155
+ onUpdate :
156
+ - name : Should allow changing other fields when a persisted value is no longer valid (mismatched names)
157
+ initialCRDPatches :
158
+ - op : remove
159
+ path : /spec/versions/0/schema/openAPIV3Schema/x-kubernetes-validations # Remove the name matching validation
160
+ initial : |
161
+ apiVersion: machineconfiguration.openshift.io/v1
162
+ kind: MachineOSConfig
163
+ metadata:
164
+ name: different-name
165
+ spec:
166
+ machineConfigPool:
167
+ name: worker
168
+ imageBuilder:
169
+ imageBuilderType: Job
170
+ renderedImagePushSecret:
171
+ name: foo
172
+ renderedImagePushSpec: quay.io/mco/renderedImg:latest
173
+ updated : |
174
+ apiVersion: machineconfiguration.openshift.io/v1
175
+ kind: MachineOSConfig
176
+ metadata:
177
+ name: different-name
178
+ spec:
179
+ machineConfigPool:
180
+ name: worker
181
+ imageBuilder:
182
+ imageBuilderType: Job
183
+ renderedImagePushSecret:
184
+ name: foo
185
+ renderedImagePushSpec: quay.io/mco/renderedImg:v2.0
186
+ containerFile:
187
+ - containerfileArch: AMD64
188
+ content: |
189
+ FROM configs AS final
190
+ RUN rpm-ostree install tree && \
191
+ ostree container commit
192
+ expected : |
193
+ apiVersion: machineconfiguration.openshift.io/v1
194
+ kind: MachineOSConfig
195
+ metadata:
196
+ name: different-name
197
+ spec:
198
+ machineConfigPool:
199
+ name: worker
200
+ imageBuilder:
201
+ imageBuilderType: Job
202
+ renderedImagePushSecret:
203
+ name: foo
204
+ renderedImagePushSpec: quay.io/mco/renderedImg:v2.0
205
+ containerFile:
206
+ - containerfileArch: AMD64
207
+ content: |
208
+ FROM configs AS final
209
+ RUN rpm-ostree install tree && \
210
+ ostree container commit
211
+ - name : Should allow updating a persisted value that is no longer valid to a valid value (fix mismatched names)
212
+ initialCRDPatches :
213
+ - op : remove
214
+ path : /spec/versions/0/schema/openAPIV3Schema/x-kubernetes-validations # Remove the name matching validation
215
+ initial : |
216
+ apiVersion: machineconfiguration.openshift.io/v1
217
+ kind: MachineOSConfig
218
+ metadata:
219
+ name: worker
220
+ spec:
221
+ machineConfigPool:
222
+ name: different-pool
223
+ imageBuilder:
224
+ imageBuilderType: Job
225
+ renderedImagePushSecret:
226
+ name: foo
227
+ renderedImagePushSpec: quay.io/mco/renderedImg:latest
228
+ updated : |
229
+ apiVersion: machineconfiguration.openshift.io/v1
230
+ kind: MachineOSConfig
231
+ metadata:
232
+ name: worker
233
+ spec:
234
+ machineConfigPool:
235
+ name: worker
236
+ imageBuilder:
237
+ imageBuilderType: Job
238
+ renderedImagePushSecret:
239
+ name: foo
240
+ renderedImagePushSpec: quay.io/mco/renderedImg:latest
241
+ expected : |
242
+ apiVersion: machineconfiguration.openshift.io/v1
243
+ kind: MachineOSConfig
244
+ metadata:
245
+ name: worker
246
+ spec:
247
+ machineConfigPool:
248
+ name: worker
249
+ imageBuilder:
250
+ imageBuilderType: Job
251
+ renderedImagePushSecret:
252
+ name: foo
253
+ renderedImagePushSpec: quay.io/mco/renderedImg:latest
254
+ - name : Should not allow updating a persisted value that is no longer valid to a still invalid value (different mismatched MCP names)
255
+ initialCRDPatches :
256
+ - op : remove
257
+ path : /spec/versions/0/schema/openAPIV3Schema/x-kubernetes-validations # Remove the name matching validation
258
+ initial : |
259
+ apiVersion: machineconfiguration.openshift.io/v1
260
+ kind: MachineOSConfig
261
+ metadata:
262
+ name: different-name
263
+ spec:
264
+ machineConfigPool:
265
+ name: worker
266
+ imageBuilder:
267
+ imageBuilderType: Job
268
+ renderedImagePushSecret:
269
+ name: foo
270
+ renderedImagePushSpec: quay.io/mco/renderedImg:latest
271
+ updated : |
272
+ apiVersion: machineconfiguration.openshift.io/v1
273
+ kind: MachineOSConfig
274
+ metadata:
275
+ name: different-name
276
+ spec:
277
+ machineConfigPool:
278
+ name: worker-different
279
+ imageBuilder:
109
280
imageBuilderType: Job
110
281
renderedImagePushSecret:
111
282
name: foo
112
283
renderedImagePushSpec: quay.io/mco/renderedImg:latest
284
+ expectedError : " MachineOSConfig name must match the referenced MachineConfigPool name; can only have one MachineOSConfig per MachineConfigPool"
0 commit comments