Argo CD

Type Helm
Namespace argocd

Overview

Argo CD is the software that manages all Kubernetes resources in a deployment of the Rubin Science Platform. It is itself a set of Kubernetes resources and running pods managed with Helm. Argo CD cannot manage and upgrade itself, so it periodically should be upgraded manually.

Argo CD is installed and bootstrapped as part of the cluster creation process. The UI is exposed on the /argo-cd route for the Science Platform. Unlike other resources on the Science Platform, it is not protected by Gafaelfawr. It instead uses username and password authentication. The username and password are stored in the SQuaRE 1Password vault.

Warnings

Argo CD is somewhat particular about how its resources are set up. Everything related to Argo CD that can be namespaced must be in the argocd namespace.

Warning

Application resources must be in the argocd namespace, not in the namespace of the application.

If you accidentally create an Application resource outside of the argocd namespace, Argo CD will display it in the UI but will not be able to sync it. You also won’t be able to easily delete it if it defines the normal Argo CD finalizer because that finalizer will not run outside the argocd namespace. To delete the stray Application resource, edit it with kubectl edit and delete the finalizer, and then delete it with kubectl delete.

Warning

Do not use the documented Argo CD upgrade method that uses kubectl apply. This will not work properly when Argo CD was installed via Helm, as it is on the Science Platform, and it will create a huge mess.

Instead, follow the upgrade process described below.

Guides