| layout | default |
|---|---|
| title | Configuration |
| nav_order | 3 |
| permalink | /configuration |
kuberollouttrigger is configured through environment variables and command-line flags. Command-line flags take precedence over environment variables, which take precedence over defaults.
| Environment Variable | CLI Flag | Required | Default | Description |
|---|---|---|---|---|
LOG_LEVEL |
--log-level |
No | info |
Log level (debug, info, warn, error) |
VALKEY_ADDR |
--valkey-addr |
Yes | — | Valkey address in host:port format |
VALKEY_CHANNEL |
--valkey-channel |
No | kuberollouttrigger |
Valkey PubSub channel name |
VALKEY_USERNAME |
--valkey-username |
No | — | Valkey authentication username |
VALKEY_PASSWORD |
--valkey-password |
No | — | Valkey authentication password |
VALKEY_TLS_ENABLED |
--valkey-tls |
No | false |
Enable TLS for Valkey connection |
ALLOWED_IMAGE_PREFIX |
--allowed-image-prefix |
Yes | — | Required prefix for image names in payloads (e.g., ghcr.io/unitvectory-labs/) |
| Environment Variable | CLI Flag | Required | Default | Description |
|---|---|---|---|---|
WEB_LISTEN_ADDR |
--listen-addr |
No | :8080 |
HTTP server listen address |
GITHUB_OIDC_AUDIENCE |
--github-oidc-audience |
Yes | — | Required OIDC audience claim for token validation |
GITHUB_ALLOWED_ORG |
--github-allowed-org |
Yes | — | GitHub organization that must match the token's repository_owner claim |
DEV_MODE |
--dev-mode |
No | false |
Disable OIDC signature verification (for development only) |
| Environment Variable | CLI Flag | Required | Default | Description |
|---|---|---|---|---|
KUBECONFIG |
--kubeconfig |
No | — | Path to kubeconfig file. If empty, in-cluster configuration is used |
Configuration values are resolved in the following order (highest priority first):
- Command-line flags — Explicitly passed flags always win
- Environment variables — Used when the flag is not set
- Defaults — Only for optional configuration items
Both modes validate all required configuration at startup and fail fast with a clear error message listing all missing values. For example:
error: missing required configuration: VALKEY_ADDR / --valkey-addr, GITHUB_OIDC_AUDIENCE / --github-oidc-audience
On startup, both modes log a configuration summary. Secrets (passwords) are never logged. Example:
{
"level": "INFO",
"msg": "web mode configuration",
"listen_addr": ":8080",
"valkey_addr": "valkey:6379",
"valkey_channel": "kuberollouttrigger",
"valkey_tls": false,
"github_oidc_audience": "https://kuberollouttrigger.example.com",
"github_allowed_org": "unitvectory-labs",
"allowed_image_prefix": "ghcr.io/unitvectory-labs/",
"dev_mode": false,
"log_level": "info"
}Web mode emits one log entry per HTTP request with:
request_id(also returned to the client asX-Request-Id)method,path,status,duration_msremote_addr,user_agent
For failed token validation, web mode logs safe token diagnostics (no raw token content), including expected audience/org/issuer and unverified token claim metadata to simplify troubleshooting.
export VALKEY_ADDR="valkey:6379"
export GITHUB_OIDC_AUDIENCE="https://kuberollouttrigger.example.com"
export GITHUB_ALLOWED_ORG="unitvectory-labs"
export ALLOWED_IMAGE_PREFIX="ghcr.io/unitvectory-labs/"
kuberollouttrigger webkuberollouttrigger web \
--valkey-addr valkey:6379 \
--github-oidc-audience https://kuberollouttrigger.example.com \
--github-allowed-org unitvectory-labs \
--allowed-image-prefix ghcr.io/unitvectory-labs/export VALKEY_ADDR="valkey:6379"
export ALLOWED_IMAGE_PREFIX="ghcr.io/unitvectory-labs/"
kuberollouttrigger workerkuberollouttrigger worker \
--valkey-addr localhost:6379 \
--allowed-image-prefix ghcr.io/unitvectory-labs/ \
--kubeconfig ~/.kube/config