Home

Awesome

Deprecation Notice

This repo is now deprecated and no further changes will be made. The current alternative for installing Argo CD extensions is by defining an init-container in the Argo CD API server using the argocd-extension-installer image provided by the following repo:

This is an example about how to use it:

Argo CD Extensions

To enable Extensions for your Argo CD cluster will require just a single kubectl apply.

Here we provide a way to extend Argo CD such that it can provide resource-specific visualizations, capabilities and interactions in the following ways:

Motivation

Argo CD is commonly used as a dashboard to Kubernetes applications. The current UI is limited in that it only displays very general information about Kubernetes objects. Any special visualizations can currently only be done native Kubernetes kinds.

For custom resources, Argo CD does not by default have any special handling or understanding of CRs, such as how to assess health of the object or visualizations. When examining a resource, a user can only see a YAML view of the object, which is not helpful unless they are familiar with the object's spec and status information.

Note that Argo CD does currently have a resource customizations feature, which allows operators to define health checks and actions via lua scripts in the argocd-cm ConfigMap. However, the current mechanism of configuring resource customizations is difficult and highly error prone.

This proposal would allow operators to more easily configure Argo CD to understand custom resources, as well as provide more powerful visualization of objects.'

Goals

Getting Started

The simplest way to install the extension controller is to use Kustomize to bundle Argo CD and the extensions controller manifests together:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
# base Argo CD components
- https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/ha/install.yaml

components:
# extensions controller component
- https://github.com/argoproj-labs/argocd-extensions/manifests

Store the YAML above into kustomization.yaml file and use the following command to install manifests:

kubectl create ns argocd && kustomize build . | kubectl apply -f - -n argocd