1## Configure namespace where the GitLab Runner deployment will be created
2## By default, the runner deployment uses the Release namespace (.Release.Namespace)
3## Set this value to override and deploy the runner in a different namespace
4## This allows separation between runner management (this namespace) and job execution (runners.jobNamespace)
6## Example: Deploy runner in "ops" namespace while jobs run in "gitlab" namespace
11## By default it's using registry.gitlab.com/gitlab-org/gitlab-runner:alpine-v{VERSION}
12## where {VERSION} is taken from Chart.yaml from appVersion field
14## ref: https://gitlab.com/gitlab-org/gitlab-runner/container_registry/29383?orderBy=NAME&sort=asc&search[]=alpine-v&search[]=
16## Note: If you change the image to the ubuntu release
17## don't forget to change the securityContext;
18## these images run on different user IDs.
22 repository: chainguard-private/gitlab-runner-fips
23 # tag: alpine-v{{.Chart.AppVersion}}
25 tag: 19.5.0-r1@sha256:2f85094b5b417d5c24209a6642173c06d54229d509d6245c6437f1c56acfed9f
26## DEPRECATED: use `image.repository` instead.
27## Kept for backward compatibility: when `image.image` is set it overrides
28## `image.repository`, so existing overrides keep working across upgrades.
29## Remove it from your values once you have switched to `image.repository`.
30# image: gitlab-org/gitlab-runner
32## When using GitLab Runner Helm Chart with gitlab-runner-ubi-images (https://gitlab.com/gitlab-org/ci-cd/gitlab-runner-ubi-images/container_registry)
33## the installation fails because `dumb-init` is not packaged in the image. However, `tini` is present.
34## This configuration will allow gitlab-runner-ubi-images users to explicitly enable the use of `tini` instead of `dumb-init`
36## Specify a imagePullPolicy for the main runner deployment
37## 'Always' if image.tag is 'latest', else set to 'IfNotPresent'
39## Note: it does not apply to job containers launched by this executor.
40## Use `pull_policy` in [runners.kubernetes] to change it.
42## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
44imagePullPolicy: IfNotPresent
45## Specifying ImagePullSecrets on a Pod
46## Kubernetes supports specifying container image registry keys on a Pod.
47## ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
50# - name: "image-pull-secret"
52## Timeout, in seconds, for liveness and readiness probes of a runner pod.
53# probeTimeoutSeconds: 4
55## Configure the livenessProbe. The probe runs `gitlab-runner verify` and
56## fails when GitLab is unreachable; set enabled to false to keep an
57## unreachable GitLab from restarting the runner pod.
60# initialDelaySeconds: 60
64# terminationGracePeriodSeconds: 30
66## Configure the readinessProbe
68# initialDelaySeconds: 60
73## Configure an optional startupProbe.
75## Useful when the runner does work at boot (e.g. a deeper health check that
76## dispatches a synthetic job) that should complete before the pod accepts
77## traffic. While the startupProbe is running, kubelet does not run the
78## liveness or readiness probes, so during a rolling update the new pod
79## stays NotReady — and the old pod isn't terminated — until startupProbe
80## passes. Specify the full Kubernetes probe spec.
82## The example below uses the built-in `/health/ready` endpoint available
83## since GitLab Runner 19.2, which gates readiness on the boot-time canary
84## (opt in per runner via `[runners.experimental.boot_verify]` in the runner
85## configuration; experimental). It is served by the
86## metrics/debug server, so `metrics.enabled` must be set to `true` and the
87## probe port must match `metrics.port`. You can also point the probe at any
88## endpoint you provide yourself.
97## How many runner pods to launch.
101## How many old ReplicaSets for this Deployment you want to retain
102# revisionHistoryLimit: 10
104## The GitLab Server URL (with protocol) that want to register the runner against
105## ref: https://docs.gitlab.com/runner/commands/index.html#gitlab-runner-register
107# gitlabUrl: https://gitlab.your-domain.com/
109## The Runner Token for adding new Runners to the GitLab Server. This must
110## be retrieved from your GitLab instance. It is the token of an already registered runner.
111## ref: (we don't have docs for that yet, but we want to use an existing token)
116## Unregister all runners before termination
118## Updating the runner's chart version or configuration will cause the runner container
119## to be terminated and created again. This may cause your Gitlab instance to reference
120## non-existant runners. Un-registering the runner before termination mitigates this issue.
121## ref: https://docs.gitlab.com/runner/commands/index.html#gitlab-runner-unregister
123## This property ensures that all the Runners present in the local config.toml are unregistered when the chart is uninstalled
124## - If the token is prefixed with `glrt-` (meaning the runner was created in the UI or API),
125## the unregisterRunners property deletes the runner manager, not the runner.
126## The runner manager is identified by the runner and the machine that contains the config.toml.
127unregisterRunners: true
128## When stopping the runner, give it time to wait for its jobs to terminate.
130## Updating the runner's chart version or configuration will cause the runner container
131## to be terminated with a graceful stop request. terminationGracePeriodSeconds
132## instructs Kubernetes to wait long enough for the runner pod to terminate gracefully.
133## ref: https://docs.gitlab.com/runner/commands/#signals
134terminationGracePeriodSeconds: 3600
135## Set the certsSecretName in order to pass custom certficates for GitLab Runner to use.
136## Provide resource name for a Kubernetes Secret Object in the same namespace,
137## this is used to populate the /home/gitlab-runner/.gitlab-runner/certs/ directory
138## ref: https://docs.gitlab.com/runner/configuration/tls-self-signed.html#supported-options-for-self-signed-certificates-targeting-the-gitlab-server
142## Configure the maximum number of concurrent jobs
143## ref: https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-global-section
146## Number of seconds until the forceful shutdown operation times out and exits the process.
147## ref: https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-global-section
150## Defines in seconds how often to check GitLab for new builds
151## ref: https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-global-section
154## Configure GitLab Runner's logging level. Available values are: debug, info, warn, error, fatal, panic
155## ref: https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-global-section
159## Configure GitLab Runner's logging format. Available values are: runner, text, json
160## ref: https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-global-section
164## Configure GitLab Runner's Sentry DSN.
165## ref https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-global-section
169## Configure GitLab Runner's maximum connection age for TLS keepalive connections.
170## ref https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-global-section
172# connectionMaxAge: "15m"
174## A custom bash script that will be executed prior to the invocation of the
175## gitlab-runner process
177#preEntrypointScript: |
180## Specify whether the runner should start the session server.
184## When sessionServer is enabled, the user can either provide a public publicIP
185## or rely on the external IP auto discovery.
186## When a serviceAccountName is used with the automounting to the pod disabled,
187## we recommend the usage of the publicIP
196 #In case sessionServer.serviceType is NodePort. If not defined, auto NodePort will be assigned.
200 # loadBalancerSourceRanges:
203 #Valid values: ClusterIP, Headless, NodePort, LoadBalancer
204 serviceType: LoadBalancer
205 ## Specify the services external traffic policy
207 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-policies
209 # externalTrafficPolicy:
211 ## Specify the services internal traffic policy
213 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-policies
215 # internalTrafficPolicy:
217 # if enabled, sessionServer.publicIP variable should be set to the host e.g. runner1.example.com
223 - secretName: gitlab-runner-session-server
226 ## Specifies whether a Role and RoleBinding should be created
227 ## If this value is set to `true`, `serviceAccount.create` should also be set to either `true` or `false`
230 ## Define the generated serviceAccountName when create is set to true
231 ## It defaults to "gitlab-runner.fullname" if not provided
232 ## DEPRECATED: Please use `serviceAccount.name` instead
233 generatedServiceAccountName: ""
234 ## Define list of rules to be added to the rbac role permissions.
235 ## Each rule supports the keys:
236 ## - apiGroups: default "" (indicates the core API group) if missing or empty.
237 ## - resources: default "*" if missing or empty.
238 ## - verbs: default "*" if missing or empty.
240 ## Read more about the recommended rules on the following link
242 ## ref: https://docs.gitlab.com/runner/executors/kubernetes/index.html#configure-runner-api-permissions
245 # - resources: ["events"]
246 # verbs: ["list", "watch"]
247 # - resources: ["namespaces"]
248 # verbs: ["create", "delete"]
249 # - resources: ["pods"]
250 # verbs: ["create","delete","get"]
252 # resources: ["pods/attach","pods/exec"]
253 # verbs: ["get","create","patch","delete"]
255 # resources: ["pods/log"]
256 # verbs: ["get","list"]
257 # - resources: ["secrets"]
258 # verbs: ["create","delete","get","update"]
259 # - resources: ["serviceaccounts"]
261 # - resources: ["services"]
262 # verbs: ["create","get"]
264 ## Run the gitlab-bastion container with the ability to deploy/manage containers of jobs
265 ## cluster-wide or only within namespace
266 clusterWideAccess: false
267 ## Use the following Kubernetes Service Account name if RBAC is disabled in this Helm chart (see rbac.create)
268 ## DEPRECATED: Please use `serviceAccount.name` instead
270 # serviceAccountName: default
272 ## Specify annotations for Service Accounts, useful for annotations such as eks.amazonaws.com/role-arn.
273 ## Values may refer to other values as the _tpl_ function is implicitly applied. Mind the quotes when using this, e.g.
274 ## serviceAccountAnnotations:
275 ## eks.amazonaws.com/role-arn: "arn:aws:iam::{{ .Values.global.accountId }}:role/{{ .Values.global.iamRoleName }}"
277 ## ref: https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html
279 ## DEPRECATED: Please use `serviceAccount.annotations` instead
281 serviceAccountAnnotations: {}
282 ## Use podSecurity Policy
283 ## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
288 ## Specify one or more imagePullSecrets used for pulling the runner image
290 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account
292 ## DEPRECATED: Please use `serviceAccount.imagePullSecrets` instead
295## Configure ServiceAccount
298 ## Specifies whether a ServiceAccount should be created
300 ## TODO: Set default to `false`
302 ## The name of the ServiceAccount to use.
303 ## If not set and create is `true`, a name is generated using the `gitlab-runner.fullname`` template
306 ## Additional custom annotations for the ServiceAccount, useful for annotations such as eks.amazonaws.com/role-arn.
307 ## Values may refer other values as the _tpl_ function is implicitly applied. Mind the quotes when using this, e.g.
308 ## serviceAccountAnnotations:
309 ## eks.amazonaws.com/role-arn: "arn:aws:iam::{{ .Values.global.accountId }}:role/{{ .Values.global.iamRoleName }}"
311 ## ref: https://docs.aws.amazon.com/eks/latest/userguide/specify-service-account-role.html
314 ## Specify one or more imagePullSecrets used for pulling the runner image
316 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account
319## Configure integrated Prometheus metrics exporter
321## ref: https://docs.gitlab.com/runner/monitoring/#configuration-of-the-metrics-http-server
325 ## Define a name for the metrics port
328 ## Provide a port number for the integrated Prometheus metrics exporter
331 ## Configure a prometheus-operator serviceMonitor to allow autodetection of
332 ## the scraping target. Requires enabling the service resource below.
334 ## DEPRECATED: Use podMonitor instead. ServiceMonitor requires a Service and
335 ## cannot collect metrics during graceful shutdown when pods are marked NotReady.
339 ## Namespace where ServiceMonitor should be installed. Defaults to the
340 ## same namespace where the release will be installed.
343 ## Provide additional labels to the service monitor resource
346 ## Provide annotations to the service monitor ressource
350 ## Define a scrape interval (otherwise prometheus default is used)
352 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
356 ## Specify the scrape protocol scheme e.g., https or http
360 ## Supply a tls configuration for the service monitor
362 ## ref: https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/charts/crds/crds/crd-servicemonitors.yaml
366 ## The URI path where prometheus metrics can be scraped from
370 ## A list of MetricRelabelConfigs to apply to samples before ingestion
372 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
374 # metricRelabelings: []
376 ## A list of RelabelConfigs to apply to samples before scraping
378 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
382 ## Configure a prometheus-operator podMonitor to scrape metrics directly from pods.
384 ## RECOMMENDED: PodMonitor is the preferred method for collecting metrics as it:
385 ## - Scrapes metrics directly from pods without requiring a Service
386 ## - Continues to collect metrics during graceful shutdown when pods are marked NotReady
387 ## - Provides better visibility into shutdown metrics and termination behavior
391 ## Namespace where PodMonitor should be installed. Defaults to the
392 ## same namespace where the release will be installed.
395 ## Provide additional labels to the pod monitor resource
398## Provide annotations to the pod monitor resource
402## Define a scrape interval (otherwise prometheus default is used)
404## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
408## Specify the scrape protocol scheme e.g., https or http
412## Supply a tls configuration for the pod monitor
414## ref: https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/charts/crds/crds/crd-podmonitors.yaml
418## The URI path where prometheus metrics can be scraped from
422## A list of MetricRelabelConfigs to apply to samples before ingestion
424## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
426# metricRelabelings: []
428## A list of RelabelConfigs to apply to samples before scraping
430## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
434## Configure a service resource (optional, only needed if using the deprecated
435## ServiceMonitor instead of the recommended PodMonitor)
438 ## Provide additonal labels for the service
442 ## Provide additonal annotations for the service
446 ## Define a specific ClusterIP if you do not want a dynamic one
448 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
452 ## Define a list of one or more external IPs for this service
454 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
458 ## Provide a specific loadbalancerIP e.g., of an external Loadbalancer
460 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
464 ## Provide a list of source IP ranges to have access to this service
466 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#aws-nlb-support
468 # loadBalancerSourceRanges: []
470 ## Specify the service type e.g., ClusterIP, NodePort, LoadBalancer or ExternalName
472 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
475 ## Specify the services metrics nodeport if you use a service of type nodePort
478## Specify the node port under which the prometheus metrics of the runner are made
481## ref: https://kubernetes.io/docs/concepts/services-networking/service/#nodeport
485## Provide a list of additional ports to be exposed by this service
487## ref: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
491## Specify the services external traffic policy
493## ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-policies
495# externalTrafficPolicy:
497## Specify the services internal traffic policy
499## ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-policies
501# internalTrafficPolicy:
503## Configuration for the Pods that the runner launches for each new job
506 ## Configure namespace where GitLab Runner job pods will be created
507 ## By default, job pods use the Release namespace (.Release.Namespace)
508 ## Set this value to run jobs in a different namespace than the runner deployment
509 ## This enables separation between runner management and job execution
511 ## Example: Runner in "ops" namespace, jobs in "gitlab" namespace
514 # runner configuration, where the multi line string is evaluated as a
515 # template so you can specify helm values inside of it.
517 # tpl: https://helm.sh/docs/howto/charts_tips_and_tricks/#using-the-tpl-function
518 # runner configuration: https://docs.gitlab.com/runner/configuration/advanced-configuration.html
522 namespace = "{{ default .Release.Namespace .Values.runners.jobNamespace }}"
524 ## Absolute path for an existing runner configuration file
525 ## Can be used alongside "volumes" and "volumeMounts" to use an external config file
526 ## Active if runners.config is empty or null
528 ## When set, written verbatim as the runner's config.toml and `gitlab-runner
529 ## register` is skipped on boot. The supplied TOML is passed through `tpl`,
530 ## so Helm values can be interpolated as usual.
532 ## configOverride must be a COMPLETE config.toml: it replaces the rendered
533 ## config in its entirety, so the following chart values have NO effect and
534 ## must be expressed directly in the TOML (or omitted):
536 ## - concurrent, checkInterval, shutdown_timeout, logLevel, logFormat,
537 ## sentryDsn, connectionMaxAge
538 ## - metrics.enabled / metrics.port (set `listen_address = ":<port>"`)
539 ## - sessionServer.* (write [session_server] directly; placeholder
540 ## substitution is also skipped)
541 ## - runners.config, runners.configPath
542 ## - runners.name, runners.tags, runners.locked, runners.protected,
543 ## runners.runUntagged, runners.maximumTimeout, runners.executor,
544 ## runners.jobNamespace
545 ## - gitlabUrl (set `url = "..."` under [[runners]])
546 ## - runnerRegistrationToken / runnerToken (the token lives in the TOML or
547 ## is injected via extraEnv / extraEnvFromRefs / secrets)
549 ## Pod-level values (extraEnv, secrets, certsSecretName, volumes, RBAC,
550 ## metrics Service/PodMonitor, ...) are unaffected.
552 ## On boot the entrypoint runs `gitlab-runner verify --url=` so an invalid
553 ## token fails loudly instead of producing a runner that never picks up jobs.
562 # url = "https://gitlab.example.com/"
563 # token = "glrt-xxxxxxxxxxxxxxxxxxxx"
564 # executor = "kubernetes"
565 # [runners.kubernetes]
566 # namespace = "gitlab-runner"
569 ## Which executor should be used
571 # executor: kubernetes
573 ## Specify the name for the runner.
577 ## The name of the secret containing runner-token and runner-registration-token
578 # secret: gitlab-runner
580 ## Distributed runners caching
581 ## ref: https://docs.gitlab.com/runner/configuration/autoscale.html#distributed-runners-caching
583 ## If you want to use s3 based distributing caching:
584 ## First of all you need to uncomment General settings and S3 settings sections.
586 ## Create a secret 's3access' containing 'accesskey' & 'secretkey'
587 ## ref: https://aws.amazon.com/blogs/security/wheres-my-secret-access-key/
589 ## $ kubectl create secret generic s3access \
590 ## --from-literal=accesskey="YourAccessKey" \
591 ## --from-literal=secretkey="YourSecretKey"
592 ## ref: https://kubernetes.io/docs/concepts/configuration/secret/
594 ## If you want to use gcs based distributing caching:
595 ## First of all you need to uncomment General settings and GCS settings sections.
597 ## Access using credentials file:
598 ## Create a secret 'google-application-credentials' containing your application credentials file.
599 ## ref: https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runnerscachegcs-section
600 ## You could configure
601 ## $ kubectl create secret generic google-application-credentials \
602 ## --from-file=gcs-application-credentials-file=./path-to-your-google-application-credentials-file.json
603 ## ref: https://kubernetes.io/docs/concepts/configuration/secret/
605 ## Access using access-id and private-key:
606 ## Create a secret 'gcsaccess' containing 'gcs-access-id' & 'gcs-private-key'.
607 ## ref: https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runnerscachegcs-section
608 ## You could configure
609 ## $ kubectl create secret generic gcsaccess \
610 ## --from-literal=gcs-access-id="YourAccessID" \
611 ## --from-literal=gcs-private-key="YourPrivateKey"
612 ## ref: https://kubernetes.io/docs/concepts/configuration/secret/
614 ## If you want to use Azure-based distributed caching:
615 ## First, uncomment General settings.
617 ## Create a secret 'azureaccess' containing 'azure-account-name' & 'azure-account-key'
618 ## ref: https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction
620 ## $ kubectl create secret generic azureaccess \
621 ## --from-literal=azure-account-name="YourAccountName" \
622 ## --from-literal=azure-account-key="YourAccountKey"
623 ## ref: https://kubernetes.io/docs/concepts/configuration/secret/
625 ## S3 the name of the secret.
626 # secretName: s3access
627 ## Use this line for access using gcs-access-id and gcs-private-key
628 # secretName: gcsaccess
629 ## Use this line for access using google-application-credentials file
630 # secretName: google-application-credentials
631 ## Use this line for access using Azure with azure-account-name and azure-account-key
632 # secretName: azureaccess
634 ## When using cloud-native auth (e.g. Workload Identity) with the docker+machine
635 ## executor, set this to true to prevent the chart's entrypoint from globally
636 ## exporting cache credential env vars (CACHE_S3_*, GOOGLE_APPLICATION_CREDENTIALS,
637 ## CACHE_GCS_*, CACHE_AZURE_*). This allows subprocesses (e.g. docker-machine)
638 ## to use their own identity instead of inheriting the cache credentials.
640 ## When this flag is set to true, you MUST configure cache credentials explicitly
641 ## in runners.config under [runners.cache.*], for example:
642 ## [runners.cache.gcs]
643 ## CredentialsFile = "/secrets/gcs-application-credentials-file"
644 ## BucketName = "my-cache-bucket"
645 ## Otherwise the runner will not be able to access the cache.
647 ## ref: https://gitlab.com/gitlab-com/gl-infra/production-engineering/-/work_items/28874
648 # disableGlobalCredentialsExport: false
649## Specify the name of the scheduler which is used to schedule runner pods.
650## Kubernetes supports multiple scheduler configurations.
651## ref: https://kubernetes.io/docs/reference/scheduling
652# schedulerName: "my-custom-scheduler"
654## Configure securitycontext for the main container
655## ref: https://kubernetes.io/docs/concepts/security/pod-security-standards/
658 allowPrivilegeEscalation: false
659 readOnlyRootFilesystem: false
664## Configure update strategy for multi-replica deployments
665## Kubernetes supports types Recreate, and RollingUpdate
666## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
674## Configure securitycontext valid for the whole pod
675## ref: https://kubernetes.io/docs/concepts/security/pod-security-standards/
681 # supplementalGroups: [65533]
682## Note: values for the ubuntu image:
686## Configure resource requests and limits
687## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
693# ephemeral-storage: 512Mi
697# ephemeral-storage: 256Mi
699## Affinity for pod assignment
700## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
703## TopologySpreadConstraints for pod assignment
704## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
706topologySpreadConstraints: {}
707# Example: The gitlab runner should be evenly spread across zones
710# whenUnsatisfiable: DoNotSchedule
715## RuntimeClass name for pod assignment
716## ref: https://kubernetes.io/docs/concepts/containers/runtime-class/
719# Example: Once RuntimeClasses are configured for the cluster, you can specify it.
720# runtimeClassName: myclass
722## Node labels for pod assignment
723## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
726# Example: The gitlab runner manager should not run on spot instances so you can assign
727# them to the regular worker nodes only.
728# node-role.kubernetes.io/worker: "true"
730## List of node taints to tolerate (requires Kubernetes >= 1.6)
731## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
734# Example: Regular worker nodes may have a taint, thus you need to tolerate the taint
735# when you assign the gitlab runner manager with nodeSelector or affinity to the nodes.
736# - key: "node-role.kubernetes.io/worker"
739## Configure environment variables that will be present when the registration command runs
740## This provides further control over the registration process and the config.toml file
741## ref: `gitlab-runner register --help`
742## ref: https://docs.gitlab.com/runner/configuration/advanced-configuration.html
745# - name: RUNNER_EXECUTOR
748## Additional environment variables from key-value pairs.
750# CACHE_S3_SERVER_ADDRESS: s3.amazonaws.com
751# CACHE_S3_BUCKET_NAME: runners-cache
752# CACHE_S3_BUCKET_LOCATION: us-east-1
755## Additional environment variables from other data sources
757# CACHE_S3_ACCESS_KEY:
761# CACHE_S3_SECRET_KEY:
766## Additional environment variables refs
769# name: gitlab-runner-cache-config
771## list of hosts and IPs that will be injected into the pod's hosts file
783## Annotations to be added to deployment
785deploymentAnnotations: {}
787# downscaler/uptime: <my_uptime_period>
789## Labels to be added to deployment
793# owner.team: <my_cool_team>
794# owner.team: "{{ .Values.team }}"
795# tags.{{ .Values.tag }}/env: "{{ .Values.environment }}"
797## Init containers to be added to deployment
799deploymentInitContainers: []
801# - name: init-container
802# image: busybox:latest
803# command: ['sh', '-c', 'sleep 5']
805## Lifecycle options to be added to deployment
807deploymentLifecycle: {}
811# command: ["/bin/sh", "-c", "echo 'shutting down'"]
813## Set hostname for runner pods
814#hostname: my-gitlab-runner
816## Annotations to be added to manager pod
820# iam.amazonaws.com/role: <my_role_arn>
822## Labels to be added to manager pod
824## Supports templating
827# owner.team: <my_cool_team>
828# owner.team: "{{ .Values.team }}"
829# tags.{{ .Values.tag }}/env: "{{ .Values.environment }}"
831## PodDisruptionBudget for the runner manager Deployment. Only meaningful
832## with multiple manager replicas.
833## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
835# podDisruptionBudget: {}
838## HPA support for custom metrics:
839## This section enables runners to autoscale based on defined custom metrics.
840## In order to use this functionality, you need to enable a custom metrics API server by
841## implementing "custom.metrics.k8s.io" using supported third party adapter
842## Example: https://github.com/directxman12/k8s-prometheus-adapter
850# metricName: gitlab_runner_jobs
851# targetAverageValue: 400m
853## Configure priorityClassName for manager pod. See k8s docs for more info on how pod priority works:
854## https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
856## Secrets to be additionally mounted to the containers.
857## All secrets are mounted through init-runner-secrets volume
858## and placed as readonly at /init-secrets in the init container
859## and finally copied to an in-memory volume runner-secrets that is
860## mounted at /secrets.
864# - name: myOtherSecret
869## Boolean to turn off the automountServiceAccountToken in the deployment
870## ref: https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/#bound-service-account-token-volume
872# automountServiceAccountToken: false
874## Additional config files to mount in the containers in `/configmaps`.
876## Please note that a number of keys are reserved by the runner.
877## See https://gitlab.com/gitlab-org/charts/gitlab-runner/-/blob/main/templates/configmap.yaml
878## for a current list.
880## Labels to be added to configMaps
882## Supports templating
885# owner.team: <my_cool_team>
886# owner.team: "{{ .Values.team }}"
887# tags.{{ .Values.tag }}/env: "{{ .Values.environment }}"
889## Additional volumeMounts to add to the runner container
894# mountPath: /mount/path
896## Additional volumes to add to the runner deployment
901# persistentVolumeClaim:
904## Array of extra K8s manifests to deploy
907# - apiVersion: external-secrets.io/v1
908# kind: ExternalSecret
910# name: '{{ include "gitlab-runner.secret" . }}'
915# name: my-secret-store
919# runner-registration-token: "" # need to leave as an empty string for compatibility reasons
920# runner-token: "{{`{{ .runnerToken }}`}}"
923# key: my-secret-store-secret
925## Add additional containers to the Pod, e.g. to run as sidecars.
929# image: docker:20.10-dind
933# - mountPath: /var/run/
938# command: [ "sh", "-c", "until docker info; do sleep 1; done;" ]