Skip to main content
Environment variable substitution allows you to reference host environment variables inside YAML configuration files using the {{ env.VAR }} syntax. Values are resolved at configuration load time regardless of which config source is used.
Console terminology: In the Maverics Console, Orchestrator instances and configuration delivery are managed through Deployments. When working directly with YAML, configuration is managed as files delivered via the -config flag or MAVERICS_CONFIG environment variable.

Overview

The {{ env.VAR }} syntax lets you externalize sensitive values and deployment-specific settings from your YAML configuration. This works with any config source — local file, S3, GitHub, or any other remote source. The Orchestrator replaces {{ env.VAR }} with the value of the named environment variable when loading configuration.
Environment variable substitution works with any config source. The {{ env.VAR }} syntax is resolved at configuration load time regardless of whether the config comes from a local file, S3, GitHub, or any other source.

Use Cases

  • Container deployments — inject deployment-specific values (client IDs, tenant IDs, hostnames) via Kubernetes ConfigMaps or Docker environment variables
  • CI/CD pipelines — set deployment-specific values during automated builds without modifying base configuration files
  • Secret injection — reference credentials set in the environment rather than hardcoding them in YAML (for production, use a secret provider instead)

Configuration

Reference environment variables in your YAML configuration using the {{ env.VAR_NAME }} syntax (spaces inside braces are optional):
Set the environment variables before starting the Orchestrator:
Lines starting with # (YAML comments) are not processed for substitution.

Syntax Reference

The substitution happens at configuration load time. If the referenced environment variable is not set, the Orchestrator will use an empty string.

Troubleshooting

  • Empty values at runtime — verify the environment variable is set in the same shell or process where the Orchestrator runs. Use printenv VAR_NAME to confirm.
  • Substitution not working — check that the syntax uses env. prefix (not just the variable name). The correct format is {{ env.MY_VAR }}, not {{ MY_VAR }} or $MY_VAR.
  • Values with special characters — wrap the substitution in quotes in YAML to prevent parsing issues: "{{ env.MY_VAR }}".

Config Sources

Overview of all configuration sources

File

Load config from a local YAML file

Secret Providers

Secure secret injection via dedicated secret providers