From 15630ffaaa72555c16bf6c3a608e14b5f61030da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charles-Edouard=20Br=C3=A9t=C3=A9ch=C3=A9?= Date: Tue, 26 Sep 2023 13:44:35 +0200 Subject: [PATCH] fix: creating ClusterAdmissionReports fails for resources with colon in name (#8530) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Charles-Edouard Brétéché --- pkg/utils/controller/metadata.go | 8 ++++++++ pkg/utils/report/labels.go | 16 ++++++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/pkg/utils/controller/metadata.go b/pkg/utils/controller/metadata.go index 642b642a44..5874fa4fff 100644 --- a/pkg/utils/controller/metadata.go +++ b/pkg/utils/controller/metadata.go @@ -58,6 +58,14 @@ func SetAnnotation(obj metav1.Object, key, value string) { obj.SetAnnotations(annotations) } +func GetAnnotation(obj metav1.Object, key string) string { + annotations := obj.GetAnnotations() + if annotations == nil { + return "" + } + return annotations[key] +} + func HasAnnotation(obj metav1.Object, key string) bool { annotations := obj.GetAnnotations() if annotations == nil { diff --git a/pkg/utils/report/labels.go b/pkg/utils/report/labels.go index 72b9b672b0..efadcb9099 100644 --- a/pkg/utils/report/labels.go +++ b/pkg/utils/report/labels.go @@ -21,11 +21,11 @@ import ( const ( LabelDomain = "kyverno.io" // resource labels - LabelResourceHash = "audit.kyverno.io/resource.hash" - LabelResourceUid = "audit.kyverno.io/resource.uid" - LabelResourceGVR = "audit.kyverno.io/resource.gvr" - LabelResourceNamespace = "audit.kyverno.io/resource.namespace" - LabelResourceName = "audit.kyverno.io/resource.name" + LabelResourceHash = "audit.kyverno.io/resource.hash" + LabelResourceUid = "audit.kyverno.io/resource.uid" + LabelResourceGVR = "audit.kyverno.io/resource.gvr" + AnnotationResourceNamespace = "audit.kyverno.io/resource.namespace" + AnnotationResourceName = "audit.kyverno.io/resource.name" // policy labels LabelDomainClusterPolicy = "cpol.kyverno.io" LabelDomainPolicy = "pol.kyverno.io" @@ -99,8 +99,8 @@ func SetResourceGVR(report kyvernov1alpha2.ReportInterface, gvr schema.GroupVers } func SetResourceNamespaceAndName(report kyvernov1alpha2.ReportInterface, namespace, name string) { - controllerutils.SetLabel(report, LabelResourceNamespace, namespace) - controllerutils.SetLabel(report, LabelResourceName, name) + controllerutils.SetAnnotation(report, AnnotationResourceNamespace, namespace) + controllerutils.SetAnnotation(report, AnnotationResourceName, name) } func CalculateResourceHash(resource unstructured.Unstructured) string { @@ -152,7 +152,7 @@ func GetResourceGVR(report metav1.Object) schema.GroupVersionResource { } func GetResourceNamespaceAndName(report kyvernov1alpha2.ReportInterface) (string, string) { - return controllerutils.GetLabel(report, LabelResourceNamespace), controllerutils.GetLabel(report, LabelResourceName) + return controllerutils.GetAnnotation(report, AnnotationResourceNamespace), controllerutils.GetAnnotation(report, AnnotationResourceName) } func GetResourceHash(report metav1.Object) string {