Files
k8s-template/docs/decisions/0001-lifecycle-and-ownership-boundaries.md
T

1.6 KiB

0001. 수명주기와 소유권 경계

  • 상태: 승인
  • 날짜: 2026-07-26
  • 결정자: repository maintainers

배경

인프라 저장소는 규모가 커지면서 cloud provisioning, cluster bootstrap, platform addon과 application 배포가 뒤섞이기 쉽습니다. 이 경우 동일 리소스를 여러 도구가 관리하거나, 작은 변경이 불필요하게 넓은 권한과 state를 요구합니다.

결정

저장소를 다음 세 수명주기로 분리합니다.

  1. bootstrap: 선언형 관리가 시작되기 위한 최소 선행 조건
  2. infrastructure: cloud/cluster 리소스 provisioning
  3. gitops: Kubernetes desired state의 지속적 reconciliation

재사용 구현은 catalog 영역에 두고, infrastructure/livegitops/clusters만 실제 환경 진입점으로 사용합니다. 하나의 리소스는 하나의 수명주기와 하나의 도구만 소유합니다.

결과

  • state, 권한과 배포 실패 범위를 작게 유지할 수 있습니다.
  • 소규모는 선택 디렉터리를 사용하지 않고도 시작할 수 있습니다.
  • 계정, 리전과 클러스터가 늘어날 때 같은 leaf를 추가해 확장할 수 있습니다.
  • 초기에는 디렉터리가 더 많아 보이지만 각 위치의 책임이 명확해집니다.

대안

  • 환경별 전체 복사: 시작은 단순하지만 공통 변경의 drift와 중복이 빠르게 증가합니다.
  • 도구별 최상위 폴더: 구현 도구는 잘 보이지만 리소스 소유권과 수명주기가 섞입니다.
  • 모든 리소스를 단일 state로 관리: 작은 데모에는 가능하지만 권한과 장애 범위가 지나치게 커집니다.