terraform-module-library_skill

This skill helps you design, standardize, and reuse Terraform modules with best practices for structuring, naming, and documentation.
  • TypeScript

181

GitHub Stars

1

Bundled Files

2 months ago

Catalog Refreshed

4 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstrat where the catalogue uses aiagentskills.

npx veilstrat add skill first-fluke/fullstack-starter --skill terraform-module-library

  • SKILL.md2.5 KB

Overview

This skill provides expert guidance for creating, managing, and using Terraform modules to build reusable infrastructure components across AWS, GCP, and Azure. It focuses on module structure, versioning, variable/output conventions, and practical patterns for monorepos and private registries. Use it to standardize Terraform patterns and accelerate safe, maintainable infrastructure code.

How this skill works

The skill inspects module layout, variable and output definitions, version constraints, and example usage to ensure consistency and reusability. It highlights provider-specific recommendations (AWS, GCP, Azure), enforces version pinning, and checks for anti-patterns such as embedding backend/state logic or using terraform_remote_state inside modules. It also provides a review checklist and concrete examples for local and registry-based module consumption.

When to use it

  • Creating a new reusable Terraform module for any cloud provider
  • Refactoring standalone Terraform code into a standardized module
  • Enforcing module conventions across a monorepo or team
  • Implementing common infrastructure components (VPC, GKE/AKS/EKS, RDS/Cloud SQL)
  • Preparing modules for private registry publishing

Best practices

  • Keep a predictable module directory with main, variables, outputs, and examples for usage
  • Pin Terraform and provider versions in a versions file to avoid drift
  • Declare variable type, description, and validation blocks for clearer contracts
  • Document all outputs and give them stable, descriptive names
  • Avoid backend configuration and remote state links inside modules; manage state at the root
  • Tag or label cloud resources consistently (Owner, Environment, Project)

Example use cases

  • Create a reusable network module with standardized naming and subnets for dev/prod
  • Refactor a project’s database setup into a module exposing endpoints and credentials safely
  • Provide an examples/complete configuration for local testing within a monorepo
  • Publish a module to a private registry with source paths and versioning
  • Adopt provider-specific patterns like GCP resource naming and AWS tagging in shared modules

FAQ

No. Backends and remote state belong to root configurations or environments. Modules should be stateless building blocks to remain composable and reusable.

How should I enforce provider versions across modules?

Pin provider and Terraform versions in a central versions file for each module, and use a shared root-level constraint to keep teams aligned. Use automation to detect mismatches.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
terraform-module-library skill by first-fluke/fullstack-starter | VeilStrat