2023-01-17 14:36:04 -05:00
## githubConfigUrl is the GitHub url for where you want to configure runners
## ex: https://github.com/myorg/myrepo or https://github.com/myorg
githubConfigUrl : ""
## githubConfigSecret is the k8s secrets to use when auth with GitHub API.
## You can choose to use GitHub App or a PAT token
2023-03-09 17:23:32 +00:00
githubConfigSecret :
2023-01-17 14:36:04 -05:00
### GitHub Apps Configuration
## NOTE: IDs MUST be strings, use quotes
#github_app_id: ""
#github_app_installation_id: ""
#github_app_private_key: |
### GitHub PAT Configuration
github_token : ""
2023-03-01 13:16:03 +01:00
## If you have a pre-define Kubernetes secret in the same namespace the gha-runner-scale-set is going to deploy,
2023-01-31 17:04:03 -05:00
## you can also reference it via `githubConfigSecret: pre-defined-secret`.
## You need to make sure your predefined secret has all the required secret data set properly.
## For a pre-defined secret using GitHub PAT, the secret needs to be created like this:
## > kubectl create secret generic pre-defined-secret --namespace=my_namespace --from-literal=github_token='ghp_your_pat'
## For a pre-defined secret using GitHub App, the secret needs to be created like this:
## > kubectl create secret generic pre-defined-secret --namespace=my_namespace --from-literal=github_app_id=123456 --from-literal=github_app_installation_id=654321 --from-literal=github_app_private_key='-----BEGIN CERTIFICATE-----*******'
# githubConfigSecret: pre-defined-secret
2023-01-17 14:36:04 -05:00
2023-02-21 17:33:48 +00:00
## proxy can be used to define proxy settings that will be used by the
## controller, the listener and the runner of this scale set.
#
# proxy:
# http:
# url: http://proxy.com:1234
# credentialSecretRef: proxy-auth # a secret with `username` and `password` keys
# https:
# url: http://proxy.com:1234
# credentialSecretRef: proxy-auth # a secret with `username` and `password` keys
# noProxy:
# - example.com
# - example.org
2023-01-17 14:36:04 -05:00
## maxRunners is the max number of runners the auto scaling runner set will scale up to.
# maxRunners: 5
## minRunners is the min number of runners the auto scaling runner set will scale down to.
# minRunners: 0
# runnerGroup: "default"
2023-03-03 08:36:14 -05:00
## name of the runner scale set to create. Defaults to the helm release name
# runnerScaleSetName: ""
2023-03-09 17:23:32 +00:00
## 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
## each runner pod ARC will:
## - create a `github-server-tls-cert` volume containing the certificate
## specified in `certificateFrom`
## - mount that volume on path `runnerMountPath`/{certificate name}
## - set NODE_EXTRA_CA_CERTS environment variable to that same path
## - set RUNNER_UPDATE_CA_CERTS environment variable to "1" (as of version
## 2.303.0 this will instruct the runner to reload certificates on the host)
##
## If any of the above had already been set by the user in the runner pod
## template, ARC will observe those and not overwrite them.
## Example configuration:
#
# githubServerTLS:
# certificateFrom:
# configMapKeyRef:
# name: config-map-name
# key: ca.pem
# runnerMountPath: /usr/local/share/ca-certificates/
2023-01-17 14:36:04 -05:00
## template is the PodSpec for each runner Pod
template :
spec :
containers :
- name : runner
image : ghcr.io/actions/actions-runner:latest
2023-03-10 06:18:21 -05:00
command : [ "/home/runner/run.sh" ]
2023-01-17 14:36:04 -05:00
containerMode :
type : "" ## type can be set to dind or kubernetes
## with containerMode.type=dind, we will populate the template.spec with following pod spec
## template:
## spec:
## initContainers:
## - name: initExternalsInternalVolume
## image: ghcr.io/actions/actions-runner:latest
2023-03-10 06:18:21 -05:00
## command: ["cp", "-r", "-v", "/home/runner/externals/.", "/home/runner/tmpDir/"]
2023-01-17 14:36:04 -05:00
## volumeMounts:
## - name: externalsInternal
2023-03-10 06:18:21 -05:00
## mountPath: /home/runner/tmpDir
2023-01-17 14:36:04 -05:00
## containers:
## - name: runner
## image: ghcr.io/actions/actions-runner:latest
## env:
## - name: DOCKER_HOST
## value: tcp://localhost:2376
## - name: DOCKER_TLS_VERIFY
## value: "1"
## - name: DOCKER_CERT_PATH
## value: /certs/client
## volumeMounts:
## - name: workingDirectoryInternal
2023-03-10 06:18:21 -05:00
## mountPath: /home/runner/_work
2023-01-17 14:36:04 -05:00
## - name: dinDInternal
## mountPath: /certs/client
## readOnly: true
## - name: dind
## image: docker:dind
## securityContext:
## privileged: true
## volumeMounts:
## - mountPath: /certs/client
## name: dinDInternal
2023-03-10 06:18:21 -05:00
## - mountPath: /home/runner/_work
2023-01-17 14:36:04 -05:00
## name: workingDirectoryInternal
2023-03-10 06:18:21 -05:00
## - mountPath: /home/runner/externals
2023-01-17 14:36:04 -05:00
## name: externalsInternal
## volumes:
## - name: dinDInternal
## emptyDir: {}
## - name: workingDirectoryInternal
## emptyDir: {}
## - name: externalsInternal
## emptyDir: {}
######################################################################################################
## with containerMode.type=kubernetes, we will populate the template.spec with following pod spec
## template:
## spec:
## containers:
## - name: runner
## image: ghcr.io/actions/actions-runner:latest
## env:
## - name: ACTIONS_RUNNER_CONTAINER_HOOKS
2023-03-10 06:18:21 -05:00
## value: /home/runner/k8s/index.js
2023-01-17 14:36:04 -05:00
## - name: ACTIONS_RUNNER_POD_NAME
## valueFrom:
## fieldRef:
## fieldPath: metadata.name
## - name: ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER
## value: "true"
## volumeMounts:
## - name: work
2023-03-10 06:18:21 -05:00
## mountPath: /home/runner/_work
2023-01-17 14:36:04 -05:00
## volumes:
## - name: work
## ephemeral:
## volumeClaimTemplate:
## spec:
## accessModes: [ "ReadWriteOnce" ]
## storageClassName: "local-path"
## resources:
## requests:
## storage: 1Gi
## the following is required when containerMode.type=kubernetes
kubernetesModeWorkVolumeClaim :
accessModes : [ "ReadWriteOnce" ]
2023-03-14 10:52:25 -04:00
# For local testing, use https://github.com/openebs/dynamic-localpv-provisioner/blob/develop/docs/quickstart.md to provide dynamic provision volume with storageClassName: openebs-hostpath
2023-01-17 14:36:04 -05:00
# TODO: remove before release
storageClassName : "dynamic-blob-storage"
resources :
requests :
2023-03-09 17:23:32 +00:00
storage : 1Gi
2023-03-14 09:45:44 -04:00
## Optional controller service account that needs to have required Role and RoleBinding
## to operate this gha-runner-scale-set installation.
## The helm chart will try to find the controller deployment and its service account at installation time.
## In case the helm chart can't find the right service account, you can explicitly pass in the following value
## to help it finish RoleBinding with the right service account.
## Note: if your controller is installed to only watch a single namespace, you have to pass these values explicitly.
# controllerServiceAccount:
# namespace: arc-system
# name: test-arc-gha-runner-scale-set-controller