terraform-docs
Installation
SKILL.md
Terraform
Version: Latest (1.15.x) | Source: developer.hashicorp.com/terraform
Overview
Terraform is an infrastructure as code (IaC) tool that lets you build, change, and version cloud and on-prem resources safely and efficiently. It uses a declarative configuration language (HCL) to describe infrastructure, supports multi-cloud providers, and manages state to track real-world resources.
Quick Reference
| Topic | File | Key Content |
|---|---|---|
| Getting Started | getting-started.md |
What is Terraform, how it works (write/plan/apply), use cases (multi-cloud, Kubernetes, SDN, self-service), Terraform vs alternatives (Chef, CloudFormation, Boto), phases of adoption (adopt/collaborate/scale/govern), installation, quick start |
| Configuration Language | language.md |
Syntax (blocks, arguments, expressions), resources (meta-arguments, lifecycle, data sources), input variables (types, defaults, validation, sensitive, precedence), output values, local values, providers (requirements, configuration, aliases, lock file), modules (sources, hierarchy, development), state (storage, inspection, import), backends (types, configuration, credentials), terraform block, cloud block |
| Expressions & Functions | expressions-functions.md |
Types, literals, operators, references, conditional/for/splat/dynamic expressions, type constraints, version constraints, all built-in functions (numeric, string, collection, encoding, filesystem, date/time, hash/crypto, IP network, type conversion, Terraform-specific) |
| CLI Commands | cli.md |
init, plan, apply, destroy, validate, fmt, state (list/show/mv/rm/pull/push), import, taint/untaint, targeting, workspaces, output, console, graph, login/logout, force-unlock, refresh, test, environment variables, upgrade/security checks |
| HCP, Enterprise & Plugins | hcp-enterprise-plugins.md |
HCP Terraform (workspaces, VCS integration, Sentinel policies, run tasks, variable sets, private registry, Europe region), Terraform Enterprise (self-hosted, air-gapped, SAML SSO), plugin development (framework, SDKv2, design principles, testing), Terraform Registry (publishing providers/modules, private registry, naming conventions), module development (structure, best practices, refactoring with moved blocks) |
| Advanced Topics | advanced.md |
Provisioners (local-exec, remote-exec, file, connection blocks, when/on_failure, terraform_data), ephemeral resources (ephemeral block, write-only arguments, reference restrictions), managing sensitive data (sensitive/ephemeral arguments, state security best practices), terraform_remote_state data source (arguments, attributes, alternatives), testing (.tftest.hcl files, run blocks, assertions, expect_failures, parallel execution, integration vs unit testing), override files (merging behavior, special rules per block type), CLI configuration file (.terraformrc/terraform.rc, settings, plugin cache, provider installation, development overrides), style guide (code style, file naming, resource naming, parameter order, .gitignore, version pinning, workflow best practices, linting with TFLint), import blocks (declarative import, for_each, generate-config-out), removed blocks (declarative state removal, destroy=false), check blocks (declarative condition checks, assertions), terraform_data resource |