Member-only story
Journey Of A Microservice Application In The Kubernetes World
Continuous Deployment using GitOps with Argo CD

TL;DR
In the previous article we deployed the webhooks application into a Kubernetes cluster managed by Civo. We will now get closer to the application workflow and use GitOps to set up the Continuous Deployment part of the CI/CD pipeline.
Articles in this series
- Presentation of the webhooks.app
- Running the application on a local one-node Kubernetes using Helm
- Running the application on a Civo Kubernetes cluster
- Continuous Deployment using GitOps with Argo CD (this article)
- Observability using the Loki stack
- Defining the application using Acorn
- Security considerations : security related tools
- Security considerations : fixing misconfigurations
- Security considerations : policies enforcement
- Security considerations : vulnerability scanning (coming soon)
What is GitOps
The GitOps concept was created by Weaveworks a couple of years ago. It has since experienced a growing craze.
GitOps is a way to do Continuous Delivery. It works by using Git as a source of truth for both declarative infrastructure and applications. Automated delivery pipelines roll out changes to your infrastructure when changes are made to Git.
— Weaveworks
Deploy changes to the cluster : push vs pull
In a typical CI/CD pipeline the CI tool (could be GitLab CI, GitHub actions, Tekton, …) is in charge of running the tests, building the image, checking the CVEs and redeploying the new images into the cluster. The CI thus need to access the cluster.

The GitOps approach is different as the deployment part is not done by the CI tool but by an operator which is an application running in a Pod: