<p>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. </p>

<p>According to my understanding, the deployment should look as follows:</p>

<p><a href="https://i.stack.imgur.com/gBdjf.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/gBdjf.png" alt="flow chart: IDE push to git, hook to CI/CD, deploy to Kubernetes"></a></p>

<p>As I've described above, I would like to deploy microservices into the K8S cluster 
and I've found <a href="https://argoproj.github.io" rel="nofollow noreferrer">https://argoproj.github.io</a>. I think, this is what I am looking for. </p>

<p>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?</p>

<p>How to trigger a workflow automatically, when some changes happen on the Git repository?
<a href="https://i.stack.imgur.com/jfg44.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/jfg44.png" alt="flow chart: IDE push to git, start Argo workflow"></a></p>

<blockquote>
  <p>Why Argo Workflows?</p>
</blockquote>

<p>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.</p>

<blockquote>
  <p>When I would use Workflow, then ArgoCD is unnecessary? Or use Workflow
  inside ArgoCD?</p>
</blockquote>

<p>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.</p>

<blockquote>
  <p>How to trigger a workflow automatically, when some changes happen on
  the Git repository?</p>
</blockquote>

<p>You can use <a href="https://argoproj.github.io/argo-events/" rel="nofollow noreferrer">argoEvents</a> to trigger argo workflow. Check the <a href="https://argoproj.github.io/argo-events/tutorials/03-trigger-sources/#git" rel="nofollow noreferrer">doc</a> on git based trigger.</p>
