123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- package kmeta
- import (
- "fmt"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/apimachinery/pkg/selection"
- )
- func MakeVersionLabels(om metav1.ObjectMetaAccessor) labels.Set {
- return map[string]string{
- "controller": string(om.GetObjectMeta().GetUID()),
- "version": om.GetObjectMeta().GetResourceVersion(),
- }
- }
- func MakeVersionLabelSelector(om metav1.ObjectMetaAccessor) labels.Selector {
- return labels.SelectorFromSet(MakeVersionLabels(om))
- }
- func MakeOldVersionLabelSelector(om metav1.ObjectMetaAccessor) labels.Selector {
- return labels.NewSelector().Add(
- mustNewRequirement("controller", selection.Equals, []string{string(om.GetObjectMeta().GetUID())}),
- mustNewRequirement("version", selection.NotEquals, []string{om.GetObjectMeta().GetResourceVersion()}),
- )
- }
- func MakeGenerationLabels(om metav1.ObjectMetaAccessor) labels.Set {
- return map[string]string{
- "controller": string(om.GetObjectMeta().GetUID()),
- "generation": genStr(om),
- }
- }
- func MakeGenerationLabelSelector(om metav1.ObjectMetaAccessor) labels.Selector {
- return labels.SelectorFromSet(MakeGenerationLabels(om))
- }
- func MakeOldGenerationLabelSelector(om metav1.ObjectMetaAccessor) labels.Selector {
- return labels.NewSelector().Add(
- mustNewRequirement("controller", selection.Equals, []string{string(om.GetObjectMeta().GetUID())}),
- mustNewRequirement("generation", selection.NotEquals, []string{genStr(om)}),
- )
- }
- func genStr(om metav1.ObjectMetaAccessor) string {
- return fmt.Sprintf("%05d", om.GetObjectMeta().GetGeneration())
- }
- func mustNewRequirement(key string, op selection.Operator, vals []string) labels.Requirement {
- r, err := labels.NewRequirement(key, op, vals)
- if err != nil {
- panic(fmt.Sprintf("mustNewRequirement(%v, %v, %v) = %v", key, op, vals, err))
- }
- return *r
- }
|