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-changed
booleanWhen 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-deleted
booleanWhen 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-name
stringThe 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
env
sequence(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-repo
booleanOnly set to true for infrastructure-live-access-control
Example
pipelines:
is-access-control-repo: true
is-delegated-repo
is-delegated-repo
booleanOnly 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-duration
numberDuration in seconds for each session Terragrunt assumes in AWS during plans and applies.
3600
Example
pipelines:
session-duration: 3600
tf-binary
tf-binary
stringThe IaC runtime binary, valid options are opentofu or terraform.
opentofu
Example
pipelines:
tf-binary: opentofu
Deprecated Configuration Options
cli-version
cli-version
stringPipelines CLI version - no longer used as this is determined by the pipelines workflow version
repo-allow-list
repo-allow-list
array[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-version
stringTerraform 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-version
stringTerragrunt 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-version
stringOpenTofu version to use for plans and applies. Will be used if mise configuration is not present, but should removed in favor of mise configuration.