@@ -165,6 +165,9 @@ func TestPodScanner(t *testing.T) {
165
165
},
166
166
},
167
167
},
168
+ Status : corev1.PodStatus {
169
+ QOSClass : corev1 .PodQOSGuaranteed ,
170
+ },
168
171
}
169
172
170
173
fakeCli := fakeclient .NewSimpleClientset (pod )
@@ -280,6 +283,9 @@ func TestPodScanner(t *testing.T) {
280
283
},
281
284
},
282
285
},
286
+ Status : corev1.PodStatus {
287
+ QOSClass : corev1 .PodQOSGuaranteed ,
288
+ },
283
289
}
284
290
285
291
fakeCli = fakeclient .NewSimpleClientset (pod )
@@ -368,6 +374,9 @@ func TestPodScanner(t *testing.T) {
368
374
},
369
375
},
370
376
},
377
+ Status : corev1.PodStatus {
378
+ QOSClass : corev1 .PodQOSGuaranteed ,
379
+ },
371
380
}
372
381
fakeCli = fakeclient .NewSimpleClientset (pod )
373
382
resScan .(* PodResourcesScanner ).k8sClient = fakeCli
@@ -458,6 +467,9 @@ func TestPodScanner(t *testing.T) {
458
467
},
459
468
},
460
469
},
470
+ Status : corev1.PodStatus {
471
+ QOSClass : corev1 .PodQOSGuaranteed ,
472
+ },
461
473
}
462
474
fakeCli = fakeclient .NewSimpleClientset (pod )
463
475
resScan .(* PodResourcesScanner ).k8sClient = fakeCli
@@ -536,6 +548,9 @@ func TestPodScanner(t *testing.T) {
536
548
},
537
549
},
538
550
},
551
+ Status : corev1.PodStatus {
552
+ QOSClass : corev1 .PodQOSGuaranteed ,
553
+ },
539
554
}
540
555
fakeCli = fakeclient .NewSimpleClientset (pod )
541
556
resScan .(* PodResourcesScanner ).k8sClient = fakeCli
@@ -628,6 +643,9 @@ func TestPodScanner(t *testing.T) {
628
643
},
629
644
},
630
645
},
646
+ Status : corev1.PodStatus {
647
+ QOSClass : corev1 .PodQOSGuaranteed ,
648
+ },
631
649
}
632
650
fakeCli = fakeclient .NewSimpleClientset (pod )
633
651
resScan .(* PodResourcesScanner ).k8sClient = fakeCli
@@ -825,6 +843,9 @@ func TestPodScanner(t *testing.T) {
825
843
},
826
844
},
827
845
},
846
+ Status : corev1.PodStatus {
847
+ QOSClass : corev1 .PodQOSGuaranteed ,
848
+ },
828
849
}
829
850
fakeCli = fakeclient .NewSimpleClientset (pod )
830
851
resScan .(* PodResourcesScanner ).k8sClient = fakeCli
@@ -1029,6 +1050,9 @@ func TestPodScanner(t *testing.T) {
1029
1050
},
1030
1051
},
1031
1052
},
1053
+ Status : corev1.PodStatus {
1054
+ QOSClass : corev1 .PodQOSGuaranteed ,
1055
+ },
1032
1056
}
1033
1057
fakeCli = fakeclient .NewSimpleClientset (pod )
1034
1058
resScan .(* PodResourcesScanner ).k8sClient = fakeCli
@@ -1113,6 +1137,9 @@ func TestPodScanner(t *testing.T) {
1113
1137
},
1114
1138
},
1115
1139
},
1140
+ Status : corev1.PodStatus {
1141
+ QOSClass : corev1 .PodQOSGuaranteed ,
1142
+ },
1116
1143
}
1117
1144
fakeCli = fakeclient .NewSimpleClientset (pod )
1118
1145
resScan .(* PodResourcesScanner ).k8sClient = fakeCli
@@ -1145,5 +1172,129 @@ func TestPodScanner(t *testing.T) {
1145
1172
So (reflect .DeepEqual (res .PodResources , expected ), ShouldBeTrue )
1146
1173
})
1147
1174
1175
+ Convey ("When I successfully get valid response for guaranteed pods with not cpu pin containers" , func () {
1176
+ resp := & v1.ListPodResourcesResponse {
1177
+ PodResources : []* v1.PodResources {
1178
+ {
1179
+ Name : "test-pod-0" ,
1180
+ Namespace : "pod-res-test" ,
1181
+ Containers : []* v1.ContainerResources {
1182
+ {
1183
+ Name : "test-cnt-0" ,
1184
+ CpuIds : []int64 {0 , 1 },
1185
+ Devices : []* v1.ContainerDevices {
1186
+ {
1187
+ ResourceName : "fake.io/resource" ,
1188
+ DeviceIds : []string {"devA" },
1189
+ },
1190
+ },
1191
+ },
1192
+ {
1193
+ Name : "test-cnt-1" ,
1194
+ Devices : []* v1.ContainerDevices {
1195
+ {
1196
+ ResourceName : "fake.io/resource" ,
1197
+ DeviceIds : []string {"devA" },
1198
+ },
1199
+ },
1200
+ },
1201
+ },
1202
+ },
1203
+ },
1204
+ }
1205
+ mockPodResClient .On ("List" , mock .AnythingOfType ("*context.timerCtx" ), mock .AnythingOfType ("*v1.ListPodResourcesRequest" )).Return (resp , nil )
1206
+ pod := & corev1.Pod {
1207
+ TypeMeta : metav1.TypeMeta {
1208
+ Kind : "Pod" ,
1209
+ APIVersion : "v1" ,
1210
+ },
1211
+ ObjectMeta : metav1.ObjectMeta {
1212
+ Name : "test-pod-0" ,
1213
+ Namespace : "pod-res-test" ,
1214
+ },
1215
+ Spec : corev1.PodSpec {
1216
+ Containers : []corev1.Container {
1217
+ {
1218
+ Name : "test-cnt-0" ,
1219
+ Resources : corev1.ResourceRequirements {
1220
+ Requests : corev1.ResourceList {
1221
+
1222
+ corev1 .ResourceName ("fake.io/resource" ): * resource .NewQuantity (1 , resource .DecimalSI ),
1223
+ corev1 .ResourceMemory : * resource .NewQuantity (100 , resource .DecimalSI ),
1224
+ corev1 .ResourceCPU : resource .MustParse ("2" ),
1225
+ },
1226
+ Limits : corev1.ResourceList {
1227
+ corev1 .ResourceName ("fake.io/resource" ): * resource .NewQuantity (1 , resource .DecimalSI ),
1228
+ corev1 .ResourceMemory : * resource .NewQuantity (100 , resource .DecimalSI ),
1229
+ corev1 .ResourceCPU : resource .MustParse ("2" ),
1230
+ },
1231
+ },
1232
+ },
1233
+ {
1234
+ Name : "test-cnt-1" ,
1235
+ Resources : corev1.ResourceRequirements {
1236
+ Requests : corev1.ResourceList {
1237
+
1238
+ corev1 .ResourceName ("fake.io/resource" ): * resource .NewQuantity (1 , resource .DecimalSI ),
1239
+ corev1 .ResourceMemory : * resource .NewQuantity (100 , resource .DecimalSI ),
1240
+ corev1 .ResourceCPU : resource .MustParse ("1500m" ),
1241
+ },
1242
+ Limits : corev1.ResourceList {
1243
+ corev1 .ResourceName ("fake.io/resource" ): * resource .NewQuantity (1 , resource .DecimalSI ),
1244
+ corev1 .ResourceMemory : * resource .NewQuantity (100 , resource .DecimalSI ),
1245
+ corev1 .ResourceCPU : resource .MustParse ("1500m" ),
1246
+ },
1247
+ },
1248
+ },
1249
+ },
1250
+ },
1251
+ Status : corev1.PodStatus {
1252
+ QOSClass : corev1 .PodQOSGuaranteed ,
1253
+ },
1254
+ }
1255
+ fakeCli = fakeclient .NewSimpleClientset (pod )
1256
+ resScan .(* PodResourcesScanner ).k8sClient = fakeCli
1257
+ res , err := resScan .Scan ()
1258
+
1259
+ Convey ("Error is nil" , func () {
1260
+ So (err , ShouldBeNil )
1261
+ })
1262
+ Convey ("Return PodResources should have values" , func () {
1263
+ So (len (res .PodResources ), ShouldBeGreaterThan , 0 )
1264
+ })
1265
+
1266
+ expected := []PodResources {
1267
+ {
1268
+ Name : "test-pod-0" ,
1269
+ Namespace : "pod-res-test" ,
1270
+ Containers : []ContainerResources {
1271
+ {
1272
+ Name : "test-cnt-0" ,
1273
+ Resources : []ResourceInfo {
1274
+ {
1275
+ Name : corev1 .ResourceCPU ,
1276
+ Data : []string {"0" , "1" },
1277
+ },
1278
+ {
1279
+ Name : "fake.io/resource" ,
1280
+ Data : []string {"devA" },
1281
+ },
1282
+ },
1283
+ },
1284
+ {
1285
+ Name : "test-cnt-1" ,
1286
+ Resources : []ResourceInfo {
1287
+ {
1288
+ Name : "fake.io/resource" ,
1289
+ Data : []string {"devA" },
1290
+ },
1291
+ },
1292
+ },
1293
+ },
1294
+ },
1295
+ }
1296
+ So (reflect .DeepEqual (res .PodResources , expected ), ShouldBeTrue )
1297
+ })
1298
+
1148
1299
})
1149
1300
}
0 commit comments