@@ -1195,20 +1195,14 @@ func haveOverlap(a1, a2 []string) bool {
1195
1195
// that only non-critical pods need and EssentialPredicates are the predicates that all pods, including critical pods, need
1196
1196
func GeneralPredicates (pod * v1.Pod , meta PredicateMetadata , nodeInfo * schedulernodeinfo.NodeInfo ) (bool , []PredicateFailureReason , error ) {
1197
1197
var predicateFails []PredicateFailureReason
1198
- fit , reasons , err := noncriticalPredicates (pod , meta , nodeInfo )
1199
- if err != nil {
1200
- return false , predicateFails , err
1201
- }
1202
- if ! fit {
1203
- predicateFails = append (predicateFails , reasons ... )
1204
- }
1205
-
1206
- fit , reasons , err = EssentialPredicates (pod , meta , nodeInfo )
1207
- if err != nil {
1208
- return false , predicateFails , err
1209
- }
1210
- if ! fit {
1211
- predicateFails = append (predicateFails , reasons ... )
1198
+ for _ , predicate := range []FitPredicate {noncriticalPredicates , EssentialPredicates } {
1199
+ fit , reasons , err := predicate (pod , meta , nodeInfo )
1200
+ if err != nil {
1201
+ return false , predicateFails , err
1202
+ }
1203
+ if ! fit {
1204
+ predicateFails = append (predicateFails , reasons ... )
1205
+ }
1212
1206
}
1213
1207
1214
1208
return len (predicateFails ) == 0 , predicateFails , nil
@@ -1231,31 +1225,18 @@ func noncriticalPredicates(pod *v1.Pod, meta PredicateMetadata, nodeInfo *schedu
1231
1225
// EssentialPredicates are the predicates that all pods, including critical pods, need
1232
1226
func EssentialPredicates (pod * v1.Pod , meta PredicateMetadata , nodeInfo * schedulernodeinfo.NodeInfo ) (bool , []PredicateFailureReason , error ) {
1233
1227
var predicateFails []PredicateFailureReason
1234
- fit , reasons , err := PodFitsHost (pod , meta , nodeInfo )
1235
- if err != nil {
1236
- return false , predicateFails , err
1237
- }
1238
- if ! fit {
1239
- predicateFails = append (predicateFails , reasons ... )
1240
- }
1241
-
1242
1228
// TODO: PodFitsHostPorts is essential for now, but kubelet should ideally
1243
1229
// preempt pods to free up host ports too
1244
- fit , reasons , err = PodFitsHostPorts (pod , meta , nodeInfo )
1245
- if err != nil {
1246
- return false , predicateFails , err
1247
- }
1248
- if ! fit {
1249
- predicateFails = append (predicateFails , reasons ... )
1230
+ for _ , predicate := range []FitPredicate {PodFitsHost , PodFitsHostPorts , PodMatchNodeSelector } {
1231
+ fit , reasons , err := predicate (pod , meta , nodeInfo )
1232
+ if err != nil {
1233
+ return false , predicateFails , err
1234
+ }
1235
+ if ! fit {
1236
+ predicateFails = append (predicateFails , reasons ... )
1237
+ }
1250
1238
}
1251
1239
1252
- fit , reasons , err = PodMatchNodeSelector (pod , meta , nodeInfo )
1253
- if err != nil {
1254
- return false , predicateFails , err
1255
- }
1256
- if ! fit {
1257
- predicateFails = append (predicateFails , reasons ... )
1258
- }
1259
1240
return len (predicateFails ) == 0 , predicateFails , nil
1260
1241
}
1261
1242
0 commit comments