refactor(gitops): establish platform ownership boundaries

This commit is contained in:
donghyeon-ka
2026-07-26 01:34:29 +09:00
parent 293ee6fc97
commit a6f6c663e0
121 changed files with 2801 additions and 1204 deletions
+24 -9
View File
@@ -2,16 +2,31 @@
Status: accepted
현재는 하나의 platform 팀, 하나의 dev cluster와 소수 workload를 가지므로
GitOps configuration monorepo를 유지한다. application source repository와
deployment configuration repository는 분리한다.
Updated: 2026-07-26
- `platform/`, `workloads/`: 환경 중립 base
- `clusters/<cluster>/manifests`: cluster-specific final composition
- `clusters/<cluster>/applications`: Argo reconciliation inventory
현재는 단일 `dev-k3s`와 소수 workload를 다루므로 GitOps configuration
monorepo를 유지합니다. Application source repository와 deployment
configuration repository는 분리합니다. 이 저장소 자체는 독립 reference
lab이며 범용 platform product로 간주하지 않습니다.
- `platform/`, `systems/`, `workloads/`: ownership별 base; 환경 중립은
목표 contract
- `clusters/<cluster>/overlays`: cluster-specific final composition
- `platform/control-plane/argocd/projects`: Argo 권한 경계
- `platform/control-plane/argocd/application-sets`: reconciliation inventory
- `iac/terraform`: Kubernetes manifest와 분리된 external API IaC
- `bootstrap`: controller가 존재하기 전의 최소 seed
production 접근권한, 소유 팀, Terraform backend 또는 release cadence가
실제로 갈라질 때 platform GitOps, workload GitOps, IaC repo 분리를
재검토한다. 존재하지 않는 환경의 skeleton은 유지하지 않는다.
`clusters`가 배포 가능한 최종 상태를 소유합니다. Argo CD는 top-level
base를 직접 source로 사용하지 않습니다. `foundation`은 directory
taxonomy가 아니라 bootstrap ordering/stage이고, 구체적인 ownership 분류는
ADR 0007을 따릅니다.
현재 Keycloak base의 `start-dev`와 Vault base의
TLS-off/single-node identity는 이 contract를 위반하는 알려진 리팩터링
부채입니다. 다른 환경을 추가하기 전에 해당 값을 component overlay나
configuration input으로 분리합니다.
Production 접근권한, 소유 팀, Terraform backend 또는 release cadence가
실제로 갈라질 때 platform GitOps, workload GitOps, IaC repository 분리를
재검토합니다. 존재하지 않는 환경의 skeleton은 유지하지 않습니다.