Terraform
kind: terraform
Description
The Terraform crawler looks recursively for all Terraform provider updates from a specific root directory. Then for each of them, it tries to automate them.
Automation is done by using two resources terraform/registry as the source and
terraform/lock as the target.
Manifest
Parameters
| Name | Type | Description | Required | 
|---|---|---|---|
| ignore | array | ignorespecifies rule to ignore.terraform.lock.hclupdate. | |
| path | string | pathspecifies a.terraform.lock.hclpath pattern, the pattern requires to match all of name, not just a substring. | |
| providers | object | 
  | |
| only | array | onlyspecify required rule to restrict.terraform.lock.hclupdate. | |
| path | string | pathspecifies a.terraform.lock.hclpath pattern, the pattern requires to match all of name, not just a substring. | |
| providers | object | 
  | |
| platforms | array | 
  | |
| rootdir | string | rootdirdefines the root directory used to recursively search for.terraform.lock.hcl | |
| 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"