85
85
epochTime6 = metav1 .NewTime (time .Unix (0 , 6 ))
86
86
)
87
87
88
- func mergeObjs (pod * v1.Pod , pods []* v1.Pod ) []runtime.Object {
89
- var objs []runtime.Object
90
- if pod != nil {
91
- objs = append (objs , pod )
92
- }
93
- for i := range pods {
94
- objs = append (objs , pods [i ])
95
- }
96
- return objs
97
- }
98
-
99
88
func TestPostFilter (t * testing.T ) {
100
89
onePodRes := map [v1.ResourceName ]string {v1 .ResourcePods : "1" }
101
90
tests := []struct {
@@ -110,9 +99,9 @@ func TestPostFilter(t *testing.T) {
110
99
}{
111
100
{
112
101
name : "pod with higher priority can be made schedulable" ,
113
- pod : st .MakePod ().Name ("p" ).UID ("p" ).Priority (highPriority ).Obj (),
102
+ pod : st .MakePod ().Name ("p" ).UID ("p" ).Namespace ( v1 . NamespaceDefault ). Priority (highPriority ).Obj (),
114
103
pods : []* v1.Pod {
115
- st .MakePod ().Name ("p1" ).UID ("p1" ).Node ("node1" ).Obj (),
104
+ st .MakePod ().Name ("p1" ).UID ("p1" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Obj (),
116
105
},
117
106
nodes : []* v1.Node {
118
107
st .MakeNode ().Name ("node1" ).Capacity (onePodRes ).Obj (),
@@ -125,9 +114,9 @@ func TestPostFilter(t *testing.T) {
125
114
},
126
115
{
127
116
name : "pod with tied priority is still unschedulable" ,
128
- pod : st .MakePod ().Name ("p" ).UID ("p" ).Obj (),
117
+ pod : st .MakePod ().Name ("p" ).UID ("p" ).Namespace ( v1 . NamespaceDefault ). Obj (),
129
118
pods : []* v1.Pod {
130
- st .MakePod ().Name ("p1" ).UID ("p1" ).Node ("node1" ).Obj (),
119
+ st .MakePod ().Name ("p1" ).UID ("p1" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Obj (),
131
120
},
132
121
nodes : []* v1.Node {
133
122
st .MakeNode ().Name ("node1" ).Capacity (onePodRes ).Obj (),
@@ -140,9 +129,9 @@ func TestPostFilter(t *testing.T) {
140
129
},
141
130
{
142
131
name : "preemption should respect filteredNodesStatuses" ,
143
- pod : st .MakePod ().Name ("p" ).UID ("p" ).Priority (highPriority ).Obj (),
132
+ pod : st .MakePod ().Name ("p" ).UID ("p" ).Namespace ( v1 . NamespaceDefault ). Priority (highPriority ).Obj (),
144
133
pods : []* v1.Pod {
145
- st .MakePod ().Name ("p1" ).UID ("p1" ).Node ("node1" ).Obj (),
134
+ st .MakePod ().Name ("p1" ).UID ("p1" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Obj (),
146
135
},
147
136
nodes : []* v1.Node {
148
137
st .MakeNode ().Name ("node1" ).Capacity (onePodRes ).Obj (),
@@ -155,10 +144,10 @@ func TestPostFilter(t *testing.T) {
155
144
},
156
145
{
157
146
name : "pod can be made schedulable on one node" ,
158
- pod : st .MakePod ().Name ("p" ).UID ("p" ).Priority (midPriority ).Obj (),
147
+ pod : st .MakePod ().Name ("p" ).UID ("p" ).Namespace ( v1 . NamespaceDefault ). Priority (midPriority ).Obj (),
159
148
pods : []* v1.Pod {
160
- st .MakePod ().Name ("p1" ).UID ("p1" ).Priority (highPriority ).Node ("node1" ).Obj (),
161
- st .MakePod ().Name ("p2" ).UID ("p2" ).Priority (lowPriority ).Node ("node2" ).Obj (),
149
+ st .MakePod ().Name ("p1" ).UID ("p1" ).Namespace ( v1 . NamespaceDefault ). Priority (highPriority ).Node ("node1" ).Obj (),
150
+ st .MakePod ().Name ("p2" ).UID ("p2" ).Namespace ( v1 . NamespaceDefault ). Priority (lowPriority ).Node ("node2" ).Obj (),
162
151
},
163
152
nodes : []* v1.Node {
164
153
st .MakeNode ().Name ("node1" ).Capacity (onePodRes ).Obj (),
@@ -173,10 +162,10 @@ func TestPostFilter(t *testing.T) {
173
162
},
174
163
{
175
164
name : "preemption result filtered out by extenders" ,
176
- pod : st .MakePod ().Name ("p" ).UID ("p" ).Priority (highPriority ).Obj (),
165
+ pod : st .MakePod ().Name ("p" ).UID ("p" ).Namespace ( v1 . NamespaceDefault ). Priority (highPriority ).Obj (),
177
166
pods : []* v1.Pod {
178
- st .MakePod ().Name ("p1" ).UID ("p1" ).Node ("node1" ).Obj (),
179
- st .MakePod ().Name ("p2" ).UID ("p2" ).Node ("node2" ).Obj (),
167
+ st .MakePod ().Name ("p1" ).UID ("p1" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Obj (),
168
+ st .MakePod ().Name ("p2" ).UID ("p2" ).Namespace ( v1 . NamespaceDefault ). Node ("node2" ).Obj (),
180
169
},
181
170
nodes : []* v1.Node {
182
171
st .MakeNode ().Name ("node1" ).Capacity (onePodRes ).Obj (),
@@ -196,9 +185,18 @@ func TestPostFilter(t *testing.T) {
196
185
197
186
for _ , tt := range tests {
198
187
t .Run (tt .name , func (t * testing.T ) {
199
- apiObjs := mergeObjs (tt .pod , tt .pods /*, tt.nodes */ )
200
- cs := clientsetfake .NewSimpleClientset (apiObjs ... )
188
+ cs := clientsetfake .NewSimpleClientset ()
201
189
informerFactory := informers .NewSharedInformerFactory (cs , 0 )
190
+ podInformer := informerFactory .Core ().V1 ().Pods ().Informer ()
191
+ podInformer .GetStore ().Add (tt .pod )
192
+ for i := range tt .pods {
193
+ podInformer .GetStore ().Add (tt .pods [i ])
194
+ }
195
+ // As we use a bare clientset above, it's needed to add a reactor here
196
+ // to not fail Victims deletion logic.
197
+ cs .PrependReactor ("delete" , "pods" , func (action clienttesting.Action ) (bool , runtime.Object , error ) {
198
+ return true , nil , nil
199
+ })
202
200
// Register NodeResourceFit as the Filter & PreFilter plugin.
203
201
registeredPlugins := []st.RegisterPluginFunc {
204
202
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
@@ -220,17 +218,18 @@ func TestPostFilter(t *testing.T) {
220
218
if err != nil {
221
219
t .Fatal (err )
222
220
}
221
+ p := DefaultPreemption {
222
+ fh : f ,
223
+ podLister : informerFactory .Core ().V1 ().Pods ().Lister (),
224
+ pdbLister : getPDBLister (informerFactory ),
225
+ }
223
226
224
227
state := framework .NewCycleState ()
225
228
// Ensure <state> is populated.
226
229
if status := f .RunPreFilterPlugins (context .Background (), state , tt .pod ); ! status .IsSuccess () {
227
230
t .Errorf ("Unexpected PreFilter Status: %v" , status )
228
231
}
229
232
230
- p := DefaultPreemption {
231
- fh : f ,
232
- pdbLister : getPDBLister (informerFactory ),
233
- }
234
233
gotResult , gotStatus := p .PostFilter (context .TODO (), state , tt .pod , tt .filteredNodesStatuses )
235
234
if ! reflect .DeepEqual (gotStatus , tt .wantStatus ) {
236
235
t .Errorf ("Status does not match: %v, want: %v" , gotStatus , tt .wantStatus )
@@ -1105,7 +1104,7 @@ func TestPreempt(t *testing.T) {
1105
1104
}{
1106
1105
{
1107
1106
name : "basic preemption logic" ,
1108
- pod : st .MakePod ().Name ("p" ).UID ("p" ).Priority (highPriority ).Req (veryLargeRes ).PreemptionPolicy (v1 .PreemptLowerPriority ).Obj (),
1107
+ pod : st .MakePod ().Name ("p" ).UID ("p" ).Namespace ( v1 . NamespaceDefault ). Priority (highPriority ).Req (veryLargeRes ).PreemptionPolicy (v1 .PreemptLowerPriority ).Obj (),
1109
1108
pods : []* v1.Pod {
1110
1109
st .MakePod ().Name ("p1.1" ).UID ("p1.1" ).Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1111
1110
st .MakePod ().Name ("p1.2" ).UID ("p1.2" ).Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
@@ -1119,16 +1118,16 @@ func TestPreempt(t *testing.T) {
1119
1118
},
1120
1119
{
1121
1120
name : "preemption for topology spread constraints" ,
1122
- pod : st .MakePod ().Name ("p" ).UID ("p" ).Label ("foo" , "" ).Priority (highPriority ).
1121
+ pod : st .MakePod ().Name ("p" ).UID ("p" ).Namespace ( v1 . NamespaceDefault ). Label ("foo" , "" ).Priority (highPriority ).
1123
1122
SpreadConstraint (1 , "zone" , v1 .DoNotSchedule , st .MakeLabelSelector ().Exists ("foo" ).Obj ()).
1124
1123
SpreadConstraint (1 , "hostname" , v1 .DoNotSchedule , st .MakeLabelSelector ().Exists ("foo" ).Obj ()).
1125
1124
Obj (),
1126
1125
pods : []* v1.Pod {
1127
- st .MakePod ().Name ("p-a1" ).UID ("p-a1" ).Node ("node-a" ).Label ("foo" , "" ).Priority (highPriority ).Obj (),
1128
- st .MakePod ().Name ("p-a2" ).UID ("p-a2" ).Node ("node-a" ).Label ("foo" , "" ).Priority (highPriority ).Obj (),
1129
- st .MakePod ().Name ("p-b1" ).UID ("p-b1" ).Node ("node-b" ).Label ("foo" , "" ).Priority (lowPriority ).Obj (),
1130
- st .MakePod ().Name ("p-x1" ).UID ("p-x1" ).Node ("node-x" ).Label ("foo" , "" ).Priority (highPriority ).Obj (),
1131
- st .MakePod ().Name ("p-x2" ).UID ("p-x2" ).Node ("node-x" ).Label ("foo" , "" ).Priority (highPriority ).Obj (),
1126
+ st .MakePod ().Name ("p-a1" ).UID ("p-a1" ).Namespace ( v1 . NamespaceDefault ). Node ("node-a" ).Label ("foo" , "" ).Priority (highPriority ).Obj (),
1127
+ st .MakePod ().Name ("p-a2" ).UID ("p-a2" ).Namespace ( v1 . NamespaceDefault ). Node ("node-a" ).Label ("foo" , "" ).Priority (highPriority ).Obj (),
1128
+ st .MakePod ().Name ("p-b1" ).UID ("p-b1" ).Namespace ( v1 . NamespaceDefault ). Node ("node-b" ).Label ("foo" , "" ).Priority (lowPriority ).Obj (),
1129
+ st .MakePod ().Name ("p-x1" ).UID ("p-x1" ).Namespace ( v1 . NamespaceDefault ). Node ("node-x" ).Label ("foo" , "" ).Priority (highPriority ).Obj (),
1130
+ st .MakePod ().Name ("p-x2" ).UID ("p-x2" ).Namespace ( v1 . NamespaceDefault ). Node ("node-x" ).Label ("foo" , "" ).Priority (highPriority ).Obj (),
1132
1131
},
1133
1132
nodeNames : []string {"node-a/zone1" , "node-b/zone1" , "node-x/zone2" },
1134
1133
registerPlugin : st .RegisterPluginAsExtensions (podtopologyspread .Name , podtopologyspread .New , "PreFilter" , "Filter" ),
@@ -1137,11 +1136,11 @@ func TestPreempt(t *testing.T) {
1137
1136
},
1138
1137
{
1139
1138
name : "Scheduler extenders allow only node1, otherwise node3 would have been chosen" ,
1140
- pod : st .MakePod ().Name ("p" ).UID ("p" ).Priority (highPriority ).Req (veryLargeRes ).PreemptionPolicy (v1 .PreemptLowerPriority ).Obj (),
1139
+ pod : st .MakePod ().Name ("p" ).UID ("p" ).Namespace ( v1 . NamespaceDefault ). Priority (highPriority ).Req (veryLargeRes ).PreemptionPolicy (v1 .PreemptLowerPriority ).Obj (),
1141
1140
pods : []* v1.Pod {
1142
- st .MakePod ().Name ("p1.1" ).UID ("p1.1" ).Node ("node1" ).Priority (midPriority ).Req (smallRes ).Obj (),
1143
- st .MakePod ().Name ("p1.2" ).UID ("p1.2" ).Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1144
- st .MakePod ().Name ("p2.1" ).UID ("p2.1" ).Node ("node3" ).Priority (midPriority ).Req (largeRes ).Obj (),
1141
+ st .MakePod ().Name ("p1.1" ).UID ("p1.1" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Priority (midPriority ).Req (smallRes ).Obj (),
1142
+ st .MakePod ().Name ("p1.2" ).UID ("p1.2" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1143
+ st .MakePod ().Name ("p2.1" ).UID ("p2.1" ).Namespace ( v1 . NamespaceDefault ). Node ("node3" ).Priority (midPriority ).Req (largeRes ).Obj (),
1145
1144
},
1146
1145
nodeNames : []string {"node1" , "node2" , "node3" },
1147
1146
extenders : []* st.FakeExtender {
@@ -1154,11 +1153,11 @@ func TestPreempt(t *testing.T) {
1154
1153
},
1155
1154
{
1156
1155
name : "Scheduler extenders do not allow any preemption" ,
1157
- pod : st .MakePod ().Name ("p" ).UID ("p" ).Priority (highPriority ).Req (veryLargeRes ).PreemptionPolicy (v1 .PreemptLowerPriority ).Obj (),
1156
+ pod : st .MakePod ().Name ("p" ).UID ("p" ).Namespace ( v1 . NamespaceDefault ). Priority (highPriority ).Req (veryLargeRes ).PreemptionPolicy (v1 .PreemptLowerPriority ).Obj (),
1158
1157
pods : []* v1.Pod {
1159
- st .MakePod ().Name ("p1.1" ).UID ("p1.1" ).Node ("node1" ).Priority (midPriority ).Req (smallRes ).Obj (),
1160
- st .MakePod ().Name ("p1.2" ).UID ("p1.2" ).Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1161
- st .MakePod ().Name ("p2.1" ).UID ("p2.1" ).Node ("node2" ).Priority (midPriority ).Req (largeRes ).Obj (),
1158
+ st .MakePod ().Name ("p1.1" ).UID ("p1.1" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Priority (midPriority ).Req (smallRes ).Obj (),
1159
+ st .MakePod ().Name ("p1.2" ).UID ("p1.2" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1160
+ st .MakePod ().Name ("p2.1" ).UID ("p2.1" ).Namespace ( v1 . NamespaceDefault ). Node ("node2" ).Priority (midPriority ).Req (largeRes ).Obj (),
1162
1161
},
1163
1162
nodeNames : []string {"node1" , "node2" , "node3" },
1164
1163
extenders : []* st.FakeExtender {
@@ -1170,11 +1169,11 @@ func TestPreempt(t *testing.T) {
1170
1169
},
1171
1170
{
1172
1171
name : "One scheduler extender allows only node1, the other returns error but ignorable. Only node1 would be chosen" ,
1173
- pod : st .MakePod ().Name ("p" ).UID ("p" ).Priority (highPriority ).Req (veryLargeRes ).PreemptionPolicy (v1 .PreemptLowerPriority ).Obj (),
1172
+ pod : st .MakePod ().Name ("p" ).UID ("p" ).Namespace ( v1 . NamespaceDefault ). Priority (highPriority ).Req (veryLargeRes ).PreemptionPolicy (v1 .PreemptLowerPriority ).Obj (),
1174
1173
pods : []* v1.Pod {
1175
- st .MakePod ().Name ("p1.1" ).UID ("p1.1" ).Node ("node1" ).Priority (midPriority ).Req (smallRes ).Obj (),
1176
- st .MakePod ().Name ("p1.2" ).UID ("p1.2" ).Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1177
- st .MakePod ().Name ("p2.1" ).UID ("p2.1" ).Node ("node2" ).Priority (midPriority ).Req (largeRes ).Obj (),
1174
+ st .MakePod ().Name ("p1.1" ).UID ("p1.1" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Priority (midPriority ).Req (smallRes ).Obj (),
1175
+ st .MakePod ().Name ("p1.2" ).UID ("p1.2" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1176
+ st .MakePod ().Name ("p2.1" ).UID ("p2.1" ).Namespace ( v1 . NamespaceDefault ). Node ("node2" ).Priority (midPriority ).Req (largeRes ).Obj (),
1178
1177
},
1179
1178
nodeNames : []string {"node1" , "node2" , "node3" },
1180
1179
extenders : []* st.FakeExtender {
@@ -1187,11 +1186,11 @@ func TestPreempt(t *testing.T) {
1187
1186
},
1188
1187
{
1189
1188
name : "One scheduler extender allows only node1, but it is not interested in given pod, otherwise node1 would have been chosen" ,
1190
- pod : st .MakePod ().Name ("p" ).UID ("p" ).Priority (highPriority ).Req (veryLargeRes ).PreemptionPolicy (v1 .PreemptLowerPriority ).Obj (),
1189
+ pod : st .MakePod ().Name ("p" ).UID ("p" ).Namespace ( v1 . NamespaceDefault ). Priority (highPriority ).Req (veryLargeRes ).PreemptionPolicy (v1 .PreemptLowerPriority ).Obj (),
1191
1190
pods : []* v1.Pod {
1192
- st .MakePod ().Name ("p1.1" ).UID ("p1.1" ).Node ("node1" ).Priority (midPriority ).Req (smallRes ).Obj (),
1193
- st .MakePod ().Name ("p1.2" ).UID ("p1.2" ).Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1194
- st .MakePod ().Name ("p2.1" ).UID ("p2.1" ).Node ("node2" ).Priority (midPriority ).Req (largeRes ).Obj (),
1191
+ st .MakePod ().Name ("p1.1" ).UID ("p1.1" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Priority (midPriority ).Req (smallRes ).Obj (),
1192
+ st .MakePod ().Name ("p1.2" ).UID ("p1.2" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1193
+ st .MakePod ().Name ("p2.1" ).UID ("p2.1" ).Namespace ( v1 . NamespaceDefault ). Node ("node2" ).Priority (midPriority ).Req (largeRes ).Obj (),
1195
1194
},
1196
1195
nodeNames : []string {"node1" , "node2" },
1197
1196
extenders : []* st.FakeExtender {
@@ -1205,12 +1204,12 @@ func TestPreempt(t *testing.T) {
1205
1204
},
1206
1205
{
1207
1206
name : "no preempting in pod" ,
1208
- pod : st .MakePod ().Name ("p" ).UID ("p" ).Priority (highPriority ).Req (veryLargeRes ).PreemptionPolicy (v1 .PreemptNever ).Obj (),
1207
+ pod : st .MakePod ().Name ("p" ).UID ("p" ).Namespace ( v1 . NamespaceDefault ). Priority (highPriority ).Req (veryLargeRes ).PreemptionPolicy (v1 .PreemptNever ).Obj (),
1209
1208
pods : []* v1.Pod {
1210
- st .MakePod ().Name ("p1.1" ).UID ("p1.1" ).Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1211
- st .MakePod ().Name ("p1.2" ).UID ("p1.2" ).Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1212
- st .MakePod ().Name ("p2.1" ).UID ("p2.1" ).Node ("node2" ).Priority (highPriority ).Req (largeRes ).Obj (),
1213
- st .MakePod ().Name ("p3.1" ).UID ("p3.1" ).Node ("node3" ).Priority (midPriority ).Req (mediumRes ).Obj (),
1209
+ st .MakePod ().Name ("p1.1" ).UID ("p1.1" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1210
+ st .MakePod ().Name ("p1.2" ).UID ("p1.2" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1211
+ st .MakePod ().Name ("p2.1" ).UID ("p2.1" ).Namespace ( v1 . NamespaceDefault ). Node ("node2" ).Priority (highPriority ).Req (largeRes ).Obj (),
1212
+ st .MakePod ().Name ("p3.1" ).UID ("p3.1" ).Namespace ( v1 . NamespaceDefault ). Node ("node3" ).Priority (midPriority ).Req (mediumRes ).Obj (),
1214
1213
},
1215
1214
nodeNames : []string {"node1" , "node2" , "node3" },
1216
1215
registerPlugin : st .RegisterPluginAsExtensions (noderesources .FitName , noderesources .NewFit , "Filter" , "PreFilter" ),
@@ -1219,12 +1218,12 @@ func TestPreempt(t *testing.T) {
1219
1218
},
1220
1219
{
1221
1220
name : "PreemptionPolicy is nil" ,
1222
- pod : st .MakePod ().Name ("p" ).UID ("p" ).Priority (highPriority ).Req (veryLargeRes ).Obj (),
1221
+ pod : st .MakePod ().Name ("p" ).UID ("p" ).Namespace ( v1 . NamespaceDefault ). Priority (highPriority ).Req (veryLargeRes ).Obj (),
1223
1222
pods : []* v1.Pod {
1224
- st .MakePod ().Name ("p1.1" ).UID ("p1.1" ).Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1225
- st .MakePod ().Name ("p1.2" ).UID ("p1.2" ).Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1226
- st .MakePod ().Name ("p2.1" ).UID ("p2.1" ).Node ("node2" ).Priority (highPriority ).Req (largeRes ).Obj (),
1227
- st .MakePod ().Name ("p3.1" ).UID ("p3.1" ).Node ("node3" ).Priority (midPriority ).Req (mediumRes ).Obj (),
1223
+ st .MakePod ().Name ("p1.1" ).UID ("p1.1" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1224
+ st .MakePod ().Name ("p1.2" ).UID ("p1.2" ).Namespace ( v1 . NamespaceDefault ). Node ("node1" ).Priority (lowPriority ).Req (smallRes ).Obj (),
1225
+ st .MakePod ().Name ("p2.1" ).UID ("p2.1" ).Namespace ( v1 . NamespaceDefault ). Node ("node2" ).Priority (highPriority ).Req (largeRes ).Obj (),
1226
+ st .MakePod ().Name ("p3.1" ).UID ("p3.1" ).Namespace ( v1 . NamespaceDefault ). Node ("node3" ).Priority (midPriority ).Req (mediumRes ).Obj (),
1228
1227
},
1229
1228
nodeNames : []string {"node1" , "node2" , "node3" },
1230
1229
registerPlugin : st .RegisterPluginAsExtensions (noderesources .FitName , noderesources .NewFit , "Filter" , "PreFilter" ),
@@ -1236,8 +1235,14 @@ func TestPreempt(t *testing.T) {
1236
1235
labelKeys := []string {"hostname" , "zone" , "region" }
1237
1236
for _ , test := range tests {
1238
1237
t .Run (test .name , func (t * testing.T ) {
1239
- apiObjs := mergeObjs (test .pod , test .pods )
1240
- client := clientsetfake .NewSimpleClientset (apiObjs ... )
1238
+ client := clientsetfake .NewSimpleClientset ()
1239
+ informerFactory := informers .NewSharedInformerFactory (client , 0 )
1240
+ podInformer := informerFactory .Core ().V1 ().Pods ().Informer ()
1241
+ podInformer .GetStore ().Add (test .pod )
1242
+ for i := range test .pods {
1243
+ podInformer .GetStore ().Add (test .pods [i ])
1244
+ }
1245
+
1241
1246
deletedPodNames := make (sets.String )
1242
1247
client .PrependReactor ("delete" , "pods" , func (action clienttesting.Action ) (bool , runtime.Object , error ) {
1243
1248
deletedPodNames .Insert (action .(clienttesting.DeleteAction ).GetName ())
@@ -1277,7 +1282,6 @@ func TestPreempt(t *testing.T) {
1277
1282
extenders = append (extenders , extender )
1278
1283
}
1279
1284
1280
- informerFactory := informers .NewSharedInformerFactory (client , 0 )
1281
1285
fwk , err := st .NewFramework (
1282
1286
[]st.RegisterPluginFunc {
1283
1287
test .registerPlugin ,
@@ -1304,6 +1308,7 @@ func TestPreempt(t *testing.T) {
1304
1308
// Call preempt and check the expected results.
1305
1309
pl := DefaultPreemption {
1306
1310
fh : fwk ,
1311
+ podLister : informerFactory .Core ().V1 ().Pods ().Lister (),
1307
1312
pdbLister : getPDBLister (informerFactory ),
1308
1313
}
1309
1314
node , err := pl .preempt (context .Background (), state , test .pod , make (framework.NodeToStatusMap ))
@@ -1332,7 +1337,6 @@ func TestPreempt(t *testing.T) {
1332
1337
}
1333
1338
}
1334
1339
test .pod .Status .NominatedNodeName = node
1335
- client .CoreV1 ().Pods (test .pod .Namespace ).Update (context .TODO (), test .pod , metav1.UpdateOptions {})
1336
1340
1337
1341
// Manually set the deleted Pods' deletionTimestamp to non-nil.
1338
1342
for _ , pod := range test .pods {
0 commit comments