.env (loaded by npm run dev and read by Compose). In Kubernetes the Helm chart renders them from its values. A bad value is fatal at boot and names the variable.
- Req means the process refuses to start without it (or without it in the stated mode).
- Booleans on the server accept
1,true,yesor0,false,no. Artifact flags accepttrue,1,false,0. - An unknown variable is ignored, except the retired ones at the end of this page.
- The secret-store keys go in
secrets.env, not.env. The driver deletes everySECRETS_*variable at startup.
Server
Database and network
Authentication
GitHub App
See GitHub App for permissions and setup.
Jira
See Jira app.
Optional features
Admission and capacity
Admission budgets apply to every claim across all drivers and replicas. Unset means unlimited. Values are positive integers.DRIVER_CONCURRENCY (below) limits one driver.
Telemetry
Artifacts and attachments
Artifacts and member uploads share one backend. The gcs backend takes its credentials from Application Default Credentials only: Workload Identity on GKE, orgcloud auth application-default login on a workstation. A service-account key file is refused.
Secret store
Required on every boot. Read from the server’s environment only, fromsecrets.env. npm run secrets:init writes it for the database backend.
The
gcp backend uses Application Default Credentials only: Workload Identity on GKE, gcloud auth application-default login locally. There is no key file option, and a service-account key file is refused. SECRETS_DATA_KEYS and SECRETS_ACTIVE_KEY_ID are refused with gcp.
A variable for a backend you did not choose is refused.
Driver
The driver reads only the environment. It has no database access and talks to the board over HTTP.Connection and identity
Executor images and runner environment
Polling, leases and timeouts
Cleanup
Gates and metrics
Resources
Values are Kubernetes quantities: CPU as cores or millicores (2, 500m), memory with an optional suffix (1Gi). A request above its limit is fatal. All unset means no requests or limits. On Docker, memory request becomes --memory-reservation, limits become --memory and --cpus, and there is no CPU request.
Kubernetes executor
Used only withEXECUTOR=kubernetes. The Helm chart sets them. See Kubernetes.
Retired variables
These are fatal if set, so a stale value cannot change what a deployment reads:GITHUB_TOKEN, GITHUB_OWNER, GITHUB_REPOS, ORG_REPOS, ORG_ID, ORG_NAME, GITHUB_APP_INSTALLATION_ID, AUTH_AUTO_JOIN_GITHUB_ORG, AUTH_BOOTSTRAP_ADMIN, DATA_SOURCE, SYNC_TTL_SECONDS, CACHE_TTL_SECONDS, BASE_BRANCH and BOTS. Organizations are now the GitHub App’s installations, and the repository list comes from the App.