Terraform

What is a recommended layout for a reusable module?

Difficulty: unrated

Source: bregman-arie/devops-exercises by Arie Bregman

Answer

modules/vpc/
  main.tf
  variables.tf
  outputs.tf
  versions.tf
  README.md
  examples/
    basic/
      main.tf
  • main.tf defines resources, data sources, and locals.

  • variables.tf contains typed inputs with descriptions and validations.

  • outputs.tf exposes the minimal set of outputs downstream stacks need.

  • versions.tf pins compatible Terraform and provider versions.

  • examples/ hosts runnable samples for documentation and testing, usually referenced by CI.