Files
project-gitops/docs/architecture/argocd.md
T

1.6 KiB

Argo CD layout

bootstrap/argocd/root-application.yaml이 유일한 수동 seed입니다. 이 Application은 clusters/dev-k3s를 source로 사용하고 다음 리소스를 소유합니다.

clusters/dev-k3s
├── projects
└── applications
    ├── foundation
    │   ├── sealed-secrets
    │   ├── vault
    │   └── vault-agent-injector
    ├── platform
    │   └── auth-system
    └── workloads
        ├── auth-server
        └── api-server

AppProject는 root sync wave -10, foundation은 0~1, platform은 10, workload는 20입니다. 이 wave는 child Application 객체 생성 순서만 표현하며 서로 다른 Application의 readiness dependency로 사용하지 않습니다. Vault Agent와 workload는 필요한 Vault/DB API가 준비될 때까지 자체 retry 가능한 형태여야 합니다.

모든 child Application은 auto-sync, prune, self-heal을 사용합니다. Application 삭제와 parent prune은 확인이 필요하며, shared resource 소유권 충돌은 FailOnSharedResource=true로 실패시킵니다.

Sync hook이 있는 auth-serverauth-system에는 selective sync 옵션을 사용하지 않습니다. DB migration과 Keycloak client sync는 같은 Application 내부 wave로 순서를 제어합니다.

클러스터가 하나이고 child Application 수가 적으므로 현재는 명시적 Application을 사용합니다. 두 번째 클러스터나 실제 production이 생길 때 foundation/platform/workload별 ApplicationSet 도입을 검토합니다.