diff --git a/pkg/volume/util/util.go b/pkg/volume/util/util.go index a89260a7285..663d8d62946 100644 --- a/pkg/volume/util/util.go +++ b/pkg/volume/util/util.go @@ -278,18 +278,11 @@ func checkVolumeNodeAffinity(pv *v1.PersistentVolume, nodeLabels map[string]stri if pv.Spec.NodeAffinity.Required != nil { terms := pv.Spec.NodeAffinity.Required.NodeSelectorTerms glog.V(10).Infof("Match for Required node selector terms %+v", terms) - for _, term := range terms { - selector, err := v1helper.NodeSelectorRequirementsAsSelector(term.MatchExpressions) - if err != nil { - return fmt.Errorf("Failed to parse MatchExpressions: %v", err) - } - if selector.Matches(labels.Set(nodeLabels)) { - // Terms are ORed, so only one needs to match - return nil - } + if !v1helper.MatchNodeSelectorTerms(terms, labels.Set(nodeLabels), nil) { + return fmt.Errorf("No matching NodeSelectorTerms") } - return fmt.Errorf("No matching NodeSelectorTerms") } + return nil }