The app: https://microservices-demo.github.io/
Tested with Kind, an average of 16Gb of RAM required.
Architecture explained:
- The application consists of 10 microservices. Each microservice is deployed with its own Helm chart.
- In a real world scenario, each microservice (code, Dockerfile, Helm Chart, etc..) lives in its own github repo.
- For simplicity in this demo, all application microservices charts are under the folder
services
- Clone the repo
- Create a cluster with kind
- Bootstrap the cluster
- Deploy the application
- kind delete cluster
git clone https://github.com/J0hn-B/eshop.git
kind create cluster
https://kind.sigs.k8s.io/
cd ~/eshop/scripts
--> chmod +x argocd_install.sh
--> ./argocd_install.sh
From a second terminal: cd /eshop/k8s
--> kubectl apply -f argo_config
Check your ArgoCD web UI, click sync in the k8s-bootstrap application (you may need to refresh your browser)
In k8s-bootstrap chart, check the templates.
In ArgoCD documetation this is described as "App of Apps" pattern
https://argoproj.github.io/argo-cd/operator-manual/cluster-bootstrapping/
cd ~/eshop/app
--> kubectl apply -f argo_config
Check your ArgoCD web UI, click sync in the app-eshop application (you may need to refresh your browser)
Check the github action in .github/workflows/kind.yml.