File tree Expand file tree Collapse file tree 2 files changed +25
-4
lines changed Expand file tree Collapse file tree 2 files changed +25
-4
lines changed Original file line number Diff line number Diff line change @@ -311,6 +311,27 @@ func nodeSelectorTermsForPolicyList(policies []sriovnetworkv1.SriovNetworkNodePo
311
311
terms = append (terms , nodeSelector )
312
312
}
313
313
314
+ // sorting is needed to keep the daemon spec stable.
315
+ // the policies can come in a random order
316
+ sort .Slice (terms , func (i , j int ) bool {
317
+ expressionsA := terms [i ].MatchExpressions
318
+ expressionsB := terms [j ].MatchExpressions
319
+ if len (expressionsA ) != len (expressionsB ) {
320
+ return len (expressionsA ) < len (expressionsB )
321
+ }
322
+ for k := range expressionsA {
323
+ expressionA := expressionsA [k ]
324
+ expressionB := expressionsB [k ]
325
+ if expressionA .Key != expressionB .Key {
326
+ return expressionA .Key < expressionB .Key
327
+ }
328
+ if expressionA .Values [0 ] != expressionB .Values [0 ] {
329
+ return expressionA .Values [0 ] != expressionB .Values [0 ]
330
+ }
331
+ }
332
+ return true
333
+ })
334
+
314
335
return terms
315
336
}
316
337
Original file line number Diff line number Diff line change @@ -64,17 +64,17 @@ func TestNodeSelectorMerge(t *testing.T) {
64
64
MatchExpressions : []corev1.NodeSelectorRequirement {
65
65
{
66
66
Operator : corev1 .NodeSelectorOpIn ,
67
- Key : "foo " ,
68
- Values : []string {"bar " },
67
+ Key : "bb " ,
68
+ Values : []string {"cc " },
69
69
},
70
70
},
71
71
},
72
72
{
73
73
MatchExpressions : []corev1.NodeSelectorRequirement {
74
74
{
75
75
Operator : corev1 .NodeSelectorOpIn ,
76
- Key : "bb " ,
77
- Values : []string {"cc " },
76
+ Key : "foo " ,
77
+ Values : []string {"bar " },
78
78
},
79
79
},
80
80
},
You can’t perform that action at this time.
0 commit comments