terraform_module

Rules

terraform_module

load("@rules_terraform//terraform:terraform_module.bzl", "terraform_module")

terraform_module(name, deps, srcs, data, disposable_state, lock)

One directory of terraform configuration: a root module, or a child that another module's module block names.

ATTRIBUTES

NameDescriptionTypeMandatoryDefault
nameA unique name for this target.Namerequired
depsWhat the configuration references: child terraform_modules for its local module blocks, a dependency hub (@<name> from a deps tag, or its //:providers / //:modules halves) or single @<name>//<namespace>_<name> providers, and terraform_provider or terraform_external_module targets. The module block names a child's path; deps says which target supplies it. A child in a package under this one lands at its relative path; any other is matched to the block whose source ends with its package name.List of labelsoptional[]
srcsThe configuration files of this module: .tf, .tf.json, all directly in this target's package. A nested directory of configuration is its own module target, named by a module block.List of labelsoptional[]
dataAdditional files or targets that should be available at runtime.List of labelsoptional[]
disposable_stateWhether local state may go with the run, for a module with no backend or cloud block. True, the default: the engine keeps state in the run's temp directory, which is deleted afterwards; a run that wrote state is kept and its path printed. False: state is kept under bazel-out/rules_terraform/ across runs, until bazel clean. An error when the module declares a backend.BooleanoptionalTrue
lockThe module's .terraform.lock.hcl. Not needed when deps names a dependency hub, which carries its lock.LabeloptionalNone