Argo CD#
Overview#
Argo CD is the GitOps engine that reconciles the NVIDIA Mission Control component stack onto the
k8s-admin cluster. It is also a GitOps-managed component itself, managing its
own configuration and upgrades from the component tree. Operators sign in through
Keycloak, the same identity provider NMC Launchpad uses.
How it works#
Argo CD is installed before the GitOps components (Argo CD Installation).
When you publish the component tree, the argocd Application syncs in the last
wave of the stack and Argo CD takes over managing itself. The Application pulls
the pinned chart from the upstream Argo CD Helm repository and its values from
the GitOps repository, so upgrades and configuration changes reach Argo CD
through the same publish flow as every other component. The UI shows each Application’s sync and health state.
For single sign-on, Argo CD registers as the argocd OpenID Connect (OIDC)
client in the Keycloak nmc realm. Its client secret is seeded as a bootstrap
secret and stored in OpenBao (refer to Secrets). External Secrets delivers it
to Argo CD at runtime. Single sign-on turns on when you publish the component
tree with the Keycloak realm import enabled (keycloak.realmImportEnabled:
true, the standard install setting).
Any user in the nmc realm can sign in, on the web UI with Log in via
Keycloak or on the command line with argocd login <argocd-fqdn> --sso.
Signed-in users get read-only access to every Application. Sync, create, and
delete stay with the built-in admin account. To let your directory users
sign in, federate the directory into the nmc realm (Keycloak).
Configuration#
Add these settings under the argocd key in values.yaml. The key already
carries the pinned version and syncWave from Installing GitOps-Managed Components;
the following fields are the ones you set. A field shown with a value uses that
value as its default when you omit it.
argocd:
fqdn: <argocd-fqdn> # optional, the host name Argo CD is served on; defaults to argocd.dgx-<cluster-name>.nvidia.com
routeEnabled: true # optional, render an external route through the shared gateway
useDockerHubRedisImage: false # optional, pull Redis from Docker Hub instead of AWS ECR Public
fqdn– the host name Argo CD is served on. Defaults toargocd.dgx-<cluster-name>.nvidia.com. Set it to your environment’s host name.routeEnabled– render an external route through the shared gateway. Whenfalse, no external route is emitted.useDockerHubRedisImage– pull Argo CD’s Redis image from Docker Hub instead of AWS ECR Public. Set it totrueif ECR Public rate-limits the pull.
Cross-field consistency rules:
fqdnmust matchk8s_argocd_fqdnfrom the Argo CD installation (Argo CD Installation). The gateway route and the Keycloak redirect URIs are built fromfqdn, so a mismatch breaks access and sign-in.useDockerHubRedisImagemust matchk8s_argocd_use_docker_hub_redis_imagefrom the Argo CD installation (Argo CD Installation).
Secrets#
Argo CD consumes one bootstrap secret. Add it to secrets.yaml:
k8s_bootstrap_secrets_argocd_client_secret: "" # argocd OIDC client secret; leave empty to auto-generate
k8s_bootstrap_secrets_argocd_client_secret– theclient_secretfor theargocdOIDC client. Leave it empty to auto-generate. Seeded together with Keycloak so both sides share the same value. External Secrets delivers it to Argo CD at runtime.
Verify#
Confirm Argo CD single sign-on:
The
argocdApplication reportsSyncedandHealthy, and theargocd-oidcSecret exists in theargocdnamespace.Open
https://<argocd-fqdn>/. The sign-in page shows Log in via Keycloak.Sign in as a Keycloak
nmc-realm user; Verify the Deployment creates one. Argo CD opens with every Application visible and read-only, and a sync attempt is denied.Run
argocd login <argocd-fqdn> --ssoand confirm the CLI signs in.Sign in with the local
adminaccount and confirm a sync succeeds.