init: k8s 폴더 구조init
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
# Bootstrap
|
||||
|
||||
선언형 인프라와 GitOps가 스스로 동작하기 전에 한 번 또는 매우 드물게 수행하는
|
||||
최소 초기화만 둡니다.
|
||||
|
||||
- `foundation`: remote state, locking, 최초 identity 같은 선행 조건
|
||||
- `gitops`: 선택한 controller 설치와 cluster root 연결
|
||||
|
||||
일반 네트워크, Kubernetes cluster, addon과 application을 이곳에 두지 않습니다.
|
||||
부트스트랩 절차는 반복 실행 가능하고 감사 가능해야 하며, 장기 수동 운영 경로가
|
||||
되어서는 안 됩니다.
|
||||
@@ -0,0 +1,21 @@
|
||||
# Foundation Bootstrap
|
||||
|
||||
다른 IaC state가 의존하는 최소 선행 조건을 관리합니다.
|
||||
|
||||
가능한 대상:
|
||||
|
||||
- remote state storage와 locking
|
||||
- state 암호화 key
|
||||
- CI의 최초 workload identity/OIDC trust
|
||||
- 조직 공통 account/project 초기 설정
|
||||
|
||||
## 계약
|
||||
|
||||
- 일반 infrastructure state와 분리합니다.
|
||||
- 변경 권한과 실행 빈도를 최소화합니다.
|
||||
- local state를 장기간 유지하지 않습니다.
|
||||
- output과 후속 `infrastructure/live`가 값을 소비하는 방식을 문서화합니다.
|
||||
- provider credential이나 실제 backend secret을 커밋하지 않습니다.
|
||||
|
||||
조직 공통 foundation이 외부 저장소에 이미 있다면 이 폴더에는 소유 팀, output
|
||||
contract와 복구 절차만 기록합니다.
|
||||
@@ -0,0 +1,19 @@
|
||||
# GitOps Bootstrap
|
||||
|
||||
Flux, Argo CD 등 **하나의** GitOps controller를 선택해 설치하고 cluster root에
|
||||
연결합니다. 선택하지 않은 controller의 병렬 구조를 만들지 않습니다.
|
||||
|
||||
포함 범위:
|
||||
|
||||
- controller 설치 또는 설치 manifest
|
||||
- source repository/OCI 연결
|
||||
- `gitops/clusters/<...>` root reconcile 선언
|
||||
- controller용 최소 identity와 secret manager 접근 연결
|
||||
|
||||
제외 범위:
|
||||
|
||||
- ingress, certificate, DNS, storage, observability addon
|
||||
- application workload
|
||||
- controller 설치 후 Git으로 관리할 수 있는 일반 Kubernetes 리소스
|
||||
|
||||
bootstrap credential과 recovery 절차는 `docs/runbooks`에 문서화합니다.
|
||||
Reference in New Issue
Block a user