From 2e0d40ce1e68bb7be9fa975316d7ca20fd243000 Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Wed, 12 Nov 2025 18:03:13 -0600 Subject: [PATCH] feat: add project/environment labels to Lagoon build/task pods --- internal/controllers/v1beta2/build_helpers.go | 20 ++++++++++++++----- .../controllers/v1beta2/task_controller.go | 5 +++++ 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/internal/controllers/v1beta2/build_helpers.go b/internal/controllers/v1beta2/build_helpers.go index bfc321ee..b945ea01 100644 --- a/internal/controllers/v1beta2/build_helpers.go +++ b/internal/controllers/v1beta2/build_helpers.go @@ -629,11 +629,14 @@ func (r *LagoonBuildReconciler) processBuild(ctx context.Context, opLog logr.Log Name: lagoonBuild.Name, Namespace: lagoonBuild.Namespace, Labels: map[string]string{ - "lagoon.sh/jobType": "build", - "lagoon.sh/buildName": lagoonBuild.Name, - "lagoon.sh/controller": r.ControllerNamespace, - "crd.lagoon.sh/version": crdVersion, - "lagoon.sh/buildRemoteID": string(lagoonBuild.UID), + "lagoon.sh/jobType": "build", + "lagoon.sh/buildName": lagoonBuild.Name, + "lagoon.sh/project": lagoonBuild.Spec.Project.Name, + "lagoon.sh/environment": lagoonBuild.Spec.Project.Environment, + "lagoon.sh/environmentType": lagoonBuild.Spec.Project.EnvironmentType, + "lagoon.sh/controller": r.ControllerNamespace, + "crd.lagoon.sh/version": crdVersion, + "lagoon.sh/buildRemoteID": string(lagoonBuild.UID), }, OwnerReferences: []metav1.OwnerReference{ { @@ -688,6 +691,13 @@ func (r *LagoonBuildReconciler) processBuild(ctx context.Context, opLog logr.Log newPod.Labels["organization.lagoon.sh/name"] = lagoonBuild.Spec.Project.Organization.Name } + if lagoonBuild.Spec.Project.ID != nil { + newPod.Labels["lagoon.sh/projectId"] = fmt.Sprintf("%d", *lagoonBuild.Spec.Project.ID) + } + if lagoonBuild.Spec.Project.EnvironmentID != nil { + newPod.Labels["lagoon.sh/environmentId"] = fmt.Sprintf("%d", *lagoonBuild.Spec.Project.EnvironmentID) + } + if !r.ClusterAutoscalerEvict { // try to prevent build pods from being evicted by cluster autoscaler newPod.Labels["cluster-autoscaler.kubernetes.io/safe-to-evict"] = "false" diff --git a/internal/controllers/v1beta2/task_controller.go b/internal/controllers/v1beta2/task_controller.go index 178444ce..c8e319ac 100644 --- a/internal/controllers/v1beta2/task_controller.go +++ b/internal/controllers/v1beta2/task_controller.go @@ -304,6 +304,7 @@ func (r *LagoonTaskReconciler) getTaskPodDeployment(ctx context.Context, lagoonT Labels: map[string]string{ "lagoon.sh/jobType": "task", "lagoon.sh/taskName": lagoonTask.Name, + "lagoon.sh/project": lagoonTask.Spec.Project.Name, "crd.lagoon.sh/version": crdVersion, "lagoon.sh/controller": r.ControllerNamespace, }, @@ -324,6 +325,10 @@ func (r *LagoonTaskReconciler) getTaskPodDeployment(ctx context.Context, lagoonT taskPod.Labels["organization.lagoon.sh/name"] = lagoonTask.Spec.Project.Organization.Name } + if lagoonTask.Spec.Project.ID != nil { + taskPod.Labels["lagoon.sh/projectId"] = fmt.Sprintf("%d", *lagoonTask.Spec.Project.ID) + } + if !r.ClusterAutoscalerEvict { // try to prevent build pods from being evicted by cluster autoscaler taskPod.Labels["cluster-autoscaler.kubernetes.io/safe-to-evict"] = "false"