From c13b2153d49b70135d04ec19e28e4473c79595d4 Mon Sep 17 00:00:00 2001 From: Ben Oukhanov Date: Thu, 11 Jan 2024 12:37:44 +0200 Subject: [PATCH] fix: add required labels to pods Add required labels (managed-by, part-of, version, component) to template-validator and vm-console-proxy pods. Jira-Url: https://issues.redhat.com/browse/CNV-28185 Signed-off-by: Ben Oukhanov --- internal/common/labels.go | 21 +++++++++++-------- .../operands/template-validator/reconcile.go | 1 + .../operands/vm-console-proxy/reconcile.go | 1 + 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/internal/common/labels.go b/internal/common/labels.go index 19ec9aef5..9c2d2344a 100644 --- a/internal/common/labels.go +++ b/internal/common/labels.go @@ -1,10 +1,10 @@ package common import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/selection" ssp "kubevirt.io/ssp-operator/api/v1beta2" - "sigs.k8s.io/controller-runtime/pkg/client" ) const ( @@ -36,18 +36,13 @@ const ( // Name will translate into the AppKubernetesNameLabel // Component will translate into the AppKubernetesComponentLabel // Instance wide labels will be taken from the request if available -func AddAppLabels(requestInstance *ssp.SSP, name string, component AppComponent, obj client.Object) client.Object { +func AddAppLabels(requestInstance *ssp.SSP, name string, component AppComponent, obj metav1.Object) metav1.Object { labels := getOrCreateLabels(obj) - addInstanceLabels(requestInstance, labels) - - labels[AppKubernetesNameLabel] = name - labels[AppKubernetesComponentLabel] = component.String() - labels[AppKubernetesManagedByLabel] = AppKubernetesManagedByValue - + addCommonLabels(labels, requestInstance, name, component) return obj } -func getOrCreateLabels(obj client.Object) map[string]string { +func getOrCreateLabels(obj metav1.Object) map[string]string { labels := obj.GetLabels() if labels == nil { labels = map[string]string{} @@ -56,6 +51,14 @@ func getOrCreateLabels(obj client.Object) map[string]string { return labels } +func addCommonLabels(labels map[string]string, requestInstance *ssp.SSP, name string, component AppComponent) { + addInstanceLabels(requestInstance, labels) + + labels[AppKubernetesNameLabel] = name + labels[AppKubernetesComponentLabel] = component.String() + labels[AppKubernetesManagedByLabel] = AppKubernetesManagedByValue +} + func addInstanceLabels(requestInstance *ssp.SSP, to map[string]string) { if requestInstance.Labels == nil { return diff --git a/internal/operands/template-validator/reconcile.go b/internal/operands/template-validator/reconcile.go index b6bc86c08..23c20dfba 100644 --- a/internal/operands/template-validator/reconcile.go +++ b/internal/operands/template-validator/reconcile.go @@ -139,6 +139,7 @@ func reconcileDeployment(request *common.Request) (common.ReconcileResult, error } deployment := newDeployment(request.Namespace, numberOfReplicas, image, sspTLSOptions) + common.AddAppLabels(request.Instance, operandName, operandComponent, &deployment.Spec.Template.ObjectMeta) injectPlacementMetadata(&deployment.Spec.Template.Spec, validatorSpec) return common.CreateOrUpdate(request). NamespacedResource(deployment). diff --git a/internal/operands/vm-console-proxy/reconcile.go b/internal/operands/vm-console-proxy/reconcile.go index 8d89304fd..a432460c1 100644 --- a/internal/operands/vm-console-proxy/reconcile.go +++ b/internal/operands/vm-console-proxy/reconcile.go @@ -293,6 +293,7 @@ func reconcileDeployment(deployment apps.Deployment) common.ReconcileFunc { return func(request *common.Request) (common.ReconcileResult, error) { deployment.Namespace = request.Instance.Namespace deployment.Spec.Template.Spec.Containers[0].Image = getVmConsoleProxyImage() + common.AddAppLabels(request.Instance, operandName, operandComponent, &deployment.Spec.Template.ObjectMeta) return common.CreateOrUpdate(request). NamespacedResource(&deployment). WithAppLabels(operandName, operandComponent).