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.
설치
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
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-beta provider 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 aws provider resources.
Tag all resources with consistent tags (Owner, Environment, Project).
General
Version Pinning: Always pin provider and Terraform versions in versions.tf.
Variables: Include description and type for all variables. Use validation blocks 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.