Files
project-infra/gitops
..
2026-08-02 00:22:19 +09:00
2026-08-02 00:22:19 +09:00
2026-08-02 00:22:19 +09:00
2026-08-02 00:22:19 +09:00
2026-08-02 00:22:19 +09:00
2026-08-02 00:22:19 +09:00
2026-08-02 00:22:19 +09:00
2026-08-02 00:22:19 +09:00
2026-08-02 00:22:19 +09:00

GitOps Desired State

Kubernetes API 안에서 지속적으로 reconcile할 desired state를 관리합니다. GitOps controller를 사용하지 않는 초기 단계에도 kubectl kustomize로 같은 entrypoint를 렌더할 수 있습니다.

platform ─┐
policies ─┼──▶ clusters/<...>  ◀── GitOps controller root
tenants  ─┤
apps     ─┘
  • clusters: 클러스터별 최종 조립점
  • platform: cluster-wide addon과 controller
  • policies: cluster-wide admission과 거버넌스 규칙
  • tenants: 구체적인 namespace/RBAC/quota/NetworkPolicy
  • apps: application 배포 정의

Catalog 디렉터리를 controller root로 직접 지정하지 않습니다. cluster entrypoint가 필요한 base/overlay를 선택하고 의존 순서를 명시합니다.

기본 규칙

  • base는 환경을 모르며 재사용 가능한 기본값만 가집니다.
  • overlays는 차이만 patch하고 전체 manifest를 복사하지 않습니다.
  • CRD/controller가 필요한 리소스는 controller 이후에 reconcile합니다.
  • resource namespace, ownership label과 버전을 명시합니다.
  • raw Secret 또는 실제 비밀값을 커밋하지 않습니다.
  • 원격 base/chart를 참조할 때 immutable version 또는 digest를 사용합니다.

Flux/Argo CD 고유 리소스와 sync ordering은 선택한 controller를 기록한 ADR에 문서화합니다.