Argo CD architecture and notes#

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. See Argo CD authentication

Namespace for Application resources#

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.