@@ -69,8 +69,31 @@ func TestWorkloadReconciler(t *testing.T) {
69
69
LastTransitionTime : metav1 .NewTime (now ),
70
70
Message : "" ,
71
71
})
72
+ baseWorkloadWrapperWithAdmission := baseWorkloadWrapper .Clone ().
73
+ ReserveQuota (
74
+ & kueue.Admission {
75
+ PodSetAssignments : []kueue.PodSetAssignment {
76
+ utiltesting .MakePodSetAssignment ("psa1" ).
77
+ TopologyAssignment (nil , []kueue.TopologyDomainAssignment {
78
+ {
79
+ Values : []string {"domain1" , "domain2" },
80
+ Count : 2 ,
81
+ },
82
+ }).Obj (),
83
+ utiltesting .MakePodSetAssignment ("psa2" ).
84
+ TopologyAssignment (nil , []kueue.TopologyDomainAssignment {
85
+ {
86
+ Values : []string {"domain2" , "domain3" },
87
+ Count : 2 ,
88
+ },
89
+ }).
90
+ Obj (),
91
+ },
92
+ }, now ,
93
+ )
72
94
baseSliceWrapper := utiltesting .MakeSliceWrapper (baseWorkloadName , corev1 .NamespaceDefault ).
73
- ControllerReference (kueue .GroupVersion .WithKind ("Workload" ), baseWorkloadName , baseWorkloadName )
95
+ ControllerReference (kueue .GroupVersion .WithKind ("Workload" ), baseWorkloadName , baseWorkloadName ).
96
+ NodeSelector (map [string ][]string {TPUReservationSubblockLabel : {"domain1" , "domain2" , "domain3" }})
74
97
75
98
cases := map [string ]struct {
76
99
interceptorFuncsCreate func (ctx context.Context , client client.WithWatch , obj client.Object , opts ... client.CreateOption ) error
@@ -82,9 +105,13 @@ func TestWorkloadReconciler(t *testing.T) {
82
105
wantEvents []utiltesting.EventRecord
83
106
}{
84
107
"should skip reconciliation because the Workload was not found" : {
85
- request : types.NamespacedName {Name : "other-workload" , Namespace : corev1 .NamespaceDefault },
86
- objs : []client.Object {baseWorkloadWrapper .DeepCopy ()},
87
- wantWorkloads : []kueue.Workload {* baseWorkloadWrapper .DeepCopy ()},
108
+ request : types.NamespacedName {Name : "other-workload" , Namespace : corev1 .NamespaceDefault },
109
+ objs : []client.Object {
110
+ baseWorkloadWrapper .Clone ().Finalizers (SliceControllerName ).DeletionTimestamp (now ).Obj (),
111
+ },
112
+ wantWorkloads : []kueue.Workload {
113
+ * baseWorkloadWrapper .Clone ().Finalizers (SliceControllerName ).DeletionTimestamp (now ).Obj (),
114
+ },
88
115
},
89
116
"should delete the finalizer because the Workload has a DeletionTimestamp" : {
90
117
request : baseRequest ,
@@ -117,24 +144,69 @@ func TestWorkloadReconciler(t *testing.T) {
117
144
},
118
145
wantWorkloads : []kueue.Workload {* baseWorkloadWrapper .Clone ().Active (false ).Obj ()},
119
146
},
120
- "should add finalizer" : {
147
+ "shouldn't add finalizer because there’s no Admission " : {
121
148
request : baseRequest ,
122
149
objs : []client.Object {
150
+ baseAdmissionCheckWrapper .DeepCopy (),
123
151
baseWorkloadWrapper .DeepCopy (),
124
152
},
153
+ wantWorkloads : []kueue.Workload {* baseWorkloadWrapper .DeepCopy ()},
154
+ },
155
+ "shouldn't add finalizer because there’s no TopologyAssignment" : {
156
+ request : baseRequest ,
157
+ objs : []client.Object {
158
+ baseAdmissionCheckWrapper .DeepCopy (),
159
+ baseWorkloadWrapper .Clone ().
160
+ ReserveQuota (
161
+ & kueue.Admission {
162
+ PodSetAssignments : []kueue.PodSetAssignment {
163
+ utiltesting .MakePodSetAssignment ("psa1" ).Obj (),
164
+ },
165
+ }, now ,
166
+ ).
167
+ Obj (),
168
+ },
125
169
wantWorkloads : []kueue.Workload {
126
- * baseWorkloadWrapper .Clone ().Finalizers (SliceControllerName ).
170
+ * baseWorkloadWrapper .Clone ().
171
+ ReserveQuota (
172
+ & kueue.Admission {
173
+ PodSetAssignments : []kueue.PodSetAssignment {
174
+ utiltesting .MakePodSetAssignment ("psa1" ).Obj (),
175
+ },
176
+ }, now ,
177
+ ).
178
+ Obj (),
179
+ },
180
+ },
181
+ "shouldn't add finalizer because there’s no AdmissionCheck" : {
182
+ request : baseRequest ,
183
+ objs : []client.Object {
184
+ baseWorkloadWrapperWithAdmission .DeepCopy (),
185
+ },
186
+ wantWorkloads : []kueue.Workload {
187
+ * baseWorkloadWrapperWithAdmission .Clone ().Obj (),
188
+ },
189
+ },
190
+ "should add finalizer" : {
191
+ request : baseRequest ,
192
+ objs : []client.Object {
193
+ baseAdmissionCheckWrapper .DeepCopy (),
194
+ baseWorkloadWrapperWithAdmission .DeepCopy (),
195
+ },
196
+ wantWorkloads : []kueue.Workload {
197
+ * baseWorkloadWrapperWithAdmission .Clone ().
198
+ Finalizers (SliceControllerName ).
127
199
Obj (),
128
200
},
129
201
},
130
202
"should create a Slice" : {
131
203
request : baseRequest ,
132
204
objs : []client.Object {
133
205
baseAdmissionCheckWrapper .DeepCopy (),
134
- baseWorkloadWrapper .Finalizers (SliceControllerName ).DeepCopy (),
206
+ baseWorkloadWrapperWithAdmission .Finalizers (SliceControllerName ).DeepCopy (),
135
207
},
136
208
wantWorkloads : []kueue.Workload {
137
- * baseWorkloadWrapper .Clone ().
209
+ * baseWorkloadWrapperWithAdmission .Clone ().
138
210
Finalizers (SliceControllerName ).
139
211
AdmissionCheck (kueue.AdmissionCheckState {
140
212
Name : kueue .AdmissionCheckReference (baseAdmissionCheckName ),
@@ -158,56 +230,21 @@ func TestWorkloadReconciler(t *testing.T) {
158
230
request : baseRequest ,
159
231
objs : []client.Object {
160
232
baseAdmissionCheckWrapper .DeepCopy (),
161
- baseWorkloadWrapper .Clone ().
162
- Finalizers (SliceControllerName ).
163
- PodSetAssignments (utiltesting .MakePodSetAssignment ("psa1" ).
164
- TopologyAssignment (nil , []kueue.TopologyDomainAssignment {
165
- {
166
- Values : []string {"domain1" , "domain2" },
167
- Count : 2 ,
168
- },
169
- }).Obj (),
170
- utiltesting .MakePodSetAssignment ("psa2" ).
171
- TopologyAssignment (nil , []kueue.TopologyDomainAssignment {
172
- {
173
- Values : []string {"domain2" , "domain3" },
174
- Count : 2 ,
175
- },
176
- }).
177
- Obj (),
178
- ).Obj (),
233
+ baseWorkloadWrapperWithAdmission .Clone ().Finalizers (SliceControllerName ).Obj (),
179
234
},
180
235
wantWorkloads : []kueue.Workload {
181
- * baseWorkloadWrapper .Clone ().
236
+ * baseWorkloadWrapperWithAdmission .Clone ().
182
237
Finalizers (SliceControllerName ).
183
238
AdmissionCheck (kueue.AdmissionCheckState {
184
239
Name : kueue .AdmissionCheckReference (baseAdmissionCheckName ),
185
240
State : kueue .CheckStatePending ,
186
241
LastTransitionTime : metav1 .NewTime (now ),
187
242
Message : fmt .Sprintf (`The Slice "%s" has been created` , baseWorkloadName ),
188
243
}).
189
- PodSetAssignments (utiltesting .MakePodSetAssignment ("psa1" ).
190
- TopologyAssignment (nil , []kueue.TopologyDomainAssignment {
191
- {
192
- Values : []string {"domain1" , "domain2" },
193
- Count : 2 ,
194
- },
195
- }).Obj (),
196
- utiltesting .MakePodSetAssignment ("psa2" ).
197
- TopologyAssignment (nil , []kueue.TopologyDomainAssignment {
198
- {
199
- Values : []string {"domain2" , "domain3" },
200
- Count : 2 ,
201
- },
202
- }).
203
- Obj (),
204
- ).
205
244
Obj (),
206
245
},
207
246
wantSlices : []slice.Slice {
208
- * baseSliceWrapper .Clone ().
209
- NodeSelector (map [string ][]string {TPUReservationSubblockLabel : {"domain1" , "domain2" , "domain3" }}).
210
- Obj (),
247
+ * baseSliceWrapper .DeepCopy (),
211
248
},
212
249
wantEvents : []utiltesting.EventRecord {
213
250
{
@@ -228,10 +265,10 @@ func TestWorkloadReconciler(t *testing.T) {
228
265
request : baseRequest ,
229
266
objs : []client.Object {
230
267
baseAdmissionCheckWrapper .DeepCopy (),
231
- baseWorkloadWrapper .Finalizers (SliceControllerName ).DeepCopy (),
268
+ baseWorkloadWrapperWithAdmission .Finalizers (SliceControllerName ).DeepCopy (),
232
269
},
233
270
wantWorkloads : []kueue.Workload {
234
- * baseWorkloadWrapper .Clone ().
271
+ * baseWorkloadWrapperWithAdmission .Clone ().
235
272
Finalizers (SliceControllerName ).
236
273
AdmissionCheck (kueue.AdmissionCheckState {
237
274
Name : kueue .AdmissionCheckReference (baseAdmissionCheckName ),
@@ -255,11 +292,11 @@ func TestWorkloadReconciler(t *testing.T) {
255
292
request : baseRequest ,
256
293
objs : []client.Object {
257
294
baseAdmissionCheckWrapper .DeepCopy (),
258
- baseWorkloadWrapper .Finalizers (SliceControllerName ).DeepCopy (),
295
+ baseWorkloadWrapperWithAdmission .Finalizers (SliceControllerName ).DeepCopy (),
259
296
baseSliceWrapper .Clone ().Forming ().Obj (),
260
297
},
261
298
wantWorkloads : []kueue.Workload {
262
- * baseWorkloadWrapper .Clone ().
299
+ * baseWorkloadWrapperWithAdmission .Clone ().
263
300
Finalizers (SliceControllerName ).
264
301
AdmissionCheck (kueue.AdmissionCheckState {
265
302
Name : kueue .AdmissionCheckReference (baseAdmissionCheckName ),
@@ -275,11 +312,11 @@ func TestWorkloadReconciler(t *testing.T) {
275
312
request : baseRequest ,
276
313
objs : []client.Object {
277
314
baseAdmissionCheckWrapper .DeepCopy (),
278
- baseWorkloadWrapper .Finalizers (SliceControllerName ).DeepCopy (),
315
+ baseWorkloadWrapperWithAdmission .Finalizers (SliceControllerName ).DeepCopy (),
279
316
baseSliceWrapper .Clone ().Ready ().Obj (),
280
317
},
281
318
wantWorkloads : []kueue.Workload {
282
- * baseWorkloadWrapper .Clone ().
319
+ * baseWorkloadWrapperWithAdmission .Clone ().
283
320
Finalizers (SliceControllerName ).
284
321
AdmissionCheck (kueue.AdmissionCheckState {
285
322
Name : kueue .AdmissionCheckReference (baseAdmissionCheckName ),
@@ -303,11 +340,11 @@ func TestWorkloadReconciler(t *testing.T) {
303
340
request : baseRequest ,
304
341
objs : []client.Object {
305
342
baseAdmissionCheckWrapper .DeepCopy (),
306
- baseWorkloadWrapper .Finalizers (SliceControllerName ).DeepCopy (),
343
+ baseWorkloadWrapperWithAdmission .Finalizers (SliceControllerName ).DeepCopy (),
307
344
baseSliceWrapper .Clone ().Degraded ().Obj (),
308
345
},
309
346
wantWorkloads : []kueue.Workload {
310
- * baseWorkloadWrapper .Clone ().
347
+ * baseWorkloadWrapperWithAdmission .Clone ().
311
348
Finalizers (SliceControllerName ).
312
349
AdmissionCheck (kueue.AdmissionCheckState {
313
350
Name : kueue .AdmissionCheckReference (baseAdmissionCheckName ),
@@ -331,11 +368,11 @@ func TestWorkloadReconciler(t *testing.T) {
331
368
request : baseRequest ,
332
369
objs : []client.Object {
333
370
baseAdmissionCheckWrapper .DeepCopy (),
334
- baseWorkloadWrapper .Finalizers (SliceControllerName ).DeepCopy (),
371
+ baseWorkloadWrapperWithAdmission .Finalizers (SliceControllerName ).DeepCopy (),
335
372
baseSliceWrapper .Clone ().Deformed ().Obj (),
336
373
},
337
374
wantWorkloads : []kueue.Workload {
338
- * baseWorkloadWrapper .Clone ().
375
+ * baseWorkloadWrapperWithAdmission .Clone ().
339
376
Finalizers (SliceControllerName ).
340
377
AdmissionCheck (kueue.AdmissionCheckState {
341
378
Name : kueue .AdmissionCheckReference (baseAdmissionCheckName ),
@@ -359,11 +396,11 @@ func TestWorkloadReconciler(t *testing.T) {
359
396
request : baseRequest ,
360
397
objs : []client.Object {
361
398
baseAdmissionCheckWrapper .DeepCopy (),
362
- baseWorkloadWrapper .Finalizers (SliceControllerName ).DeepCopy (),
399
+ baseWorkloadWrapperWithAdmission .Finalizers (SliceControllerName ).DeepCopy (),
363
400
baseSliceWrapper .Clone ().Error ().Obj (),
364
401
},
365
402
wantWorkloads : []kueue.Workload {
366
- * baseWorkloadWrapper .Clone ().
403
+ * baseWorkloadWrapperWithAdmission .Clone ().
367
404
Finalizers (SliceControllerName ).
368
405
AdmissionCheck (kueue.AdmissionCheckState {
369
406
Name : kueue .AdmissionCheckReference (baseAdmissionCheckName ),
@@ -388,11 +425,11 @@ func TestWorkloadReconciler(t *testing.T) {
388
425
objs : []client.Object {
389
426
baseAdmissionCheckWrapper .DeepCopy (),
390
427
baseAdmissionCheckWrapper .Clone ().Name (baseAdmissionCheckName + "2" ).Obj (),
391
- baseWorkloadWrapper .Finalizers (SliceControllerName ).DeepCopy (),
428
+ baseWorkloadWrapperWithAdmission .Finalizers (SliceControllerName ).DeepCopy (),
392
429
baseSliceWrapper .Clone ().Ready ().Obj (),
393
430
},
394
431
wantWorkloads : []kueue.Workload {
395
- * baseWorkloadWrapper .Clone ().
432
+ * baseWorkloadWrapperWithAdmission .Clone ().
396
433
Finalizers (SliceControllerName ).
397
434
AdmissionCheck (kueue.AdmissionCheckState {
398
435
Name : kueue .AdmissionCheckReference (baseAdmissionCheckName ),
0 commit comments