- Create new GitHub project ✅
- Push any code from any language that you want (it can be hello world) ✅
- Write multistage DockerFile (reduce docker image size) ✅
- Write a helm chart for this service. ✅
- Create ci pipeline (with any system that you preferred) ✅
- main branch:
- Manage versioning — bump patch version for each commit. ✅
- Build and push the docker to any registry (Docker hub, ecr etc.) ✅
- Update helm chart with the new docker ✅
- PR (both are optional):
- Build temporary docker and scan it with Trivy
- Scan your helm with datree/Polaris
- main branch:
- Install Argo-cd on k3s/minikube/microk8s/kind/eks etc. ✅
- Install your helm with Argo-cd (it needs to be managed by git and not Argo-Ul, try app-of-app pattern) ✅
- Push new commit and verify your CI-CD ✅
- Install the following application with ApplicationSet : Polaris dashboard , goldilocks ✅
Bonus.
- Be creative and share/implement something cool that you familiar with it
For CI and automation I used Github Actions, before this I used it only for side projects and not for clients, so it was a new expierence.
Most time took to debug official GH Actiions for Helm chart releases. since they have some bugs and not works as you expect. Personally I prefer Kustomize since it is easier to manage. Helm charts has some limitations and currently I starto looking and CUE language and Timoni
As for apps creation and deployment I started learning about Server Side Web Assembly and Spin. And I think this is next big thing.
As for ArgoCD part I use it in one porject together with kustomize. That is a perfect case for ApplicationSet from ArgoCD but at that moment when I created it I haven't heard about it.
Everything is deploeyd on my local cluster. I will demonstrate it during call.