32 lines
1.0 KiB
Go
32 lines
1.0 KiB
Go
package util
|
|
|
|
import "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
|
|
|
// MergeAnnotation adds annotation for the given object.
|
|
func MergeAnnotation(obj *unstructured.Unstructured, annotationKey string, annotationValue string) {
|
|
objectAnnotation := obj.GetAnnotations()
|
|
if objectAnnotation == nil {
|
|
objectAnnotation = make(map[string]string, 1)
|
|
}
|
|
|
|
if _, exist := objectAnnotation[annotationKey]; !exist {
|
|
objectAnnotation[annotationKey] = annotationValue
|
|
obj.SetAnnotations(objectAnnotation)
|
|
}
|
|
}
|
|
|
|
// MergeAnnotations merges the annotations from 'src' to 'dst'.
|
|
func MergeAnnotations(dst *unstructured.Unstructured, src *unstructured.Unstructured) {
|
|
for key, value := range src.GetAnnotations() {
|
|
MergeAnnotation(dst, key, value)
|
|
}
|
|
}
|
|
|
|
// GetAnnotationValue retrieves the value via 'annotationKey' (if it exists), otherwise an empty string is returned.
|
|
func GetAnnotationValue(annotations map[string]string, annotationKey string) string {
|
|
if annotations == nil {
|
|
return ""
|
|
}
|
|
return annotations[annotationKey]
|
|
}
|