Pipelines Configurations
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 interpreting 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
consolidate-added-or-changedbooleanWhen set to true enables consolidating added and changed units such that dependencies are respected.
trueExample
pipelines:
consolidate-added-or-changed: false
consolidate-deleted
consolidate-deletedbooleanWhen set to true enables consolidating deleted units such that dependencies are respected. This is disabled by default as it may result in unexpected deletions.
falseExample
pipelines:
consolidate-deleted: true
deploy-branch-name
deploy-branch-namestringThe branch in this repository where IaC changes will be applied. Typically this is the default branch.
Example
pipelines:
deploy-branch-name: main
env
envsequence(mapping)(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: SOME_DATA
is-access-control-repo
is-access-control-repobooleanOnly set to true for infrastructure-live-access-control
Example
pipelines:
is-access-control-repo: true
is-delegated-repo
is-delegated-repobooleanOnly 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-durationnumberDuration in seconds for each session Terragrunt assumes in AWS during plans and applies.
3600Example
pipelines:
session-duration: 3600
tf-binary
tf-binarystringThe IaC runtime binary, valid options are opentofu or terraform.
opentofuExample
pipelines:
tf-binary: opentofu
ignore-list
ignore-liststringA comma separate list of ignore filters to exclude from pipelines runs. See the full documentation here
Example
pipelines:
ignore-list: README.md,**/README.md
Deprecated Configuration Options
enable-terragrunt-provider-cache
Enables the Terragrunt Provider Cache for plans and applies.
This option is deprecated in favor of setting TERRAGRUNT_PROVIDER_CACHE as an env option.
falseExample
pipelines:
enable-terragrunt-provider-cache: true
cli-version
cli-versionstringPipelines CLI version - no longer used as this is determined by the pipelines workflow version
repo-allow-list
repo-allow-listarray[string]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-versionstringTerraform 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-versionstringTerragrunt 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-versionstringOpenTofu version to use for plans and applies. Will be used if mise configuration is not present, but should removed in favor of mise configuration.