From 0a132ca2b7b369e78048155faf7a3ce333b16558 Mon Sep 17 00:00:00 2001 From: Illia Pshonkin Date: Fri, 31 May 2024 13:04:00 +0200 Subject: [PATCH] feature: Do not append var-run volume if it was supplied in spec --- .../runner_controller.go | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/controllers/actions.summerwind.net/runner_controller.go b/controllers/actions.summerwind.net/runner_controller.go index 476e5c54..0a65d8c5 100644 --- a/controllers/actions.summerwind.net/runner_controller.go +++ b/controllers/actions.summerwind.net/runner_controller.go @@ -1084,17 +1084,19 @@ func newRunnerPodWithContainerMode(containerMode string, template corev1.Pod, ru ) } - pod.Spec.Volumes = append(pod.Spec.Volumes, - corev1.Volume{ - Name: varRunVolumeName, - VolumeSource: corev1.VolumeSource{ - EmptyDir: &corev1.EmptyDirVolumeSource{ - Medium: corev1.StorageMediumMemory, - SizeLimit: runnerSpec.DockerVarRunVolumeSizeLimit, + if ok, _ := varRunVolumePresent(pod.Spec.Volumes); !ok { + pod.Spec.Volumes = append(pod.Spec.Volumes, + corev1.Volume{ + Name: varRunVolumeName, + VolumeSource: corev1.VolumeSource{ + EmptyDir: &corev1.EmptyDirVolumeSource{ + Medium: corev1.StorageMediumMemory, + SizeLimit: runnerSpec.DockerVarRunVolumeSizeLimit, + }, }, }, - }, - ) + ) + } if ok, _ := workVolumeMountPresent(runnerContainer.VolumeMounts); !ok { runnerContainer.VolumeMounts = append(runnerContainer.VolumeMounts, @@ -1105,7 +1107,7 @@ func newRunnerPodWithContainerMode(containerMode string, template corev1.Pod, ru ) } - if ok, _ := volumeMountPresent(varRunVolumeName, runnerContainer.VolumeMounts); !ok { + if ok, _ := varRunVolumeMountPresent(runnerContainer.VolumeMounts); !ok { runnerContainer.VolumeMounts = append(runnerContainer.VolumeMounts, corev1.VolumeMount{ Name: varRunVolumeName, @@ -1123,7 +1125,7 @@ func newRunnerPodWithContainerMode(containerMode string, template corev1.Pod, ru }, } - if p, _ := volumeMountPresent(varRunVolumeName, dockerdContainer.VolumeMounts); !p { + if p, _ := varRunVolumeMountPresent(dockerdContainer.VolumeMounts); !p { dockerVolumeMounts = append(dockerVolumeMounts, corev1.VolumeMount{ Name: varRunVolumeName, MountPath: varRunVolumeMountPath, @@ -1349,6 +1351,19 @@ func workVolumeMountPresent(items []corev1.VolumeMount) (bool, int) { return volumeMountPresent("work", items) } +func varRunVolumePresent(items []corev1.Volume) (bool, int) { + for index, item := range items { + if item.Name == "var-run" { + return true, index + } + } + return false, 0 +} + +func varRunVolumeMountPresent(items []corev1.VolumeMount) (bool, int) { + return volumeMountPresent("var-run", items) +} + func volumeMountPresent(name string, items []corev1.VolumeMount) (bool, int) { for index, item := range items { if item.Name == name {