github.com/gocrane/crane@v0.11.0/pkg/utils/labels.go (about)

     1  package utils
     2  
     3  import (
     4  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
     5  	"k8s.io/apimachinery/pkg/labels"
     6  )
     7  
     8  func LabelSelectorMatched(maps map[string]string, selector *metav1.LabelSelector) (bool, error) {
     9  	if selector == nil {
    10  		return true, nil
    11  	}
    12  
    13  	ls, err := metav1.LabelSelectorAsSelector(selector)
    14  	if err != nil {
    15  		return false, err
    16  	}
    17  
    18  	return ls.Matches(labels.Set(maps)), nil
    19  }
    20  
    21  // ContainMaps to judge the maps b is contained by maps a
    22  func ContainMaps(a map[string]string, b map[string]string) bool {
    23  	for k, v := range b {
    24  		if vv, ok := a[k]; !ok {
    25  			return false
    26  		} else {
    27  			if vv != v {
    28  				return false
    29  			}
    30  		}
    31  	}
    32  	return true
    33  }