@@ -1126,20 +1126,14 @@ func haveOverlap(a1, a2 []string) bool {
1126
1126
// that only non-critical pods need and EssentialPredicates are the predicates that all pods, including critical pods, need
1127
1127
func GeneralPredicates (pod * v1.Pod , meta PredicateMetadata , nodeInfo * schedulernodeinfo.NodeInfo ) (bool , []PredicateFailureReason , error ) {
1128
1128
var predicateFails []PredicateFailureReason
1129
- fit , reasons , err := noncriticalPredicates (pod , meta , nodeInfo )
1130
- if err != nil {
1131
- return false , predicateFails , err
1132
- }
1133
- if ! fit {
1134
- predicateFails = append (predicateFails , reasons ... )
1135
- }
1136
-
1137
- fit , reasons , err = EssentialPredicates (pod , meta , nodeInfo )
1138
- if err != nil {
1139
- return false , predicateFails , err
1140
- }
1141
- if ! fit {
1142
- predicateFails = append (predicateFails , reasons ... )
1129
+ for _ , predicate := range []FitPredicate {noncriticalPredicates , EssentialPredicates } {
1130
+ fit , reasons , err := predicate (pod , meta , nodeInfo )
1131
+ if err != nil {
1132
+ return false , predicateFails , err
1133
+ }
1134
+ if ! fit {
1135
+ predicateFails = append (predicateFails , reasons ... )
1136
+ }
1143
1137
}
1144
1138
1145
1139
return len (predicateFails ) == 0 , predicateFails , nil
@@ -1162,31 +1156,18 @@ func noncriticalPredicates(pod *v1.Pod, meta PredicateMetadata, nodeInfo *schedu
1162
1156
// EssentialPredicates are the predicates that all pods, including critical pods, need
1163
1157
func EssentialPredicates (pod * v1.Pod , meta PredicateMetadata , nodeInfo * schedulernodeinfo.NodeInfo ) (bool , []PredicateFailureReason , error ) {
1164
1158
var predicateFails []PredicateFailureReason
1165
- fit , reasons , err := PodFitsHost (pod , meta , nodeInfo )
1166
- if err != nil {
1167
- return false , predicateFails , err
1168
- }
1169
- if ! fit {
1170
- predicateFails = append (predicateFails , reasons ... )
1171
- }
1172
-
1173
1159
// TODO: PodFitsHostPorts is essential for now, but kubelet should ideally
1174
1160
// preempt pods to free up host ports too
1175
- fit , reasons , err = PodFitsHostPorts (pod , meta , nodeInfo )
1176
- if err != nil {
1177
- return false , predicateFails , err
1178
- }
1179
- if ! fit {
1180
- predicateFails = append (predicateFails , reasons ... )
1161
+ for _ , predicate := range []FitPredicate {PodFitsHost , PodFitsHostPorts , PodMatchNodeSelector } {
1162
+ fit , reasons , err := predicate (pod , meta , nodeInfo )
1163
+ if err != nil {
1164
+ return false , predicateFails , err
1165
+ }
1166
+ if ! fit {
1167
+ predicateFails = append (predicateFails , reasons ... )
1168
+ }
1181
1169
}
1182
1170
1183
- fit , reasons , err = PodMatchNodeSelector (pod , meta , nodeInfo )
1184
- if err != nil {
1185
- return false , predicateFails , err
1186
- }
1187
- if ! fit {
1188
- predicateFails = append (predicateFails , reasons ... )
1189
- }
1190
1171
return len (predicateFails ) == 0 , predicateFails , nil
1191
1172
}
1192
1173
0 commit comments