Configuration
Contents
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 temporaryrunway-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
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