This repository is an app-of-apps (or in reality an app-of-appsets) which configures Argo CD itself as well as kube-prometheus-stack, which configures Prometheus and Grafana.
Argo CD is an ApplicationSet
which currently only selects the local cluster. This could have been a plain Application
but this is a showcase to show how that ApplicationSet
could easily be extended to deploy to other clusters if
necessary.
kube-prometheus-stack is an appset which makes use of the multiple sources
feature. The reason for using this feature is for being able to make use of the upstream Helm chart, and for being able to
override some of the default values. This also makes use of label selectors, where it will match a label environment
with the values of dev
, staging
or prod
. When following the installation instructions in argocd-deploy,
the in-cluster
cluster will have its value set to dev
.
There is only one environment with the single cluster, but the appset showcases how e.g. version promotion can work, since we can select a distinct values repo ref and Helm chart version per environment (it's all currently the same version for all envs though).
The values repo can be found here, which contains
the overridden values. The values are more or less the defaults provided by the upstream Helm chart, except for it
not installing Alertmanager and any rules associated with it, and it also installs the standard Argo CD dashboard. It
also overrides the Grafana and Prometheus services to use NodePort
instead of ClusterIP
.