- Install ArgoCD
- Build custom ArgoCD docker image with microctl (docker/argocd) and use it in
argocd-repo-serverdeployment - Register custom
microctlplugin (manifests/argocd/cm.yaml) - Deploy microconfig-server via helm-char with example repo (manifests/microconfig-server/values.yaml)
- create
devandprodnamespaces - add example apps (manifests/apps)
You will see that argo deploys 4 example apps configured in config-repo
- dev-backend
- dev-frontend
- prod-backend
- prod-frontend
Apps are just alpine (dev) and centos (prod) pods that fetch simple configuration via microctl init container, output it to stdout and sleep.
ArgoCD tracks this repo for application versions via applications/* folders.
On tag.yaml change ArgoCD is configured via custom plugin to fetch helm values for app/env via microctl and then uses helm template to generate manifests.
So deploy configuration is managed by Microconfig and ArgoCD just tracks this repo for app versions.