An experiment, running locally, to use the App-of-Apps pattern of Argo CD to provision a cluster (the same cluster in this case) while declaring dependencies between the apps using Sync Waves.
The configuration is done using .env
and argo-cd.yaml
.
Run the experiment:
just run
The
run
recipe is idempotent.
Inspect the cluster.
Cleanup:
just clean
.
├── app-of-apps.yaml <-- defines a cluster; one would have one of these per cluster
|── app-project.yaml <-- each cluster should reside in its own Argo CD `AppProject`
├── apps <-- this chart contains the apps of a cluster including dependencies
│ ├── Chart.yaml i.e. sync waves, hooks etc. (app-of-apps.yaml points to this chart)
│ ├── templates
│ │ ├── istio-operator.yaml
│ │ └── istio-profile.yaml
│ └── values.yaml
├── argo-cd.yaml <-- values file for the argo-cd demo deployment
├── charts <-- this directory simulates a chart musuem to be used
│ └── istio-profile by the Argo CD `Application` resources in the `apps` chart above
│ ├── Chart.yaml
│ ├── templates
│ │ ├── namespace.yaml
│ │ └── profile.yaml
│ └── values.yaml
├── justfile
├── k3d-default.yaml
├── kubeconfig
└── README.md
The health assessment of the Application
resource was removed from Argo CD and has to be re-enabled using the ConfigMap
.
See:
This experiment includes the patch.