Skip to content

Glossary

Apply — the step that executes a plan: creating, updating, and deleting real things until they match the configuration.

Argument — an input you set inside a block, as in length = 2. Compare attribute.

Attribute — a value a resource or data source exposes after it exists, like random_pet.server.id. Compare argument.

Backend — the configured place where state is stored: a local file by default, or a remote service for shared work.

Block — HCL's unit of structure: a type, optional labels, and a body in braces.

Configuration — the .tf files in a directory, read together as one declaration of desired state.

count — a resource meta-argument that makes N numbered instances: stamp[0], stamp[1], …

Data source — a read-only lookup performed during planning. It creates nothing; it fetches facts about things that already exist.

Declarative — describing the end state and letting the tool work out the steps, as opposed to scripting the steps themselves.

Destroy — the inverse of apply: delete everything the state tracks, after a plan of its own.

Drift — divergence between the configuration and reality caused by changes made outside Terraform, discovered at refresh time.

Expression — anything that computes a value: a reference, a function call, a conditional, an interpolation inside a string.

for_each — a resource meta-argument that makes one instance per element of a set or map, addressed by key: pages["index"].

Forces replacement — a plan note meaning a changed attribute cannot be edited in place; the provider will destroy and recreate the resource. The provider decides, per attribute.

HCL — HashiCorp Configuration Language, the syntax of .tf files.

Idempotent — safe to repeat: applying the same configuration twice changes nothing the second time.

Import — adopting an existing, unmanaged object into state so Terraform can manage it from then on, without recreating it.

Infrastructure as code — the practice of defining infrastructure in files that can be reviewed, versioned, and re-applied.

Known after apply — a plan's way of saying a value cannot exist yet (it depends on something the apply itself will generate).

Local value (local) — a named expression inside a module, computed once and referenced by name.

Lock file — .terraform.lock.hcl: the exact provider versions and hashes init selected. Commit it.

Module — a folder of configuration with variables in and outputs out, callable like a function. The directory you run Terraform in is the root module.

null_resource — a resource from the null provider that manages nothing itself; used with triggers and provisioners to run behaviour "when this changes".

Output — a named value a configuration reports after apply; the interface other tooling reads back.

Plan — the computed difference between configuration and (refreshed) reality, printed for approval before anything changes.

Provider — a plugin that teaches Terraform one platform's API: AWS, a DNS host, the local filesystem.

Provisioner — a hook that runs a command or copies files when a resource is created (or destroyed). A last resort; most configuration belongs in arguments, not scripts.

Refresh — Terraform re-reading the real objects behind its state, at the start of every plan, so the diff is against now, not memory.

Registry — registry.terraform.io, the public catalogue of providers and shared modules.

Replacement — destroy-then-create of one resource, shown as -/+ in a plan.

Resource — one managed object declared in a configuration: a file, a server, a record.

Sensitive — a marking on variables and outputs that hides values from console output. It does not encrypt anything; state still stores the value in plain text.

State — Terraform's record of what it manages: resource addresses mapped to real IDs and last-known attributes. The basis of every plan.

Target — -target=ADDRESS, restricting an operation to one resource and its dependencies. An emergency tool.

terraform_data — a resource built into Terraform itself (no provider) that stores a value in state; useful for snapshots and for triggering behaviour on change.

tfvars — terraform.tfvars and friends: files assigning values to variables for a run.

Trigger — a value stored on a null_resource; when it changes, the resource is replaced and its provisioners re-run.

Variable — a declared input to a configuration or module, with a type, an optional default, and optional validation.

Workspace — a named, separate state for the same configuration. A way to run one configuration several times; most teams eventually prefer separate configurations.