# Argo CD layout `bootstrap/argocd/root-application.yaml`이 유일한 수동 seed입니다. 이 Application은 `clusters/dev-k3s`를 source로 사용하고 다음 리소스를 소유합니다. ```text 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-server`와 `auth-system`에는 selective sync 옵션을 사용하지 않습니다. DB migration과 Keycloak client sync는 같은 Application 내부 wave로 순서를 제어합니다. 클러스터가 하나이고 child Application 수가 적으므로 현재는 명시적 Application을 사용합니다. 두 번째 클러스터나 실제 production이 생길 때 foundation/platform/workload별 ApplicationSet 도입을 검토합니다.