init: 폴더구조 설계 및 인프라 설계

This commit is contained in:
DongHyeonka
2026-07-24 14:31:53 +09:00
parent 34ad612281
commit f9c463f87a
1839 changed files with 323096 additions and 1 deletions
+9
View File
@@ -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.
+8
View File
@@ -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.
+7
View File
@@ -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.
+7
View File
@@ -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.
+7
View File
@@ -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.
+9
View File
@@ -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.
+7
View File
@@ -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.
+7
View File
@@ -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.
+7
View File
@@ -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.
+7
View File
@@ -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.