{{- define "runner-mode-kubernetes.runner-container" -}} {{- $runner := (.Values.runner | default dict) -}} {{- $kubeMode := (index $runner "kubernetesMode" | default dict) -}} {{- $hookPath := (index $kubeMode "hookPath" | default "/home/runner/k8s/index.js") -}} {{- if not (kindIs "string" $hookPath) -}} {{- fail "runner.kubernetesMode.hookPath must be a string" -}} {{- end -}} {{- $requireJobContainer := true -}} {{- if hasKey $kubeMode "requireJobContainer" -}} {{- $requireJobContainer = (index $kubeMode "requireJobContainer") -}} {{- end -}} {{- if not (kindIs "bool" $requireJobContainer) -}} {{- fail "runner.kubernetesMode.requireJobContainer must be a bool" -}} {{- end -}} name: runner image: {{ include "runner.image" . | quote }} command: {{ include "runner.command" . }} env: - name: ACTIONS_RUNNER_CONTAINER_HOOKS value: {{ $hookPath | quote }} - name: ACTIONS_RUNNER_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER value: {{ ternary "true" "false" $requireJobContainer | quote }} {{- with .Values.runner.env }} {{- toYaml . | nindent 2 }} {{- end }} volumeMounts: - name: work mountPath: /home/runner/_work {{- end }} {{- define "runner-mode-kubernetes.pod-volumes" -}} {{- $runner := (.Values.runner | default dict) -}} {{- $kubeMode := (index $runner "kubernetesMode" | default dict) -}} {{- $claim := (index $kubeMode "workVolumeClaim" | default dict) -}} {{- if and (not (empty $claim)) (not (kindIs "map" $claim)) -}} {{- fail "runner.kubernetesMode.workVolumeClaim must be a map/object" -}} {{- end -}} {{- $defaultClaim := dict "accessModes" (list "ReadWriteOnce") "storageClassName" "local-path" "resources" (dict "requests" (dict "storage" "1Gi")) -}} {{- $claimSpec := mergeOverwrite $defaultClaim $claim -}} - name: work ephemeral: volumeClaimTemplate: spec: {{- toYaml $claimSpec | nindent 8 }} {{- end }}