Terraform Registry

kind: terraform/registry

source condition target

Description

source

The terraform/registry "source" retrieves the Terraform registry provider or module version matching then versioning rule.

condition

The terraform/registry "condition" checks if the Terraform registry provider or module version matching then versioning rule exist.

Parameter

Name Type Description Required
hostname string

“hostname” the hostname of the provider or module.

	compatible:
		* source
		* condition

	remark:
		* Optional
		* Not allowed with rawstring.
		* Applicable for module and provider.
name string

“name” the name of the provider or module.

	compatible:
		* source
		* condition

	remark:
		* Required unless using rawstring
		* Not allowed with rawstring.
		* Applicable for module and provider.
namespace string

“namespace” the namespace of the provider or module

	compatible:
		* source
		* condition

	remark:
		* Required unless using rawstring
		* Not allowed with rawstring.
		* Applicable for module and provider.
rawstring string

“rawstring” provider reference to registry in single string.

	compatible:
		* source
		* condition

	Examples:
		* hashicorp/kubernetes
		* registry.terraform.io/hashicorp/kubernetes
		* terraform-aws-modules/vpc/aws
		* app.terraform.io/terraform-aws-modules/vpc/aws

	remark:
		* Applicable for module and provider.
		* Not allowed with hostname, namespace, name, and targetsystem.
targetsystem string

“targetsystem” the target system for the module in registry

	compatible:
		* source
		* condition

	remark:
		* Required for type module unless using rawstring
		* Not allowed with rawstring
		* Applicable for module.
type string

“type” defines the type registry request to look up.

	compatible:
		* source
		* condition

	Supported values: module, provider
version string

“version” defines a specific version to be used during condition check.

	compatible:
		* condition
versionfilter object

“versionfilter” provides parameters to specify version pattern and its type like regex, semver, or just latest.

	compatible:
		* source
    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.
    replaceall object replaceAll applies a regex replacement to version strings before filtering. This is useful for transforming versions (e.g., curl-8_15_0 to curl-8.15.0) before regex extraction.
    strict boolean strict enforce strict versioning rule. Only used for semantic versioning at this time

Example

# updatecli.yaml
name: Terraform Registry

sources:
  kubernetes:
    name: Get version from registry
    kind: terraform/registry
    spec:
      type: provider
      namespace: hashicorp
      name: kubernetes

  terraform-aws-modules:
    name: Get version from registry
    kind: terraform/registry
    spec:
      type: module
      namespace: terraform-aws-modules
      name: vpc
      targetsystem: aws

conditions:
  provider-using-value:
    name: Condition using value
    kind: terraform/registry
    disablesourceinput: true
    spec:
      type: provider
      namespace: hashicorp
      name: kubernetes
      version: 2.22.0

  module-using-value:
    name: Condition using value
    kind: terraform/registry
    disablesourceinput: true
    spec:
      type: module
      namespace: terraform-aws-modules
      name: vpc
      targetsystem: aws
      version: 5.1.0
Top