DevOps / ArgoCD interview questions
What is the ArgoCD App of Apps pattern and when should you use it?
The App of Apps pattern is an ArgoCD design where one root Application manifest manages a collection of child Application manifests stored in Git. The root app syncs a directory of Application CRDs into the cluster; ArgoCD then picks up each child Application and reconciles it independently.
Structurally, the root application points to a Git path containing files like apps/frontend.yaml, apps/backend.yaml, each of which is itself an ArgoCD Application resource targeting its own source repo and destination namespace.
# root-app.yaml apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: root-app namespace: argocd spec: project: default source: repoURL: https://github.com/my-org/infra targetRevision: HEAD path: apps/ destination: server: https://kubernetes.default.svc namespace: argocd syncPolicy: automated: prune: true selfHeal: true
When to use it: App of Apps is ideal for platform teams that want to onboard new services by simply adding a file to the apps/ directory in Git without touching ArgoCD UI or CLI. It also works well for multi-tenant setups where each tenant gets a dedicated child Application with its own project and RBAC.
Compared to ApplicationSets, App of Apps gives finer manual control over each child application but requires more boilerplate per application. ApplicationSets are preferred when child applications follow a repeatable template (e.g., one per cluster or one per Git directory). App of Apps shines when each child needs unique configuration that cannot be easily templated.
More Related questions...