Skip to content

Environment Variables

Complete reference of all environment variables used by Boilerhouse. The Go rewrite reads far fewer variables than the TypeScript version — most configuration now lives in Custom Resources.

Shared (all binaries)

VariableDefaultDescription
KUBECONFIG~/.kube/configPath to kubeconfig file. Not needed when running in-cluster.
K8S_NAMESPACEboilerhouseNamespace where CRDs and Pods are managed
LOG_LEVELinfoLog level: debug, info, warn, error

API Server (cmd/api)

VariableDefaultDescription
PORT3000HTTP listen port
LISTEN_HOST127.0.0.1Bind address
BOILERHOUSE_API_KEYBearer token for /api/v1/* routes. When unset, the API is unauthenticated.
CORS_ORIGINComma-separated list of allowed CORS origins. * is accepted as wildcard.

Operator (cmd/operator)

VariableDefaultDescription
METRICS_PORT9464Prometheus metrics endpoint port
HEALTH_PORT8081Health/readiness probe port
LEADER_ELECTtrueEnable leader election via Kubernetes Lease. Set to "false" to disable.
WORKLOADS_DIRDirectory containing Dockerfiles referenced by image.dockerfile in workload specs. Only required if you use Dockerfile-based workload images.

Trigger Gateway (cmd/trigger)

The trigger gateway reads its configuration from BoilerhouseTrigger Custom Resources; it has no trigger-specific environment variables beyond the shared set.

Observability

VariableDefaultDescription
OTEL_EXPORTER_OTLP_ENDPOINTOpenTelemetry OTLP HTTP endpoint (e.g., http://otel-collector:4318)

What Was Removed

These variables existed in the TypeScript implementation and no longer apply:

RemovedReplacement
DB_PATH, STORAGE_PATHAll state lives in the Kubernetes API
RUNTIME_TYPEKubernetes is the only runtime
MAX_INSTANCESUse Kubernetes ResourceQuota on the namespace
BOILERHOUSE_SECRET_KEYOverlay encryption is the PVC storage class's responsibility; credential injection uses Kubernetes Secret resources
S3_*, AWS_*, OVERLAY_CACHE_*Overlay archives are stored on a PersistentVolumeClaim
DOCKER_SOCKET, SECCOMP_PROFILE_PATH, ENDPOINT_HOSTDocker runtime removed
K8S_API_URL, K8S_TOKEN, K8S_CA_CERT, K8S_CONTEXT, K8S_MINIKUBE_PROFILEAll binaries use ctrl.GetConfig() (KUBECONFIG or in-cluster)
LEADER_ELECTION_NAMESPACE, LEADER_ELECTION_NAMEHard-coded to K8S_NAMESPACE / boilerhouse-operator
METRICS_HOSTMetrics bind to 0.0.0.0:$METRICS_PORT