Skip to the content.

poster

Single Pane of Glass for ArgoCD Instances

This initiative is intended to provide a single pane of glass for viewing the status of the applications deployed via ArgoCD. argomanager

Background

The Global SRE team uses multiple Argo CD instances to deploy apps on Kubernetes depending on the state of the software (pre-production, development, etc.). The apps can only be viewed an instance at a time represented by a tab in the browser. This means that theoretically, if a team or company utilizes dozens of Argo CD instances, the only way to view the apps from each of these instances at once is to have a tab open per instance. The Argo Manager seeks to provide a single pane of glass for viewing all apps of Argo CD instances in a single frame.

How It Works

The Argo Manager uses a React JS frontend for the UI. It communicates with a Flask (Python) backend that facilitates the actual API requests to the Argo CD API for each Argo CD instance given the server name and that instance’s API key. The Flask backend returns a filtered JSON response from the Argo CD API that is then used for rendering app information on the frontend. Currently, the server name and the API key is stored in a secrets.json file that is accessed by the Flask backend to make authorized API calls. The objective is for the Argo Manager to eventually manage secrets from GCP (Google Cloud Platform). The Argo Manager for local use runs on localhost:3000 in the browser. The React frontend is also reconfigured to redirect requests made to its port to the Flask backend via a proxy.

The Argo Manager uses instances of Argo CD running locally. These instances are deployed on either kind or Minikube clusters, which are tools for running Kubernetes clusters locally, though both tools cannot be used simultaneously. A separate instance is made by creating another instance of Argo CD within a separate namespace from the other instances. For details on using multiple Argo CD instances on your device, read the below section titled, “Running Multiple Argo CD Instances Locally.”

What It Does

The Argo Manager allows the user to view all apps being deployed from multiple Argo instances in a single pane of glass. It utilizes an interface similar to a normal Argo CD instance, with the app tiles also having the ability to show the app’s deploying instance. The manager also provides similar functionality to Argo CD by changing the color of a tile based on an app’s deployment status, providing the health and sync status of an app, and providing other app information such as its namespace and repository URL. As of July 2021, there are currently plans to allow filtering tiles by app name, Argo instance, and other filters.

Argo Manager UI

The search column contains filters for displaying which apps will be shown on the UI. Currently, the Argo Manager has the ability to filter by the following criteria: -Instance -Sync Status -Health -Project -Cluster -Namespace ui

Project Objectives

-Read-only view of Argo CD instances and status of applications​ -Can filter by application name, namespace or other existing filters available through Argo CD​ -Leverages Argo CD site theme