init: 폴더구조 설계 및 인프라 설계
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
# Terraform
|
||||
|
||||
Terraform is split into environment roots and reusable modules.
|
||||
|
||||
Entry rules:
|
||||
- `environments/<env>/` is the only place that should be planned or applied directly.
|
||||
- `modules/<domain>/` is reusable implementation only and must not be applied directly.
|
||||
- Empty package directories must carry a README contract until real Terraform entry files are added.
|
||||
- Do not create new top-level Terraform package families without updating this contract and the root documentation.
|
||||
@@ -0,0 +1,8 @@
|
||||
# Terraform Environments
|
||||
|
||||
Each environment directory is a root module boundary.
|
||||
|
||||
Contract:
|
||||
- `dev`, `staging`, and `prod` use the same entry pattern.
|
||||
- Environment roots may compose shared modules and set environment-specific values.
|
||||
- Environment roots must not duplicate reusable module internals.
|
||||
@@ -0,0 +1,7 @@
|
||||
# dev Terraform Environment
|
||||
|
||||
Contract:
|
||||
- Owns only dev-specific Terraform root configuration.
|
||||
- Reuses modules from `../../modules` when modules exist.
|
||||
- Must not define reusable infrastructure patterns that belong in modules.
|
||||
- Add Terraform entry files here only when the dev environment is ready to be planned and applied.
|
||||
@@ -0,0 +1,7 @@
|
||||
# prod Terraform Environment
|
||||
|
||||
Contract:
|
||||
- Owns only prod-specific Terraform root configuration.
|
||||
- Reuses modules from `../../modules` when modules exist.
|
||||
- Must not define reusable infrastructure patterns that belong in modules.
|
||||
- Add Terraform entry files here only when the prod environment is ready to be planned and applied.
|
||||
@@ -0,0 +1,7 @@
|
||||
# staging Terraform Environment
|
||||
|
||||
Contract:
|
||||
- Owns only staging-specific Terraform root configuration.
|
||||
- Reuses modules from `../../modules` when modules exist.
|
||||
- Must not define reusable infrastructure patterns that belong in modules.
|
||||
- Add Terraform entry files here only when the staging environment is ready to be planned and applied.
|
||||
@@ -0,0 +1,9 @@
|
||||
# Terraform Modules
|
||||
|
||||
Modules are reusable package boundaries for infrastructure domains.
|
||||
|
||||
Contract:
|
||||
- A module directory must represent one infrastructure domain.
|
||||
- Module internals must be reusable across environments.
|
||||
- Environment-specific values belong in `../environments/<env>/`, not in module defaults.
|
||||
- Placeholder modules must keep an explicit README contract until implemented or removed.
|
||||
@@ -0,0 +1,7 @@
|
||||
# compute Terraform Module
|
||||
|
||||
Contract:
|
||||
- Owns reusable compute resources only.
|
||||
- Must expose inputs and outputs before an environment depends on it.
|
||||
- Must not contain environment-specific values.
|
||||
- Replace this contract with Terraform files when the module is implemented.
|
||||
@@ -0,0 +1,7 @@
|
||||
# database Terraform Module
|
||||
|
||||
Contract:
|
||||
- Owns reusable database resources only.
|
||||
- Must expose inputs and outputs before an environment depends on it.
|
||||
- Must not contain environment-specific values.
|
||||
- Replace this contract with Terraform files when the module is implemented.
|
||||
@@ -0,0 +1,7 @@
|
||||
# networking Terraform Module
|
||||
|
||||
Contract:
|
||||
- Owns reusable networking resources only.
|
||||
- Must expose inputs and outputs before an environment depends on it.
|
||||
- Must not contain environment-specific values.
|
||||
- Replace this contract with Terraform files when the module is implemented.
|
||||
@@ -0,0 +1,7 @@
|
||||
# storage Terraform Module
|
||||
|
||||
Contract:
|
||||
- Owns reusable storage resources only.
|
||||
- Must expose inputs and outputs before an environment depends on it.
|
||||
- Must not contain environment-specific values.
|
||||
- Replace this contract with Terraform files when the module is implemented.
|
||||
Reference in New Issue
Block a user