From fa287c43957480e3dfb251976d159e50d8da1e25 Mon Sep 17 00:00:00 2001 From: Yusuke Kuoka Date: Sat, 12 Mar 2022 13:49:42 +0000 Subject: [PATCH] Fix RunnerDeployment-managed runner pods to not get RUNNER_NAME and RUNNER_TOKEN injected twice Since #1179, runner pods managed by RunnerDeployment had two duplicate environment variables for RUNNER_NAME and RUNNER_TOKEN. This fixes that. --- controllers/constants.go | 3 +++ controllers/runner_controller.go | 19 ++++++------------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/controllers/constants.go b/controllers/constants.go index 5b67026b..510fa911 100644 --- a/controllers/constants.go +++ b/controllers/constants.go @@ -61,4 +61,7 @@ const ( // // See https://github.com/actions-runner-controller/actions-runner-controller/pull/1180 DefaultRunnerPodRecreationDelayAfterWebhookScale = 10 * time.Minute + + EnvVarRunnerName = "RUNNER_NAME" + EnvVarRunnerToken = "RUNNER_TOKEN" ) diff --git a/controllers/runner_controller.go b/controllers/runner_controller.go index 19ee36aa..5811494b 100644 --- a/controllers/runner_controller.go +++ b/controllers/runner_controller.go @@ -453,19 +453,12 @@ func (r *RunnerReconciler) newPod(runner v1alpha1.Runner) (corev1.Pod, error) { func mutatePod(pod *corev1.Pod, token string) *corev1.Pod { updated := pod.DeepCopy() - for i := range pod.Spec.Containers { - if pod.Spec.Containers[i].Name == "runner" { - updated.Spec.Containers[i].Env = append(updated.Spec.Containers[i].Env, - corev1.EnvVar{ - Name: "RUNNER_NAME", - Value: pod.ObjectMeta.Name, - }, - corev1.EnvVar{ - Name: "RUNNER_TOKEN", - Value: token, - }, - ) - } + if getRunnerEnv(pod, EnvVarRunnerName) == "" { + setRunnerEnv(updated, EnvVarRunnerName, pod.ObjectMeta.Name) + } + + if getRunnerEnv(pod, EnvVarRunnerToken) == "" { + setRunnerEnv(updated, EnvVarRunnerToken, token) } return updated