Skip to main content

Environment Variables

kindling env manages environment variables on running deployments directly — no redeploy, no image rebuild. Changes take effect immediately via a rolling restart of the affected pods.


Quick start​

# Set a variable
kindling env set myapp-dev LOG_LEVEL=debug

# Set multiple at once
kindling env set myapp-dev DATABASE_PORT=5432 REDIS_HOST=redis-svc LOG_LEVEL=debug

# List all env vars on a deployment
kindling env list myapp-dev

# Remove a variable
kindling env unset myapp-dev LOG_LEVEL
Dashboard

You can also manage environment variables from the dashboard: Develop → Environments, then open an environment's detail panel. See Dashboard for details.


How it works​

Under the hood, kindling env set patches the deployment's container spec with the new environment variables and Kubernetes performs a rolling update. This means:

  • No image rebuild required
  • Existing pods are replaced gracefully
  • The change is visible in kubectl describe deployment

env vs. secrets​

kindling envkindling secrets
PurposeRuntime config (ports, log levels, feature flags)Sensitive credentials (API keys, tokens, DSNs)
StorageInline in deployment specKubernetes Secret + local backup file
Survives cluster rebuild❌ No✅ Yes (via kindling secrets restore)
Values visibleYes (kindling env list)Never printed (kindling secrets list shows names only)

Use kindling secrets for anything sensitive. Use kindling env for everything else.


Commands​

kindling env set​

kindling env set <deployment> KEY=VALUE [KEY=VALUE ...]

Sets one or more environment variables on the specified deployment.

kindling env list​

kindling env list <deployment>

Lists all environment variables currently set on the deployment's primary container.

kindling env unset​

kindling env unset <deployment> KEY [KEY ...]

Removes one or more environment variables from the deployment.