Terragrunt
kind: terragrunt
Description
The Terragrunt crawler looks recursively for all Terragrunt files (*.hcl) containing a module definition from a specific root directory. Then for each of them, it tries to automate its update.
It currently support two types of sources:
- terraform/registry
- gittag
It will parsed the module source and infer the source type.
It will update the file using the hcl
target.
It supports the following module source definition and will update with prefixing accordingly
terraform { source = "tfr://someModule?version=1.2.3 } terraform { source = local.base_url } terraform { source = "tfr://${local.module}?version=${local.module_version}" } terraform { source = "tfr://someModule?version=${local.module_version}" } terraform { source = "tfr://${local.module}?version=1.2.3" } ---
Manifest
Parameters
Name | Type | Description | Required |
---|---|---|---|
ignore | array | ignore specifies rule to ignore .terraform.lock.hcl update. | |
modules | object |
| |
path | string | path specifies a terragrunt manifest path pattern, the pattern requires to match all of name, not just a substring. | |
only | array | only specify required rule to restrict .terraform.lock.hcl update. | |
modules | object |
| |
path | string | path specifies a terragrunt manifest path pattern, the pattern requires to match all of name, not just a substring. | |
rootdir | string | rootdir defines the root directory from where looking for terragrunt configuration | |
versionfilter | object |
| |
kind | string | specifies the version kind such as semver, regex, or latest | |
pattern | string | specifies the version pattern according the version kind for semver, it is a semver constraint for regex, it is a regex pattern for time, it is a date format | |
regex | string | specifies the regex pattern, used for regex/semver and regex/time. Output of the first capture group will be used. | |
strict | boolean | strict enforce strict versioning rule. Only used for semantic versioning at this time |
Example
# updatecli.d/default.yaml
name: "Terraform autodiscovery using git scm"
scms:
default:
kind: git
spec:
url: https://github.com/updatecli-test/jenkins-infra-aws.git
branch: main
autodiscovery:
# scmid is applied to all crawlers
scmid: default
crawlers:
terraform:
# platforms to request package checksums for, defaults to:
platforms:
- linux_amd64
- linux_arm64
- darwin_amd64
- darwin_arm64
# To ignore specific path
#ignore:
# - path: <filepath relative to scm repository>
# - providers:
# # Ignoring provider updates for this provider
# registry.terraform.io/hashicorp/aws:
# # Ignore provider updates for this version
# registry.terraform.io/hashicorp/kubernetes: "1.x"
ignore:
# - path: <filepath relative to scm repository>
# - providers:
# # Ignoring provider updates for this provider
# registry.terraform.io/hashicorp/aws:
# # Ignore provider updates for this version
# registry.terraform.io/hashicorp/kubernetes: "1.x"