πŸ…

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 the dependent_services node. Here’s the deployment diagram for reference.
notion image
  • 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.

Further Reading