ArgoCD: Setup external clusters by name

ArgoCD: Setup external clusters by name

ArgoCD is probably the most advanced GitOps tool we can use at this moment. It was featured in the Trial quadrant of the Thoughtworks Radar, May 2020 edition and it is also part of the CNCF Continuous Delivery Radar from June 2020 on Asses. The project was admitted into CNCF in April 2020 and since then it attracted more and more users and contributors.

ArgoCD is probably the most advanced GitOps tool we can use at this moment. It was featured in the Trial quadrant of the Thoughtworks Radar, May 2020 edition and it is also part of the CNCF Continuous Delivery Radar from June 2020 on Asses. The project was admitted into CNCF in April 2020 and since then it attracted more and more users and contributors.

Image for post

The latest version of ArgoCD, when I am writing this, is 1.7.0, released on 25 August 2020. It has many new features and 2 of them seem to be more interesting: ability to use only signed commits for applying state changes and allowing usage of cluster names for application destination (in previous version you could have only used cluster url). Next I would like to go through some examples on how to use the cluster name instead of url. This allows a better user experience because cluster urls are sometimes generated, when using managed services like EKS or AKS, so it is much harder to know if that is really the dev cluster you are applying your application on or maybe some production one. While this feature seems to be really easy to use, just pass the cluster name instead of url, it has some gotchas you need to pay attention to.

All the files needed for the commands below can be found in this repo: https://github.com/lcostea/argocd-cluster-name-article. So please clone it and then cd into it:

git clone https://github.com/lcostea/argocd-cluster-name-article.git
cd argocd-cluster-name-article

Install ArgoCD 1.7.8

First, lets install ArgoCD 1.7.8, which is now the latest patch. I have kind installed locally, so I am going to spin a new cluster. If you don’t have kind, here are instructions for installing it.

kind create cluster --name argocd1.7

After the cluster is up and running and your context is pointing at it, we will install ArgoCD, first create the "argocd" namespace and then we will apply the 1.7.8 manifests (please stick to this argocd namespace, other name will create problems when using manifests directly and not kustomize):

kubectl create namespace argocd

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v1.7.8/manifests/install.yaml

argo devops continuous-delivery gitops kubernetes

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

50+ Useful Kubernetes Tools for 2020 - Part 2

Our original Kubernetes tool list was so popular that we've curated another great list of tools to help you improve your functionality with the platform.

Integrating Argo CD for Your Kubernetes Project

Argo CD is an open-source continues delivery tool for your project which runs on Kubernetes. Argo CD can be identified as an open-source continuous delivery tool for Kubernetes which has a graphical user interface to see Kubernetes components inside the cluster.

8 Fallacies of Continuous Delivery

A quintessential piece for anyone working with distributed systems is the Fallacies of Distributed Computing by L Peter Deutsch. Even when working with modern platforms such as Kubernetes, the assertions made in the Fallacies of Distributed Computing prove to be very true around latency, bandwidth and system administration. 

Measuring DevOps Metrics: A How-To Guide

DevOps is supposed to help streamline the process of taking code changes and getting them to production for users to enjoy. But what exactly does it mean for the process to be "streamlined"? One way to answer this is to start measuring metrics.

Continuous delivery with Flux

The acronym “CI/CD” and its respective phrases (continuous integration & continuous [delivery|deployment]) are sometimes munged together.