Just a simple sandbox project to try out Argo CD's app of apps pattern.
argocd app create app-of-apps \
--dest-namespace argocd \
--dest-server https://kubernetes.default.svc \
--repo https://github.com/wolf-michl/argocd-app-of-apps-sandbox.git \
--path .
argocd app sync app-of-apps
argocd app sync -l app.kubernetes.io/instance=app-of-apps
Argo CD's cluster bootstrapping documentation recommends the app of apps pattern approach to install many apps at once.
Our app of apps is defined in a helm chart (which is this repository). The Chart.yaml is boilerplate which defines our app of apps as app-of-apps. The values.yaml defines some default values which can then be used by the applications. This value.yaml may also be completely empty, if we don't need any default values. The templates folder contains our real applications. They are defined as custom resources in form of YAML files.
We should prefer to use ArgoCD's applicationsets instead though, as this provides more sophisticated features. See argocd-applicationset-sandbox for examples.