Configuration

Options

Options specific to Terraform Modules.

args (Optional[Union[Dict[str, List[str]], List[str]]])

List of CLI arguments/options to pass to Terraform. See Specifying Terraform CLI Arguments/Options for more details.

Example

options:
  args:
    - '-parallelism=25'
terraform_backend_config (Optional[Dict[str, str]])

Mapping to configure Terraform backend. See Backend for more details.

Changed in version 1.11.0: Added support for any key: value.

Example

options:
  terraform_backend_config:
    bucket: mybucket
    dynamodb_table: mytable
    region: us-east-1
terraform_version (Optional[Union[str, Dict[str, str]]])

String containing the Terraform version or a mapping of deploy environment to a Terraform version. See Version Management for more details.

Example

options:
  terraform_version: 0.11.13
terraform_write_auto_tfvars (Optional[bool])

Optionally write parameters to a tfvars file instead of updating variables (default: False). This can be useful in cases where Runway may not be parsing/passing parameters as expected.

When True, Runway creates a temporary runway-parameters.auto.tfvars.json file in the module directory. This file contains all of the modules parameters in JSON format. This file is then automatically loaded by Terraform as needed. If using a remote backend, use of this file to pass variables is required as environment variables are not available from the CLI and -var-file currently cannot be used. Once the module has finished processing, the file is deleted.

New in version 1.11.0.

Example

options:
  terraform_write_auto_tfvars: true

Variables

Variables can be defined per-environment using one or both of the following options.

tfvars

Standard Terraform tfvars files can be used, exactly as one normally would with terraform apply -var-file. Runway will automatically detect them when named like ENV-REGION.tfvars or ENV.tfvars.

Example

Contests of a file named common-us-east-1.tfvars

region = "us-east-1"
image_id = "ami-abc123"

runway.yml

Variable values can also be specified as parameter values in runway.yml. It is recommended to use Lookups in the parameters section to assist in selecting the appropriate values for the deploy environment and/or region being deployed to but, this is not a requirement if the value will remain the same.

---
deployments:
  - modules:
      - path: sampleapp-01.tf
        parameters:
          region: ${env AWS_REGION}
          image_id: ${var image_id.${env AWS_REGION}}
          mylist:
            - item1
            - item2
          mymap:
            key1: value1
            key2: value1
  - modules:
      - path: sampleapp-02.tf
    parameters:
      region: ${env AWS_REGION}
      image_id: ${var image_id.${env AWS_REGION}}
      mylist:
        - item1
        - item2
      mymap:
        key1: value1
        key2: value1