in plugins/in_tree_volume.go [107:131]
func getTopologyValues(pv *v1.PersistentVolume, key string) []string {
if pv.Spec.NodeAffinity == nil ||
pv.Spec.NodeAffinity.Required == nil ||
len(pv.Spec.NodeAffinity.Required.NodeSelectorTerms) < 1 {
return nil
}
values := make(map[string]bool)
for i := range pv.Spec.NodeAffinity.Required.NodeSelectorTerms {
for _, r := range pv.Spec.NodeAffinity.Required.NodeSelectorTerms[i].MatchExpressions {
if r.Key == key {
for _, v := range r.Values {
values[v] = true
}
}
}
}
// remove duplication and sort them in order for better usage
var re []string
for k := range values {
re = append(re, k)
}
sort.Strings(re)
return re
}