Create a root Application manifest whose source points to a Git directory containing child Application manifests; set destination to the in-cluster Argo CD namespace
Place child Application manifests (one per workload) in the source directory; each declares its own source repo, target namespace, and sync policy
Apply the root Application with `kubectl apply -f root-app.yaml` — Argo CD discovers and reconciles all child Applications automatically
Enable automated sync and self-heal on child Applications so drift is corrected without manual intervention
Use `argocd app list` to verify all child Applications appear and reach Synced/Healthy status
Gate promotion to production by setting child Applications' syncPolicy.automated.prune to false until manually approved
Known gotchas
If a child Application references a namespace that doesn't exist yet, create it with an App-of-apps bootstrap namespace manifest or use server-side apply with createNamespace=true
Recursive app-of-apps (root → middle → leaf) can cause ordering issues; prefer flat hierarchies or use sync waves to sequence creation
Deleting the root Application with cascade=true will delete all child Applications and their deployed resources — always confirm intent before cascade-deleting
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp