package utils import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/sets" ) const SystemCriticalPriority = 2 * int32(1000000000) // GetNamespacesFromPodAffinityTerm returns a set of names // according to the namespaces indicated in podAffinityTerm. // If namespaces is empty it considers the given pod's namespace. func GetNamespacesFromPodAffinityTerm(pod *v1.Pod, podAffinityTerm *v1.PodAffinityTerm) sets.String { names := sets.String{} if len(podAffinityTerm.Namespaces) == 0 { names.Insert(pod.Namespace) } else { names.Insert(podAffinityTerm.Namespaces...) } return names } // PodMatchesTermsNamespaceAndSelector returns true if the given // matches the namespace and selector defined by `s . func PodMatchesTermsNamespaceAndSelector(pod *v1.Pod, namespaces sets.String, selector labels.Selector) bool { if !namespaces.Has(pod.Namespace) { return false } if !selector.Matches(labels.Set(pod.Labels)) { return false } return true }