I would like to deploy my microservices into the kubernetes cluster with CI/CD tool. I just get started to learn the concept of CI/CD and would like to create an environment to see how does it work in pratice.
According to my understanding, the deployment should look as follows:
As I've described above, I would like to deploy microservices into the K8S cluster and I've found https://argoproj.github.io. I think, this is what I am looking for.
Argo provides different tools, for example the Workflow, but for what is the Workflow good for? When I would use Workflow, then ArgoCD is unnecessary? Or use Workflow inside ArgoCD?
How to trigger a workflow automatically, when some changes happen on the Git repository?
Why Argo Workflows?
In a typical CD setup you would need to execute multiple steps and tie them together and create a pipeline. Argo workflow provides that functionality. The value proposition of argo is that each step in the workflow is a container and argo itself runs natively on kubernetes.
When I would use Workflow, then ArgoCD is unnecessary? Or use Workflow inside ArgoCD?
ArgoCD is only necessary to deploy/sync changes in the application artifacts to the kubernetes cluster. Typically you would need to deploy changes at the end of the workflow but this can be different based on your use case.
How to trigger a workflow automatically, when some changes happen on the Git repository?
You can use argoEvents to trigger argo workflow. Check the doc on git based trigger.