Configuration

Options

Options specific to Terraform Modules.

args: Optional[Union[Dict[str, List[str]], List[str]]] = None

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

Example

options:
  args:
    - '-parallelism=25'

New in version 1.8.1.

terraform_backend_config: Optional[Dict[str, str]] = {}

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

Example

options:
  terraform_backend_config:
    bucket: mybucket
    dynamodb_table: mytable
    region: us-east-1

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

terraform_version: Optional[str] = None

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] = False

Optionally write parameters to a tfvars file instead of updating variables. 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.

Example

options:
  terraform_write_auto_tfvars: true

New in version 1.11.0.

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

common-us-east-1.tfvars
region = "us-east-1"
image_id = "ami-abc123"

runway.yml

Variable values can also be specified as deployment.parameters/module.parameters 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}}
          my_list:
            - item1
            - item2
          my_map:
            key1: value1
            key2: value1
  - modules:
      - path: sampleapp-02.tf
    parameters:
      region: ${env AWS_REGION}
      image_id: ${var image_id.${env AWS_REGION}}
      my_list:
        - item1
        - item2
      my_map:
        key1: value1
        key2: value1