Skip to content

Commit ead8e0c

Browse files
authored
Merge pull request kubernetes#80814 from xiaoanyunfei/cleanup/GeneralPredicates
Use iteration to make the GeneralPredicates code cleaner
2 parents 533daf6 + bff9ad4 commit ead8e0c

File tree

1 file changed

+16
-35
lines changed

1 file changed

+16
-35
lines changed

pkg/scheduler/algorithm/predicates/predicates.go

Lines changed: 16 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1195,20 +1195,14 @@ func haveOverlap(a1, a2 []string) bool {
11951195
// that only non-critical pods need and EssentialPredicates are the predicates that all pods, including critical pods, need
11961196
func GeneralPredicates(pod *v1.Pod, meta PredicateMetadata, nodeInfo *schedulernodeinfo.NodeInfo) (bool, []PredicateFailureReason, error) {
11971197
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+
}
12121206
}
12131207

12141208
return len(predicateFails) == 0, predicateFails, nil
@@ -1231,31 +1225,18 @@ func noncriticalPredicates(pod *v1.Pod, meta PredicateMetadata, nodeInfo *schedu
12311225
// EssentialPredicates are the predicates that all pods, including critical pods, need
12321226
func EssentialPredicates(pod *v1.Pod, meta PredicateMetadata, nodeInfo *schedulernodeinfo.NodeInfo) (bool, []PredicateFailureReason, error) {
12331227
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-
12421228
// TODO: PodFitsHostPorts is essential for now, but kubelet should ideally
12431229
// 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+
}
12501238
}
12511239

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-
}
12591240
return len(predicateFails) == 0, predicateFails, nil
12601241
}
12611242

0 commit comments

Comments
 (0)