2022-09-18 11:12:29 +02:00
|
|
|
package controller
|
|
|
|
|
|
|
|
import (
|
2023-07-06 10:00:36 +02:00
|
|
|
"github.com/kyverno/kyverno/api/kyverno"
|
2022-09-18 11:12:29 +02:00
|
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
|
|
"k8s.io/apimachinery/pkg/types"
|
|
|
|
)
|
|
|
|
|
|
|
|
func SetLabel(obj metav1.Object, key, value string) map[string]string {
|
|
|
|
labels := obj.GetLabels()
|
|
|
|
if labels == nil {
|
|
|
|
labels = map[string]string{}
|
|
|
|
}
|
|
|
|
labels[key] = value
|
|
|
|
obj.SetLabels(labels)
|
|
|
|
return labels
|
|
|
|
}
|
|
|
|
|
2022-11-02 10:08:54 +00:00
|
|
|
func CheckLabel(obj metav1.Object, key, value string) bool {
|
|
|
|
labels := obj.GetLabels()
|
|
|
|
if labels == nil {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
return labels[key] == value
|
|
|
|
}
|
|
|
|
|
2023-03-17 13:07:17 +01:00
|
|
|
func GetLabel(obj metav1.Object, key string) string {
|
|
|
|
labels := obj.GetLabels()
|
|
|
|
if labels == nil {
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
return labels[key]
|
|
|
|
}
|
|
|
|
|
2022-12-07 11:30:47 +01:00
|
|
|
func SetManagedByKyvernoLabel(obj metav1.Object) {
|
2023-07-06 10:00:36 +02:00
|
|
|
SetLabel(obj, kyverno.LabelAppManagedBy, kyverno.ValueKyvernoApp)
|
2022-12-07 11:30:47 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
func IsManagedByKyverno(obj metav1.Object) bool {
|
2023-07-06 10:00:36 +02:00
|
|
|
return CheckLabel(obj, kyverno.LabelAppManagedBy, kyverno.ValueKyvernoApp)
|
2022-12-07 11:30:47 +01:00
|
|
|
}
|
|
|
|
|
2022-11-24 14:21:08 +01:00
|
|
|
func HasLabel(obj metav1.Object, key string) bool {
|
|
|
|
labels := obj.GetLabels()
|
|
|
|
if labels == nil {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
_, exists := labels[key]
|
|
|
|
return exists
|
|
|
|
}
|
|
|
|
|
2022-09-18 11:12:29 +02:00
|
|
|
func SetAnnotation(obj metav1.Object, key, value string) {
|
|
|
|
annotations := obj.GetAnnotations()
|
|
|
|
if annotations == nil {
|
|
|
|
annotations = map[string]string{}
|
|
|
|
}
|
|
|
|
annotations[key] = value
|
|
|
|
obj.SetAnnotations(annotations)
|
|
|
|
}
|
|
|
|
|
2023-09-26 13:44:35 +02:00
|
|
|
func GetAnnotation(obj metav1.Object, key string) string {
|
|
|
|
annotations := obj.GetAnnotations()
|
|
|
|
if annotations == nil {
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
return annotations[key]
|
|
|
|
}
|
|
|
|
|
2023-01-05 08:22:28 +01:00
|
|
|
func HasAnnotation(obj metav1.Object, key string) bool {
|
|
|
|
annotations := obj.GetAnnotations()
|
|
|
|
if annotations == nil {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
_, exists := annotations[key]
|
|
|
|
return exists
|
|
|
|
}
|
|
|
|
|
2022-09-18 11:12:29 +02:00
|
|
|
func SetOwner(obj metav1.Object, apiVersion, kind, name string, uid types.UID) {
|
|
|
|
obj.SetOwnerReferences([]metav1.OwnerReference{{
|
|
|
|
APIVersion: apiVersion,
|
|
|
|
Kind: kind,
|
|
|
|
Name: name,
|
|
|
|
UID: uid,
|
|
|
|
}})
|
|
|
|
}
|