How to manage multiple clusters using ArgoCD

data codes through eyeglasses
Reading Time: 2 minutes

ArgoCD is a declarative, GitOps based Continous Delivery (CD) tool for Kubernetes. It focuses on the management of application deployments, with an outstanding feature set covering several synchronization options, user-access controls, status checks, and many more. It has been developing by intuit in 2018.

Prerequisite

  • Installed kubectl command-line tool
  • Have kubeconfig file
  • Git repo
  • Installed ArgoCD here
  • Setup the clusters on GKE or EKS (where ever you want)

Supported manifest formats

It supports different formats on your GitOps repository. Based on documentation it can handle :

  • Kustomize applications
  • Helm charts
  • Ksonnet applications
  • A directory of YAML/JSON manifests, including Jsonnet
  • Any custom config management tool configured as a config management plugin

Multi-cluster feature of ArgoCD

ArgoCD can sync applications on the Kubernetes cluster it is running on and can also manage external clusters. It can be configured to only have access to a restricted set of namespaces.

Credentials to the other clusters’ API Servers are stored as secrets in ArgoCD’s namespace. ArgoCD is useful feature for managing all deployments at a single place. The built-in RBAC mechanism gives options to control access to deployments to different environments only to certain users.

For that first learn the basics of the application controller or follow the official documentation.

Applicationset controller

  • You can deploy the argoCD application to multiple Kubernetes clusters.
  • You can deploy multiple argoCD applications from one single repo
  • Allows unprivileged cluster users (those without access to the Argo CD namespace) to deploy Argo CD Applications, without the need to involve cluster administrators in manually enabling the clusters/namespaces

This is the basic example of applicationset. In this kind (resource) is always ApplicationSet. Now the important thing is generators. In the generator list, we will mention all the clusters and their URL. Template is the basic information of ArgoCD. In repo URL mention your GitHub repo link and path, and in the destination mention URL which is mentioned in the above generator list.

knoldus

Leave a Reply