Environment variables

The Orchestrator can read environment variables which alter the way it runs. These can be:

  • Orchestrator-specific environment variables (normally prefixed with MAVERICS_)
  • Arbitrary environment variables which can be referenced in the config file itself

Orchestrator Environment Variables

The following environment variables are available for setting Orchestrator configuration:

Command line options for maverics will override environment variables, which in turn will override settings in the configuration file. The order of precedence is:

  1. command line options (e.g. -verbose for debug level logging)
  2. environment variables (e.g. MAVERICS_DEBUG_MODE=true)
  3. settings in the configuration file (e.g. logger.level: debug)

Arbitrary Environment Variables

Maverics supports referencing environment variables in configuration files. This enables deployment specific variables to be set dynamically, and can enable selectively loading components when paired with the include field.

To express environment variables in config files, use the {{ env.VAR_NAME }} syntax. Note, the env. namespace prefix is required.

Example

The following example represents a simple usage of how environment variables can be leveraged. The example assumes that AZURE_METADATA_URL, AZURE_ACS_URL, and AZURE_ENTITY_ID are set as environment variables on the host machine.

version: 0.1

tls:
  maverics:
    certFile: certs/maverics.cert
    keyFile: certs/maverics.key

http:
  address: :443
  tls: maverics

connectors:
  - name: azure
    type: azure
    authType: saml
    samlMetadataURL: '{{ env.AZURE_METADATA_URL }}'
    samlConsumerServiceURL: '{{ env.AZURE_ACS_URL }}'
    samlEntityID: '{{ env.AZURE_ENTITY_ID }}'

appgateways:
  - name: finance-app
    basePath: /
    upstream: https://finance.enterprise.com
    headers:
      SM_USER: azure.username
      firstName: azure.firstName
      lastName: azure.lastName
    policies:
      - location: /
        authentication:
          idps:
            - azure