diff --git a/controllers/actions.summerwind.net/runner_controller.go b/controllers/actions.summerwind.net/runner_controller.go index 78fc7229..ad6a4cf9 100644 --- a/controllers/actions.summerwind.net/runner_controller.go +++ b/controllers/actions.summerwind.net/runner_controller.go @@ -1086,17 +1086,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, @@ -1107,7 +1109,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, @@ -1125,7 +1127,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, @@ -1351,6 +1353,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 {