ArgoCD

Foundation

ArgoCD is installed for both Kubernetes cluster admin deployments of global services and components and for individual developers to use for app development. The ArgoCD applications defined by the admin in the default project follow the “app of apps” pattern by creating a parent root app that includes separately defined apps in a hierarchical way.

Following this documentation, GitHub/GitLab has been added as an identity provider for authentication to the ArgoCD service.

App development

Members of select GitHub/GitLab organizations/groups can use the “Log in via GitHub/GitLab” button. They have shared access to the ArgoCD application project associated with that org/group, allowing them to create applications from independent git repositories. The application definitions must:

  • Reside in a namespace with the prefix of the project my-project-* (e.g. my-project-my-app)

  • Reference a git repository specially allowed by the ArgoCD application project configuration.

Command line access

To use the local ArgoCD CLI, use the more complex login command, which will open a browser window to complete the GitHub/GitLab authentication:

$ argocd login lsst-sandbox.ncsa.illinois.edu --grpc-web-root-path /argo-cd --sso

Opening browser for authentication
Performing authorization_code flow login: https://lsst-sandbox.ncsa.illinois.edu/argo-cd/api/dex/auth?access_type=offline&client_id=argo-cd-cli&code_challenge=_WcC...xU&code_challenge_method=S256&redirect_uri=http%3A%2F%2Flocalhost%3A8085%2Fauth%2Fcallback&response_type=code&scope=openid+profile+email+groups+offline_access&state=XFlqXMCGVO
Authentication successful
'manninga@illinois.edu' logged in successfully
Context 'lsst-sandbox.ncsa.illinois.edu:443/argo-cd' updated