mirror of
https://github.com/actions/actions-runner-controller.git
synced 2026-02-15 20:31:58 +08:00
Make kube mode the actual object
This commit is contained in:
@@ -4,11 +4,21 @@
|
||||
{{- $hookPath := (index $kubeMode "hookPath" | default "/home/runner/k8s/index.js") -}}
|
||||
{{- $extensionRef := (index $kubeMode "extensionRef" | default "") -}}
|
||||
{{- $extension := (index $kubeMode "extension" | default dict) -}}
|
||||
{{- $extensionYaml := "" -}}
|
||||
{{- $extensionYamlRaw := "" -}}
|
||||
{{- if kindIs "map" $extension -}}
|
||||
{{- $extensionYaml = (index $extension "yaml" | default "") -}}
|
||||
{{- if hasKey $extension "yaml" -}}
|
||||
{{- $extensionYamlRaw = (index $extension "yaml") -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- $hasExtension := or (not (empty $extensionRef)) (not (empty $extensionYaml)) -}}
|
||||
{{- $extensionYamlStr := "" -}}
|
||||
{{- if empty $extensionYamlRaw -}}
|
||||
{{- $extensionYamlStr = "" -}}
|
||||
{{- else if kindIs "string" $extensionYamlRaw -}}
|
||||
{{- $extensionYamlStr = $extensionYamlRaw -}}
|
||||
{{- else if kindIs "map" $extensionYamlRaw -}}
|
||||
{{- $extensionYamlStr = toYaml $extensionYamlRaw -}}
|
||||
{{- end -}}
|
||||
{{- $hasExtension := or (not (empty $extensionRef)) (not (empty $extensionYamlStr)) -}}
|
||||
{{- $hookTemplatePath := printf "%s/hook-template.yaml" (dir $hookPath) -}}
|
||||
{{- $setHookTemplateEnv := true -}}
|
||||
{{- $userEnv := (.Values.runner.env | default list) -}}
|
||||
@@ -28,8 +38,8 @@
|
||||
{{- if and (empty $extensionRef) (hasKey $kubeMode "extension") (not (kindIs "map" $extension)) -}}
|
||||
{{- fail "runner.kubernetesMode.extension must be an object when runner.kubernetesMode.extensionRef is empty" -}}
|
||||
{{- end -}}
|
||||
{{- if and (empty $extensionRef) (not (kindIs "string" $extensionYaml)) -}}
|
||||
{{- fail "runner.kubernetesMode.extension.yaml must be a string" -}}
|
||||
{{- if and (empty $extensionRef) (not (empty $extensionYamlRaw)) (not (or (kindIs "string" $extensionYamlRaw) (kindIs "map" $extensionYamlRaw))) -}}
|
||||
{{- fail "runner.kubernetesMode.extension.yaml must be a string or an object" -}}
|
||||
{{- end -}}
|
||||
{{- $requireJobContainer := true -}}
|
||||
{{- if hasKey $kubeMode "requireJobContainer" -}}
|
||||
@@ -73,11 +83,21 @@ volumeMounts:
|
||||
{{- $kubeMode := (index $runner "kubernetesMode" | default dict) -}}
|
||||
{{- $extensionRef := (index $kubeMode "extensionRef" | default "") -}}
|
||||
{{- $extension := (index $kubeMode "extension" | default dict) -}}
|
||||
{{- $extensionYaml := "" -}}
|
||||
{{- $extensionYamlRaw := "" -}}
|
||||
{{- if kindIs "map" $extension -}}
|
||||
{{- $extensionYaml = (index $extension "yaml" | default "") -}}
|
||||
{{- if hasKey $extension "yaml" -}}
|
||||
{{- $extensionYamlRaw = (index $extension "yaml") -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- $hasExtension := or (not (empty $extensionRef)) (not (empty $extensionYaml)) -}}
|
||||
{{- $extensionYamlStr := "" -}}
|
||||
{{- if empty $extensionYamlRaw -}}
|
||||
{{- $extensionYamlStr = "" -}}
|
||||
{{- else if kindIs "string" $extensionYamlRaw -}}
|
||||
{{- $extensionYamlStr = $extensionYamlRaw -}}
|
||||
{{- else if kindIs "map" $extensionYamlRaw -}}
|
||||
{{- $extensionYamlStr = toYaml $extensionYamlRaw -}}
|
||||
{{- end -}}
|
||||
{{- $hasExtension := or (not (empty $extensionRef)) (not (empty $extensionYamlStr)) -}}
|
||||
{{- $claim := (index $kubeMode "workVolumeClaim" | default dict) -}}
|
||||
{{- if and (not (empty $claim)) (not (kindIs "map" $claim)) -}}
|
||||
{{- fail "runner.kubernetesMode.workVolumeClaim must be a map/object" -}}
|
||||
@@ -88,8 +108,8 @@ volumeMounts:
|
||||
{{- if and (empty $extensionRef) (hasKey $kubeMode "extension") (not (kindIs "map" $extension)) -}}
|
||||
{{- fail "runner.kubernetesMode.extension must be an object when runner.kubernetesMode.extensionRef is empty" -}}
|
||||
{{- end -}}
|
||||
{{- if and (empty $extensionRef) (not (kindIs "string" $extensionYaml)) -}}
|
||||
{{- fail "runner.kubernetesMode.extension.yaml must be a string" -}}
|
||||
{{- if and (empty $extensionRef) (not (empty $extensionYamlRaw)) (not (or (kindIs "string" $extensionYamlRaw) (kindIs "map" $extensionYamlRaw))) -}}
|
||||
{{- fail "runner.kubernetesMode.extension.yaml must be a string or an object" -}}
|
||||
{{- end -}}
|
||||
{{- $defaultClaim := dict "accessModes" (list "ReadWriteOnce") "storageClassName" "local-path" "resources" (dict "requests" (dict "storage" "1Gi")) -}}
|
||||
{{- $claimSpec := mergeOverwrite $defaultClaim $claim -}}
|
||||
|
||||
@@ -14,24 +14,33 @@
|
||||
|
||||
{{- $extensionMeta := dict -}}
|
||||
{{- $extensionName := "" -}}
|
||||
{{- $extensionYaml := "" -}}
|
||||
{{- $extensionYamlRaw := "" -}}
|
||||
{{- $extensionYamlStr := "" -}}
|
||||
{{- if kindIs "map" $extension -}}
|
||||
{{- $extensionMeta = (index $extension "metadata" | default dict) -}}
|
||||
{{- if not (kindIs "map" $extensionMeta) -}}
|
||||
{{- fail "runner.kubernetesMode.extension.metadata must be an object" -}}
|
||||
{{- end -}}
|
||||
{{- $extensionName = (index $extensionMeta "name" | default "") -}}
|
||||
{{- $extensionYaml = (index $extension "yaml" | default "") -}}
|
||||
{{- if hasKey $extension "yaml" -}}
|
||||
{{- $extensionYamlRaw = (index $extension "yaml") -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if not (kindIs "string" $extensionName) -}}
|
||||
{{- fail "runner.kubernetesMode.extension.metadata.name must be a string" -}}
|
||||
{{- end -}}
|
||||
{{- if not (kindIs "string" $extensionYaml) -}}
|
||||
{{- fail "runner.kubernetesMode.extension.yaml must be a string" -}}
|
||||
{{- if empty $extensionYamlRaw -}}
|
||||
{{- $extensionYamlStr = "" -}}
|
||||
{{- else if kindIs "string" $extensionYamlRaw -}}
|
||||
{{- $extensionYamlStr = $extensionYamlRaw -}}
|
||||
{{- else if kindIs "map" $extensionYamlRaw -}}
|
||||
{{- $extensionYamlStr = toYaml $extensionYamlRaw -}}
|
||||
{{- else -}}
|
||||
{{- fail "runner.kubernetesMode.extension.yaml must be a string or an object" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if not (empty $extensionYaml) -}}
|
||||
{{- if not (empty $extensionYamlStr) -}}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
@@ -46,6 +55,6 @@ metadata:
|
||||
{{- end }}
|
||||
data:
|
||||
extension: |-
|
||||
{{ $extensionYaml | indent 4 }}
|
||||
{{ $extensionYamlStr | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
@@ -17,7 +17,8 @@ tests:
|
||||
metadata:
|
||||
name: "my-hook-extension"
|
||||
namespace: "test-namespace"
|
||||
yaml: "foo: bar"
|
||||
yaml:
|
||||
foo: bar
|
||||
release:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
@@ -53,7 +54,8 @@ tests:
|
||||
kubernetesMode:
|
||||
hookPath: "/home/runner/k8s/index.js"
|
||||
extension:
|
||||
yaml: "foo: bar"
|
||||
yaml:
|
||||
foo: bar
|
||||
release:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
|
||||
@@ -13,11 +13,11 @@ tests:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
chart:
|
||||
appVersion: "0.14.0"
|
||||
appVersion: "0.13.1"
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.labels["helm.sh/chart"]
|
||||
value: "gha-rs-0.14.0"
|
||||
value: "gha-rs-0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/name"]
|
||||
value: "test-name"
|
||||
@@ -35,7 +35,7 @@ tests:
|
||||
value: "gha-rs"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/version"]
|
||||
value: "0.14.0"
|
||||
value: "0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["actions.github.com/scale-set-name"]
|
||||
value: "test-name"
|
||||
@@ -68,7 +68,7 @@ tests:
|
||||
value: "production"
|
||||
- equal:
|
||||
path: metadata.labels["helm.sh/chart"]
|
||||
value: "gha-rs-0.14.0"
|
||||
value: "gha-rs-0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/name"]
|
||||
value: "test-name"
|
||||
@@ -86,7 +86,7 @@ tests:
|
||||
value: "gha-rs"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/version"]
|
||||
value: "0.14.0"
|
||||
value: "0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["actions.github.com/scale-set-name"]
|
||||
value: "test-name"
|
||||
@@ -119,7 +119,7 @@ tests:
|
||||
value: "devops"
|
||||
- equal:
|
||||
path: metadata.labels["helm.sh/chart"]
|
||||
value: "gha-rs-0.14.0"
|
||||
value: "gha-rs-0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/name"]
|
||||
value: "test-name"
|
||||
@@ -137,7 +137,7 @@ tests:
|
||||
value: "gha-rs"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/version"]
|
||||
value: "0.14.0"
|
||||
value: "0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["actions.github.com/scale-set-name"]
|
||||
value: "test-name"
|
||||
@@ -178,7 +178,7 @@ tests:
|
||||
value: "staging"
|
||||
- equal:
|
||||
path: metadata.labels["helm.sh/chart"]
|
||||
value: "gha-rs-0.14.0"
|
||||
value: "gha-rs-0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/name"]
|
||||
value: "test-name"
|
||||
@@ -196,7 +196,7 @@ tests:
|
||||
value: "gha-rs"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/version"]
|
||||
value: "0.14.0"
|
||||
value: "0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["actions.github.com/scale-set-name"]
|
||||
value: "test-name"
|
||||
|
||||
@@ -27,7 +27,7 @@ tests:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
chart:
|
||||
appVersion: "0.14.0"
|
||||
appVersion: "0.13.1"
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.metadata.labels["purpose"]
|
||||
@@ -37,7 +37,7 @@ tests:
|
||||
value: "platform"
|
||||
- equal:
|
||||
path: spec.template.metadata.labels["helm.sh/chart"]
|
||||
value: "gha-rs-0.14.0"
|
||||
value: "gha-rs-0.13.1"
|
||||
- equal:
|
||||
path: spec.template.metadata.labels["app.kubernetes.io/name"]
|
||||
value: "test-name"
|
||||
|
||||
@@ -11,11 +11,11 @@ tests:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
chart:
|
||||
appVersion: "0.14.0"
|
||||
appVersion: "0.13.1"
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.labels["helm.sh/chart"]
|
||||
value: "gha-rs-0.14.0"
|
||||
value: "gha-rs-0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/name"]
|
||||
value: "test-name"
|
||||
@@ -33,7 +33,7 @@ tests:
|
||||
value: "gha-rs"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/version"]
|
||||
value: "0.14.0"
|
||||
value: "0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["actions.github.com/scale-set-name"]
|
||||
value: "test-name"
|
||||
@@ -111,7 +111,7 @@ tests:
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.labels["helm.sh/chart"]
|
||||
value: "gha-rs-0.14.0"
|
||||
value: "gha-rs-0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/name"]
|
||||
value: "test-name"
|
||||
|
||||
@@ -11,7 +11,7 @@ tests:
|
||||
metadata:
|
||||
name: "my-hook-extension"
|
||||
namespace: "ignored-by-chart"
|
||||
yaml: |
|
||||
yaml:
|
||||
foo: bar
|
||||
nested:
|
||||
a: 1
|
||||
@@ -67,7 +67,7 @@ tests:
|
||||
metadata:
|
||||
name: "my-hook-extension"
|
||||
namespace: "test-namespace"
|
||||
yaml: ""
|
||||
yaml: {}
|
||||
release:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
@@ -85,7 +85,7 @@ tests:
|
||||
metadata:
|
||||
name: "my-hook-extension"
|
||||
namespace: "test-namespace"
|
||||
yaml: |
|
||||
yaml:
|
||||
foo: bar
|
||||
release:
|
||||
name: "test-name"
|
||||
|
||||
@@ -13,7 +13,7 @@ tests:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
chart:
|
||||
appVersion: "0.14.0"
|
||||
appVersion: "0.13.1"
|
||||
asserts:
|
||||
- equal:
|
||||
path: apiVersion
|
||||
@@ -160,11 +160,11 @@ tests:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
chart:
|
||||
appVersion: "0.14.0"
|
||||
appVersion: "0.13.1"
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.labels["helm.sh/chart"]
|
||||
value: "gha-rs-0.14.0"
|
||||
value: "gha-rs-0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/name"]
|
||||
value: "test-name"
|
||||
|
||||
@@ -13,7 +13,7 @@ tests:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
chart:
|
||||
appVersion: "0.14.0"
|
||||
appVersion: "0.13.1"
|
||||
asserts:
|
||||
- equal:
|
||||
path: apiVersion
|
||||
|
||||
@@ -13,7 +13,7 @@ tests:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
chart:
|
||||
appVersion: "0.14.0"
|
||||
appVersion: "0.13.1"
|
||||
asserts:
|
||||
- equal:
|
||||
path: apiVersion
|
||||
@@ -145,11 +145,11 @@ tests:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
chart:
|
||||
appVersion: "0.14.0"
|
||||
appVersion: "0.13.1"
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.labels["helm.sh/chart"]
|
||||
value: "gha-rs-0.14.0"
|
||||
value: "gha-rs-0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/name"]
|
||||
value: "test-name"
|
||||
|
||||
@@ -10,11 +10,11 @@ tests:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
chart:
|
||||
appVersion: "0.14.0"
|
||||
appVersion: "0.13.1"
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.labels["helm.sh/chart"]
|
||||
value: "gha-rs-0.14.0"
|
||||
value: "gha-rs-0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/name"]
|
||||
value: "test-name"
|
||||
@@ -32,7 +32,7 @@ tests:
|
||||
value: "gha-rs"
|
||||
- equal:
|
||||
path: metadata.labels["app.kubernetes.io/version"]
|
||||
value: "0.14.0"
|
||||
value: "0.13.1"
|
||||
- equal:
|
||||
path: metadata.labels["actions.github.com/scale-set-name"]
|
||||
value: "test-name"
|
||||
@@ -59,7 +59,7 @@ tests:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
chart:
|
||||
appVersion: "0.14.0"
|
||||
appVersion: "0.13.1"
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.labels["owner"]
|
||||
@@ -84,7 +84,7 @@ tests:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
chart:
|
||||
appVersion: "0.14.0"
|
||||
appVersion: "0.13.1"
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.labels["actions.github.com/scale-set-name"]
|
||||
|
||||
@@ -7,7 +7,7 @@ tests:
|
||||
name: "test-name"
|
||||
namespace: "test-namespace"
|
||||
chart:
|
||||
appVersion: "0.14.0"
|
||||
appVersion: "0.13.1"
|
||||
asserts:
|
||||
- equal:
|
||||
path: apiVersion
|
||||
|
||||
@@ -196,6 +196,23 @@ runner:
|
||||
serviceAccountName: ""
|
||||
hookPath: "/home/runner/k8s/index.js"
|
||||
requireJobContainer: true
|
||||
# workVolumeClaim configures the *ephemeral* PVC used for the runner work directory
|
||||
# (mounted at /home/runner/_work).
|
||||
#
|
||||
# This maps directly to `spec.template.spec.volumes[].ephemeral.volumeClaimTemplate.spec`.
|
||||
# Any fields you set here are merged onto the chart defaults.
|
||||
#
|
||||
# Defaults:
|
||||
# - accessModes: ["ReadWriteOnce"]
|
||||
# - storageClassName: "local-path"
|
||||
# - resources.requests.storage: "1Gi"
|
||||
workVolumeClaim: {}
|
||||
# workVolumeClaim:
|
||||
# accessModes: ["ReadWriteOnce"]
|
||||
# storageClassName: "fast-ssd"
|
||||
# resources:
|
||||
# requests:
|
||||
# storage: 10Gi
|
||||
# extensionRef: ""
|
||||
# extension:
|
||||
## metadata adds metadata to the config map configured for the hook extension
|
||||
@@ -203,7 +220,11 @@ runner:
|
||||
# metadata:
|
||||
# labels: ""
|
||||
# namespace: ""
|
||||
# yaml: ""
|
||||
# yaml:
|
||||
# metadata:
|
||||
# annotations:
|
||||
# spec:
|
||||
# containers: []
|
||||
|
||||
## A self-signed CA certificate for communication with the GitHub server can be
|
||||
## provided using a config map key selector. If `runnerMountPath` is set, for
|
||||
|
||||
Reference in New Issue
Block a user