← Back to list

terraform-module-library
by first-fluke
Production-ready fullstack monorepo template with Next.js, FastAPI, Flutter, Terraform, and mise
⭐ 141🍴 21📅 Jan 23, 2026
SKILL.md
name: terraform-module-library description: Expert guidance for creating, managing, and using Terraform modules. Use this skill when the user wants to create reusable infrastructure components, standardize Terraform patterns, or needs help with module structure and best practices for AWS, GCP, or Azure.
Terraform Module Library
This skill provides standardized patterns and best practices for creating and using Terraform modules.
When to Use
- Creating new reusable Terraform modules
- Refactoring existing Terraform code into modules
- Standardizing infrastructure patterns across the project
- implement specific infrastructure components (VPC, GKE, RDS, etc.) using best practices
Module Structure
Standard directory structure for a Terraform module:
module-name/
├── main.tf # Primary logic and resources
├── variables.tf # Input variable definitions
├── outputs.tf # Output value definitions
├── versions.tf # Provider and Terraform version constraints
├── README.md # Module documentation
└── examples/ # Example configurations
└── complete/ # Full example usage
Best Practices
Cloud Providers
Google Cloud Platform (GCP)
- Use
google-betaprovider for beta features if necessary, but prefer GA. - Follow Google's "Cloud Foundation Toolkit" patterns where applicable.
- Resource naming: Use standardized prefixes/suffixes (e.g.,
gcp-vpc-{env}).
AWS
- Use standard
awsprovider resources. - Tag all resources with consistent tags (Owner, Environment, Project).
General
- Version Pinning: Always pin provider and Terraform versions in
versions.tf. - Variables: Include
descriptionandtypefor all variables. Usevalidationblocks for constraints. - Outputs: Document all outputs.
- State: Do not include backend configuration in modules; state is managed by the root configuration.
Common Module Patterns
Private Module Registry
If using a private registry, ensure source paths follow the registry's convention.
Local Modules
For local development or monorepos:
module "network" {
source = "./modules/network"
# ...
}
Review Checklist
- Does the module have a
README.mdwith input/output documentation? - Are all variables typed and described?
- Are resource names deterministic or correctly scoped?
- Does it include
examples/? - Is
terraform_remote_stateavoided within the module?
Score
Total Score
75/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
✓人気
GitHub Stars 100以上
+5
✓最近の活動
1ヶ月以内に更新
+10
✓フォーク
10回以上フォークされている
+5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
✓タグ
1つ以上のタグが設定されている
+5
Reviews
💬
Reviews coming soon

