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.