- Install ArgoCD
- Build custom ArgoCD docker image with microctl (docker/argocd) and use it in
argocd-repo-server
deployment - Register custom
microctl
plugin (manifests/argocd/cm.yaml) - Deploy microconfig-server via helm-char with example repo (manifests/microconfig-server/values.yaml)
- create
dev
andprod
namespaces - 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.