39 lines
1.6 KiB
Markdown
39 lines
1.6 KiB
Markdown
# 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 도입을 검토합니다.
|