Skip to main content

⚙️ Configuration

All settings live in values.yaml, which ships env-agnostic defaults. Keep per-environment overrides (hostnames, storage class, secrets) in a separate values file and pass it with -f. Generated secrets (Valkey password, SeaweedFS S3 credentials, the PostgreSQL app password) are created once and preserved across upgrades via helm lookup / resource-policy: keep.

🔴 Required values​

The chart refuses to render until these are set:

ValueDescription
image.registryRegistry holding the images you built (e.g. registry.example.com).
hostnames.gitlabGitLab web hostname.
hostnames.registryContainer registry hostname.
hostnames.kasGitLab Agent Server (KAS) hostname.
hostnames.sshGit SSH hostname (may equal hostnames.gitlab).
storageClassA ReadWriteOnce StorageClass name.
ingressClassNameThe ingress class Traefik runs on.
toolboxSsh.publicKeyAdmin SSH public key — required when toolboxSsh.enabled (the default).

🐘 PostgreSQL — postgres​

The hand-rolled primary + standby pair.

ValueDefaultDescription
postgres.enabledtrueRender the in-cluster PostgreSQL.
postgres.standby.replicas1Number of async streaming standbys.
postgres.antiAffinitysoftsoft (preferred) or hard (required) host spread.
postgres.storage.size10GiPVC size per pod (raise for production).
postgres.storage.storageClass""Defaults to the top-level storageClass.
postgres.resourcesrequests 250m/512MiCPU/memory requests and limits.
postgres.parameters.*conservativemax_connections, shared_buffers, etc.
postgres.secretNamegitlab-postgres-appCredentials Secret name.
note

Failover is manual — promoting a standby is an operator action. Replication is asynchronous.

🪣 Object storage — objectStorage / seaweedfs / seaweedfsCache​

ValueDefaultDescription
objectStorage.buckets.*per subsystemBucket name per GitLab object-storage subsystem (artifacts, LFS, uploads, packages, registry, …).
objectStorage.bucketInit.enabledtrueRun the post-install/upgrade Job that creates the buckets.
seaweedfs.enabledtrueThe durable S3 store.
seaweedfsCache.enabledtrueThe disposable, emptyDir-backed runner-cache store.
seaweedfsAuth / seaweedfsCacheAuthautoAuto-generated S3 credentials (kept across upgrades).

⚡ Valkey — valkey / valkeyAuth​

ValueDefaultDescription
valkey.enabledtrueThe Redis-compatible store (upstream chart).
valkeyAuth.secretNamevalkey-authAuto-generated auth Secret.

🚦 Ingress & networking — traefik, gitssh, ingressClassName​

ValueDefaultDescription
traefik.enabledtrueInstall Traefik v3 on its own ingress class.
ingressClassName"" (required)The class Traefik serves.
gitssh.enabledtrueExpose Git SSH via an IngressRouteTCP to gitlab-shell.
clusterDomain / global.dnsDomaincluster.localCluster DNS suffix.

🔐 TLS — certManager​

ValueDefaultDescription
certManager.enabledfalseRender Certificate resources for a cluster-wide ClusterIssuer.
certManager.issuerNameletsencryptName of the existing ClusterIssuer.
certManager.email""Required when enabled.

When disabled, provide TLS Secrets yourself.

🛠️ Toolbox SSH — toolboxSsh​

ValueDefaultDescription
toolboxSsh.enabledtrueInject the SSH sidecar into the toolbox pod.
toolboxSsh.publicKey"" (required)Admin SSH public key (key auth only).
toolboxSsh.usernameadminSSH username.

🎯 GitLab 19 / backups — global.gatewayApi, toolboxBackup​

The chart deploys GitLab 19 (subchart 10.1.1). Chart 10.x needs a couple of knobs handled — see Targeting the latest GitLab (19.x) for the why.

ValueDefaultDescription
global.gatewayApi.*all falseGateway API is off (this chart uses Traefik Ingress); mirrored under gitlab.global.gatewayApi. Do not enable both.
toolboxBackup.s3cmdSecretNamegitlab-backup-s3cmdName of the generated s3cmd Secret the toolbox backup-utility uses (GitLab 19 requires backup object storage).
gitlab.gitlab.toolbox.backups.objectStorage.config.secretgitlab-backup-s3cmdWires the toolbox to that Secret. Keep in sync with the name above.
gitlab.gitlab.toolbox.image.{repository,tag}(commented)Set to your PG18-capable toolbox image (see Installation step 3) before backing up the in-cluster PostgreSQL 18 database.

📈 Monitoring — seaweedfsAlerts and subchart ServiceMonitors​

ServiceMonitor / PrometheusRule emission is per-environment so the chart installs cleanly without prometheus-operator. Enable the SeaweedFS alert rules (seaweedfsAlerts) and subchart ServiceMonitors only where prometheus-operator is present.

🏷️ Other​

ValueDefaultDescription
runner.jobNamespacegitlab-runner-jobNamespace for CI build pods.
releaseNamespacegitlabUsed in NOTES and templated references; match your install namespace.

For the full set of tunables and inline guidance, read values.yaml directly — every block is documented in place.