@@ -1339,7 +1339,7 @@ func TestSelectNodesForPreemption(t *testing.T) {
1339
1339
name : "a pod that fits on both machines when lower priority pods are preempted" ,
1340
1340
registerPlugins : []st.RegisterPluginFunc {
1341
1341
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1342
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1342
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1343
1343
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1344
1344
},
1345
1345
nodes : []string {"machine1" , "machine2" },
@@ -1354,7 +1354,7 @@ func TestSelectNodesForPreemption(t *testing.T) {
1354
1354
name : "a pod that would fit on the machines, but other pods running are higher priority" ,
1355
1355
registerPlugins : []st.RegisterPluginFunc {
1356
1356
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1357
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1357
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1358
1358
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1359
1359
},
1360
1360
nodes : []string {"machine1" , "machine2" },
@@ -1369,7 +1369,7 @@ func TestSelectNodesForPreemption(t *testing.T) {
1369
1369
name : "medium priority pod is preempted, but lower priority one stays as it is small" ,
1370
1370
registerPlugins : []st.RegisterPluginFunc {
1371
1371
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1372
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1372
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1373
1373
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1374
1374
},
1375
1375
nodes : []string {"machine1" , "machine2" },
@@ -1385,7 +1385,7 @@ func TestSelectNodesForPreemption(t *testing.T) {
1385
1385
name : "mixed priority pods are preempted" ,
1386
1386
registerPlugins : []st.RegisterPluginFunc {
1387
1387
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1388
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1388
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1389
1389
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1390
1390
},
1391
1391
nodes : []string {"machine1" , "machine2" },
@@ -1403,7 +1403,7 @@ func TestSelectNodesForPreemption(t *testing.T) {
1403
1403
name : "mixed priority pods are preempted, pick later StartTime one when priorities are equal" ,
1404
1404
registerPlugins : []st.RegisterPluginFunc {
1405
1405
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1406
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1406
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1407
1407
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1408
1408
},
1409
1409
nodes : []string {"machine1" , "machine2" },
@@ -1421,8 +1421,8 @@ func TestSelectNodesForPreemption(t *testing.T) {
1421
1421
name : "pod with anti-affinity is preempted" ,
1422
1422
registerPlugins : []st.RegisterPluginFunc {
1423
1423
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1424
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1425
- st .RegisterFilterPlugin (interpodaffinity .Name , interpodaffinity .New ),
1424
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1425
+ st .RegisterPluginAsExtensions (interpodaffinity .Name , 1 , interpodaffinity .New , "Filter" , "PreFilter" ),
1426
1426
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1427
1427
},
1428
1428
nodes : []string {"machine1" , "machine2" },
@@ -1541,7 +1541,7 @@ func TestSelectNodesForPreemption(t *testing.T) {
1541
1541
name : "get Unschedulable in the preemption phase when the filter plugins filtering the nodes" ,
1542
1542
registerPlugins : []st.RegisterPluginFunc {
1543
1543
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1544
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1544
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1545
1545
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1546
1546
},
1547
1547
nodes : []string {"machine1" , "machine2" },
@@ -1557,7 +1557,7 @@ func TestSelectNodesForPreemption(t *testing.T) {
1557
1557
name : "preemption with violation of same pdb" ,
1558
1558
registerPlugins : []st.RegisterPluginFunc {
1559
1559
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1560
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1560
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1561
1561
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1562
1562
},
1563
1563
nodes : []string {"machine1" },
@@ -1673,7 +1673,7 @@ func TestPickOneNodeForPreemption(t *testing.T) {
1673
1673
name : "No node needs preemption" ,
1674
1674
registerPlugins : []st.RegisterPluginFunc {
1675
1675
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1676
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1676
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1677
1677
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1678
1678
},
1679
1679
nodes : []string {"machine1" },
@@ -1686,7 +1686,7 @@ func TestPickOneNodeForPreemption(t *testing.T) {
1686
1686
name : "a pod that fits on both machines when lower priority pods are preempted" ,
1687
1687
registerPlugins : []st.RegisterPluginFunc {
1688
1688
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1689
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1689
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1690
1690
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1691
1691
},
1692
1692
nodes : []string {"machine1" , "machine2" },
@@ -1701,7 +1701,7 @@ func TestPickOneNodeForPreemption(t *testing.T) {
1701
1701
name : "a pod that fits on a machine with no preemption" ,
1702
1702
registerPlugins : []st.RegisterPluginFunc {
1703
1703
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1704
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1704
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1705
1705
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1706
1706
},
1707
1707
nodes : []string {"machine1" , "machine2" , "machine3" },
@@ -1716,7 +1716,7 @@ func TestPickOneNodeForPreemption(t *testing.T) {
1716
1716
name : "machine with min highest priority pod is picked" ,
1717
1717
registerPlugins : []st.RegisterPluginFunc {
1718
1718
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1719
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1719
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1720
1720
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1721
1721
},
1722
1722
nodes : []string {"machine1" , "machine2" , "machine3" },
@@ -1737,7 +1737,7 @@ func TestPickOneNodeForPreemption(t *testing.T) {
1737
1737
name : "when highest priorities are the same, minimum sum of priorities is picked" ,
1738
1738
registerPlugins : []st.RegisterPluginFunc {
1739
1739
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1740
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1740
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1741
1741
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1742
1742
},
1743
1743
nodes : []string {"machine1" , "machine2" , "machine3" },
@@ -1758,7 +1758,7 @@ func TestPickOneNodeForPreemption(t *testing.T) {
1758
1758
name : "when highest priority and sum are the same, minimum number of pods is picked" ,
1759
1759
registerPlugins : []st.RegisterPluginFunc {
1760
1760
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1761
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1761
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1762
1762
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1763
1763
},
1764
1764
nodes : []string {"machine1" , "machine2" , "machine3" },
@@ -1784,7 +1784,7 @@ func TestPickOneNodeForPreemption(t *testing.T) {
1784
1784
name : "sum of adjusted priorities is considered" ,
1785
1785
registerPlugins : []st.RegisterPluginFunc {
1786
1786
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1787
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1787
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1788
1788
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1789
1789
},
1790
1790
nodes : []string {"machine1" , "machine2" , "machine3" },
@@ -1807,7 +1807,7 @@ func TestPickOneNodeForPreemption(t *testing.T) {
1807
1807
name : "non-overlapping lowest high priority, sum priorities, and number of pods" ,
1808
1808
registerPlugins : []st.RegisterPluginFunc {
1809
1809
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1810
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1810
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1811
1811
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1812
1812
},
1813
1813
nodes : []string {"machine1" , "machine2" , "machine3" , "machine4" },
@@ -1835,7 +1835,7 @@ func TestPickOneNodeForPreemption(t *testing.T) {
1835
1835
name : "same priority, same number of victims, different start time for each machine's pod" ,
1836
1836
registerPlugins : []st.RegisterPluginFunc {
1837
1837
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1838
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1838
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1839
1839
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1840
1840
},
1841
1841
nodes : []string {"machine1" , "machine2" , "machine3" },
@@ -1856,7 +1856,7 @@ func TestPickOneNodeForPreemption(t *testing.T) {
1856
1856
name : "same priority, same number of victims, different start time for all pods" ,
1857
1857
registerPlugins : []st.RegisterPluginFunc {
1858
1858
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1859
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1859
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1860
1860
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1861
1861
},
1862
1862
nodes : []string {"machine1" , "machine2" , "machine3" },
@@ -1877,7 +1877,7 @@ func TestPickOneNodeForPreemption(t *testing.T) {
1877
1877
name : "different priority, same number of victims, different start time for all pods" ,
1878
1878
registerPlugins : []st.RegisterPluginFunc {
1879
1879
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
1880
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
1880
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
1881
1881
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
1882
1882
},
1883
1883
nodes : []string {"machine1" , "machine2" , "machine3" },
@@ -1918,6 +1918,11 @@ func TestPickOneNodeForPreemption(t *testing.T) {
1918
1918
t .Fatal (err )
1919
1919
}
1920
1920
state := framework .NewCycleState ()
1921
+ // Some tests rely on PreFilter plugin to compute its CycleState.
1922
+ preFilterStatus := fwk .RunPreFilterPlugins (context .Background (), state , test .pod )
1923
+ if ! preFilterStatus .IsSuccess () {
1924
+ t .Errorf ("Unexpected preFilterStatus: %v" , preFilterStatus )
1925
+ }
1921
1926
candidateNodes , _ := g .selectNodesForPreemption (context .Background (), state , test .pod , nodeInfos , nil )
1922
1927
node := pickOneNodeForPreemption (candidateNodes )
1923
1928
found := false
@@ -2091,7 +2096,7 @@ func TestPreempt(t *testing.T) {
2091
2096
},
2092
2097
registerPlugins : []st.RegisterPluginFunc {
2093
2098
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
2094
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
2099
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
2095
2100
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
2096
2101
},
2097
2102
expectedNode : "machine1" ,
@@ -2112,7 +2117,7 @@ func TestPreempt(t *testing.T) {
2112
2117
},
2113
2118
registerPlugins : []st.RegisterPluginFunc {
2114
2119
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
2115
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
2120
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
2116
2121
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
2117
2122
},
2118
2123
expectedNode : "machine3" ,
@@ -2227,7 +2232,7 @@ func TestPreempt(t *testing.T) {
2227
2232
},
2228
2233
registerPlugins : []st.RegisterPluginFunc {
2229
2234
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
2230
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
2235
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
2231
2236
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
2232
2237
},
2233
2238
expectedNode : "machine1" ,
@@ -2253,7 +2258,7 @@ func TestPreempt(t *testing.T) {
2253
2258
},
2254
2259
registerPlugins : []st.RegisterPluginFunc {
2255
2260
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
2256
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
2261
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
2257
2262
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
2258
2263
},
2259
2264
expectedNode : "" ,
@@ -2283,7 +2288,7 @@ func TestPreempt(t *testing.T) {
2283
2288
},
2284
2289
registerPlugins : []st.RegisterPluginFunc {
2285
2290
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
2286
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
2291
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
2287
2292
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
2288
2293
},
2289
2294
expectedNode : "machine1" ,
@@ -2313,7 +2318,7 @@ func TestPreempt(t *testing.T) {
2313
2318
},
2314
2319
registerPlugins : []st.RegisterPluginFunc {
2315
2320
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
2316
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
2321
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
2317
2322
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
2318
2323
},
2319
2324
expectedNode : "machine3" ,
@@ -2334,7 +2339,7 @@ func TestPreempt(t *testing.T) {
2334
2339
},
2335
2340
registerPlugins : []st.RegisterPluginFunc {
2336
2341
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
2337
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
2342
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
2338
2343
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
2339
2344
},
2340
2345
expectedNode : "" ,
@@ -2355,7 +2360,7 @@ func TestPreempt(t *testing.T) {
2355
2360
},
2356
2361
registerPlugins : []st.RegisterPluginFunc {
2357
2362
st .RegisterQueueSortPlugin (queuesort .Name , queuesort .New ),
2358
- st .RegisterFilterPlugin (noderesources .FitName , noderesources .NewFit ),
2363
+ st .RegisterPluginAsExtensions (noderesources .FitName , 1 , noderesources .NewFit , "Filter" , "PreFilter" ),
2359
2364
st .RegisterBindPlugin (defaultbinder .Name , defaultbinder .New ),
2360
2365
},
2361
2366
expectedNode : "machine1" ,
0 commit comments