34 lines
1.5 KiB
Markdown
34 lines
1.5 KiB
Markdown
# Infrastructure
|
|
|
|
클라우드 또는 온프레미스의 네트워크, identity, DNS, registry와 Kubernetes
|
|
cluster 같은 기반 리소스를 코드로 관리합니다.
|
|
|
|
```text
|
|
components reusable primitive
|
|
│
|
|
├──────────────┐
|
|
▼ ▼
|
|
stacks live
|
|
│ ▲
|
|
└──────────────┘
|
|
```
|
|
|
|
- `components`: 작고 재사용 가능한 구현 단위
|
|
- `stacks`: 반복되는 component 조합(선택)
|
|
- `live`: 실제 environment root와 state 경계
|
|
- `tests`: component와 contract 검증
|
|
|
|
IaC 엔진은 프로젝트에서 하나를 선택합니다. Terraform/OpenTofu 호환이 필요하면
|
|
같은 `.tf` 구성을 공유하고 실행 명령만 프로젝트 표준으로 통일합니다. 서로 다른
|
|
엔진용으로 동일한 인프라 트리를 복제하지 않습니다.
|
|
|
|
IaC 파일을 추가할 때 `.iac-engine.example`을 `.iac-engine`으로 복사하고
|
|
`tofu` 또는 `terraform` 중 하나만 기록합니다. 이 선택 파일은 커밋합니다.
|
|
선택한 실행 파일과 version을 로컬/CI에 고정하고, 프로젝트별 `init -backend=false`
|
|
및 semantic validate 단계도 검증 스크립트에 추가합니다. 기본 스켈레톤의 자동
|
|
검사는 provider를 선택하지 않았기 때문에 IaC format까지만 수행합니다.
|
|
|
|
Kubernetes API 안의 platform/app 리소스는 원칙적으로 `gitops`가 소유합니다.
|
|
클러스터 생성 시 반드시 필요한 최소 bootstrap 출력만 명시적인 contract로
|
|
전달합니다.
|