@@ -307,19 +307,40 @@ var _ = SIGDescribe("SchedulerPriorities [Serial]", func() {
307
307
// Apply 10 taints to first node
308
308
nodeName := nodeList .Items [0 ].Name
309
309
310
- ginkgo .By ("Trying to apply 10 (tolerable) taints on the first node." )
310
+ // First, create a set of tolerable taints (+tolerations) for the first node.
311
+ // Generate 10 tolerable taints for the first node (and matching tolerations)
312
+ tolerableTaints := make ([]v1.Taint , 0 )
311
313
var tolerations []v1.Toleration
312
314
for i := 0 ; i < 10 ; i ++ {
313
- testTaint := addRandomTaintToNode (cs , nodeName )
315
+ testTaint := getRandomTaint ()
316
+ tolerableTaints = append (tolerableTaints , testTaint )
314
317
tolerations = append (tolerations , v1.Toleration {Key : testTaint .Key , Value : testTaint .Value , Effect : testTaint .Effect })
315
- defer e2enode .RemoveTaintOffNode (cs , nodeName , * testTaint )
316
318
}
319
+ // Generate 10 intolerable taints for each of the remaining nodes
320
+ intolerableTaints := make (map [string ][]v1.Taint )
321
+ for i := 1 ; i < len (nodeList .Items ); i ++ {
322
+ nodeTaints := make ([]v1.Taint , 0 )
323
+ for i := 0 ; i < 10 ; i ++ {
324
+ nodeTaints = append (nodeTaints , getRandomTaint ())
325
+ }
326
+ intolerableTaints [nodeList .Items [i ].Name ] = nodeTaints
327
+ }
328
+
329
+ // Apply the tolerable taints generated above to the first node
330
+ ginkgo .By ("Trying to apply 10 (tolerable) taints on the first node." )
331
+ // We immediately defer the removal of these taints because addTaintToNode can
332
+ // panic and RemoveTaintsOffNode does not return an error if the taint does not exist.
333
+ defer e2enode .RemoveTaintsOffNode (cs , nodeName , tolerableTaints )
334
+ for _ , taint := range tolerableTaints {
335
+ addTaintToNode (cs , nodeName , taint )
336
+ }
337
+ // Apply the intolerable taints to each of the following nodes
317
338
ginkgo .By ("Adding 10 intolerable taints to all other nodes" )
318
339
for i := 1 ; i < len (nodeList .Items ); i ++ {
319
340
node := nodeList .Items [i ]
320
- for i := 0 ; i < 10 ; i ++ {
321
- testTaint := addRandomTaintToNode ( cs , node .Name )
322
- defer e2enode . RemoveTaintOffNode (cs , node .Name , * testTaint )
341
+ defer e2enode . RemoveTaintsOffNode ( cs , node . Name , intolerableTaints [ node . Name ])
342
+ for _ , taint := range intolerableTaints [ node .Name ] {
343
+ addTaintToNode (cs , node .Name , taint )
323
344
}
324
345
}
325
346
@@ -614,13 +635,15 @@ func createRC(ns, rsName string, replicas int32, rcPodLabels map[string]string,
614
635
return rc
615
636
}
616
637
617
- func addRandomTaintToNode ( cs clientset. Interface , nodeName string ) * v1.Taint {
618
- testTaint := v1.Taint {
619
- Key : fmt .Sprintf ("kubernetes.io/e2e-taint-key-%s" , string (uuid .NewUUID ())),
638
+ func getRandomTaint () v1.Taint {
639
+ return v1.Taint {
640
+ Key : fmt .Sprintf ("kubernetes.io/scheduling-priorities- e2e-taint-key-%s" , string (uuid .NewUUID ())),
620
641
Value : fmt .Sprintf ("testing-taint-value-%s" , string (uuid .NewUUID ())),
621
642
Effect : v1 .TaintEffectPreferNoSchedule ,
622
643
}
644
+ }
645
+
646
+ func addTaintToNode (cs clientset.Interface , nodeName string , testTaint v1.Taint ) {
623
647
e2enode .AddOrUpdateTaintOnNode (cs , nodeName , testTaint )
624
648
framework .ExpectNodeHasTaint (cs , nodeName , & testTaint )
625
- return & testTaint
626
649
}
0 commit comments