🏅
9 - Setup one-click deployments using ArgoCD
Learning Outcomes
Learn about GitOps principles.
Learn about ArgoCD.
Problem Statement
We need to configure ArgoCD to do deployments on our behalf. The deployment should be triggered once any code changes are merged into the GitHub repository and the CI pipeline works successfully.
Expectations
The following expectations should be met to complete this milestone.
We need to deploy and configure the ArgoCD server and its components in our Kubernetes cluster.
ArgoCD components should be running inside the
argocd
namespace and on thedependent_services
node. Here’s the deployment diagram for reference.
ArgoCD components such as ArgoCD apps, repository secrets, etc. should be created in a declarative manner by using Kubernetes manifests and should not be created manually.
These ArgoCD manifests should be committed at the appropriate filepath in the same GitHub repository.
README.md should be updated with instructions to set up the ArgoCD server in a Kubernetes cluster.
ArgoCD server should consider helm charts and respective helm values as the source of truth.
You need to add a job in GitHub Actions Workflow that takes the latest pull of the helm charts and updates the image tag in respective values.yaml file and makes a commit.
The above GitHub Action should run on the self-hosted GitHub runner.
Once committed, the ArgoCD server should discover new changes and should do auto-sync for the apps.