Skip to main content

Pipelines Configurations

note

Pipelines configurations are currently undergoing a transition from YAML configurations to new HCL Configurations as Code. These new configurations will offer a richer configuration experience, but are not yet required for use. YAML configurations will continue to work as expected for the time being.

YAML configurations are read by Pipelines when HCL configurations are not present, and the Pipelines binary falls back to interpretting YAML configurations as if they were defined in the HCL configuration system in this scenario.

This means that if you have a .gruntwork/config.yml file in your repository, you can continue to use it as you have been, and Pipelines will continue to work as expected.

If you do introduce any HCL configurations into your .gruntwork directory or introduce a gruntwork.hcl file into a directory, Pipelines will begin to use the HCL configuration system instead of the YAML configuration system.

Pipelines behavior is primarily configured via a yaml file at .gruntwork/config.yml in your repository. Pipelines also reads .mise.toml at the root of the repository to determine what version of OpenTofu/Terraform and Terragrunt to use.

Example Mise Configuration

./.mise.toml

[tools]
opentofu = "1.7.2"
terragrunt = "0.67.16"
awscli = "latest"

Pipelines Configuration Options

Configurations for ./.gruntwork/config.yml:

pipelines Options

The below options are all nested under the pipelines key in the config.yml file.

consolidate-added-or-changed

When set to true enables consolidating added and changed units such that dependencies are respected.

true
Example
pipelines:
consolidate-added-or-changed: false

consolidate-deleted

consolidate-deletedbooleanoptional

When set to true enables consolidating deleted units such that dependencies are respected. This is disabled by default as it may result in unexpected deletions.

false
Example
pipelines:
consolidate-deleted: true

deploy-branch-name

deploy-branch-namestringrequired

The branch in this repository where IaC changes will be applied. Typically this is the default branch.

Example
pipelines:
deploy-branch-name: main

enable-terragrunt-provider-cache

Enables the Terragrunt Provider Cache for plans and applies.

false
Example
pipelines:
enable-terragrunt-provider-cache: true

env

envsequence(mapping)optional

(Optional) additional env vars to set for pipelines executions, e.g. TF_VAR or TERRAGRUNT_ values to customize the Terragrunt/Terraform/Opentofu run.

Example
pipelines:
env:
- name: TERRAGRUNT_PARALLELISM
value: 10
- name: CUSTOM_ENVVAR
value: somedata"

is-access-control-repo

is-access-control-repobooleanoptional

Only set to true for infrastructure-live-access-control

Example
pipelines:
is-access-control-repo: true

is-delegated-repo

is-delegated-repobooleanoptional

Only set to true for infrastructure-live-access-control and enterprise delegated (vended) repositories from account factory

Example
pipelines:
is-delegated-repo: true

session-duration

session-durationnumberoptional

Duration in seconds for each session terragunt assumes in AWS during plans and applies.

3600
Example
pipelines:
session-duration: 3600

tf-binary

tf-binarystringoptional

The IaC runtime binary, valid options are opentofu or terraform.

opentofu
Example
pipelines:
tf-binary: opentofu

Deprecated Configuration Options

cli-version

cli-versionstringdeprecated

Pipelines CLI version - no longer used as this is determined by the pipelines workflow version

repo-allow-list

repo-allow-listarray[string]required(deprecated)

No longer used but still required and should be set to the example. Will be fully removed in a later version of pipelines.

Example
repo-allow-list:
- "."

terraform-version

terraform-versionstringdeprecated

Terraform version to use for plans and applies. Will be used if mise configuration is not present, but should removed in favor of mise configuration.

terragrunt-version

terragrunt-versionstringdeprecated

Terragrunt version to use for plans and applies. Will be used if mise configuration is not present, but should removed in favor of mise configuration.

tofu-version

tofu-versionstringdeprecated

OpenTofu version to use for plans and applies. Will be used if mise configuration is not present, but should removed in favor of mise configuration.