From eb59bc605c0a354b843c86be8f189cbac9b8103b Mon Sep 17 00:00:00 2001 From: "Bobby (Babak) Salamat" Date: Fri, 1 Feb 2019 17:32:27 -0800 Subject: [PATCH] Short circuit volume checker if the pod is not requesting any volumes --- pkg/scheduler/algorithm/predicates/predicates.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pkg/scheduler/algorithm/predicates/predicates.go b/pkg/scheduler/algorithm/predicates/predicates.go index c5b84b978f5..61967923eff 100644 --- a/pkg/scheduler/algorithm/predicates/predicates.go +++ b/pkg/scheduler/algorithm/predicates/predicates.go @@ -1642,7 +1642,21 @@ func NewVolumeBindingPredicate(binder *volumebinder.VolumeBinder) FitPredicate { return c.predicate } +func podHasPVCs(pod *v1.Pod) bool { + for _, vol := range pod.Spec.Volumes { + if vol.PersistentVolumeClaim != nil { + return true + } + } + return false +} + func (c *VolumeBindingChecker) predicate(pod *v1.Pod, meta PredicateMetadata, nodeInfo *schedulernodeinfo.NodeInfo) (bool, []PredicateFailureReason, error) { + // If pod does not request any PVC, we don't need to do anything. + if !podHasPVCs(pod) { + return true, nil, nil + } + node := nodeInfo.Node() if node == nil { return false, nil, fmt.Errorf("node not found")