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-09-07 13:51:41 +02:00
## maxRunners is the max number of runners the autoscaling runner set will scale up to.
2023-01-17 14:36:04 -05:00
# maxRunners: 5
2023-12-13 19:39:21 +01:00
## minRunners is the min number of idle runners. The target number of runners created will be
## calculated as a sum of minRunners and the number of jobs assigned to the scale set.
2023-01-17 14:36:04 -05:00
# 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
2023-03-31 10:31:25 -04:00
# key: ca.crt
2023-03-09 17:23:32 +00:00
# runnerMountPath: /usr/local/share/ca-certificates/
2023-09-07 13:51:41 +02:00
## Container mode is an object that provides out-of-box configuration
2023-08-18 11:03:28 +02:00
## for dind and kubernetes mode. Template will be modified as documented under the
## template object.
##
## If any customization is required for dind or kubernetes mode, containerMode should remain
## empty, and configuration should be applied to the template.
2023-03-28 10:16:38 +01:00
# containerMode:
# type: "dind" ## type can be set to dind or kubernetes
# ## the following is required when containerMode.type=kubernetes
# kubernetesModeWorkVolumeClaim:
# accessModes: ["ReadWriteOnce"]
# # 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
# storageClassName: "dynamic-blob-storage"
# resources:
# requests:
# storage: 1Gi
2023-10-18 20:37:39 +09:00
# kubernetesModeServiceAccount:
# annotations:
2023-03-16 16:02:18 +01:00
2024-04-15 18:48:30 +09:00
## listenerTemplate is the PodSpec for each listener Pod
2023-09-14 15:33:29 +02:00
## For reference: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#PodSpec
# listenerTemplate:
# spec:
# containers:
# # Use this section to append additional configuration to the listener container.
# # If you change the name of the container, the configuration will not be applied to the listener,
# # and it will be treated as a side-car container.
# - name: listener
# securityContext:
# runAsUser: 1000
# # Use this section to add the configuration of a side-car container.
# # Comment it out or remove it if you don't need it.
# # Spec for this container will be applied as is without any modifications.
# - name: side-car
# image: example-sidecar
2023-03-16 16:02:18 +01:00
## template is the PodSpec for each runner Pod
2023-09-14 15:33:29 +02:00
## For reference: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#PodSpec
2023-03-16 16:02:18 +01:00
template :
## template.spec will be modified if you change the container mode
2023-01-17 14:36:04 -05:00
## with containerMode.type=dind, we will populate the template.spec with following pod spec
## template:
## spec:
## initContainers:
2023-03-17 04:26:51 -04:00
## - name: init-dind-externals
2023-01-17 14:36:04 -05:00
## 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:
2023-03-17 04:26:51 -04:00
## - name: dind-externals
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
2023-09-07 05:47:08 -06:00
## command: ["/home/runner/run.sh"]
2023-01-17 14:36:04 -05:00
## env:
## - name: DOCKER_HOST
2024-03-19 11:29:07 +01:00
## value: unix:///var/run/docker.sock
2023-01-17 14:36:04 -05:00
## volumeMounts:
2023-03-17 04:26:51 -04:00
## - name: work
2023-03-10 06:18:21 -05:00
## mountPath: /home/runner/_work
2023-09-22 13:41:50 +03:00
## - name: dind-sock
2024-03-19 15:24:58 +01:00
## mountPath: /var/run
2023-01-17 14:36:04 -05:00
## - name: dind
## image: docker:dind
2023-09-22 13:41:50 +03:00
## args:
## - dockerd
2024-03-19 11:29:07 +01:00
## - --host=unix:///var/run/docker.sock
2023-09-22 13:41:50 +03:00
## - --group=$(DOCKER_GROUP_GID)
## env:
## - name: DOCKER_GROUP_GID
## value: "123"
2023-01-17 14:36:04 -05:00
## securityContext:
## privileged: true
## volumeMounts:
2023-03-17 04:26:51 -04:00
## - name: work
## mountPath: /home/runner/_work
2023-09-22 13:41:50 +03:00
## - name: dind-sock
2024-03-19 15:24:58 +01:00
## mountPath: /var/run
2023-03-17 04:26:51 -04:00
## - name: dind-externals
## mountPath: /home/runner/externals
2023-01-17 14:36:04 -05:00
## volumes:
2023-03-17 04:26:51 -04:00
## - name: work
2023-01-17 14:36:04 -05:00
## emptyDir: {}
2023-09-22 13:41:50 +03:00
## - name: dind-sock
2023-01-17 14:36:04 -05:00
## emptyDir: {}
2023-03-17 04:26:51 -04:00
## - name: dind-externals
2023-01-17 14:36:04 -05:00
## 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
2023-09-07 05:47:08 -06:00
## command: ["/home/runner/run.sh"]
2023-01-17 14:36:04 -05:00
## 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
2023-03-16 16:02:18 +01:00
spec :
containers :
2023-09-14 15:33:29 +02:00
- name : runner
image : ghcr.io/actions/actions-runner:latest
command : [ "/home/runner/run.sh" ]
2023-03-14 09:45:44 -04:00
2023-03-28 10:16:38 +01:00
## Optional controller service account that needs to have required Role and RoleBinding
2023-03-14 09:45:44 -04:00
## 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
2023-03-28 10:16:38 +01:00
# name: test-arc-gha-runner-scale-set-controller