Skip to content

Argo CD fundamentals: CAPA practice questions

Argo CD is a declarative GitOps delivery tool for Kubernetes. The desired state of each application lives in Git, and Argo CD compares it with the cluster and can bring the cluster in line. Its documentation defines a small vocabulary that the rest of the project uses.

By Ibrahim Yesilay · Published · Updated

Independent community practice, not affiliated with or endorsed by CNCF or The Linux Foundation.

What Argo CD fundamentals covers in CAPA

Argo CD is a declarative GitOps delivery tool for Kubernetes. The desired state of each application lives in Git, and Argo CD compares it with the cluster and can bring the cluster in line. Its documentation defines a small vocabulary that the rest of the project uses. The target state is what the files in Git describe; the live state is what is actually deployed. Sync status says whether the two match. A sync is the process of moving the application to its target state, and the sync operation status says whether that process succeeded. A refresh compares the latest Git content with the live state. Health is a separate judgement of whether the application is running correctly.

Three components do the core work. The API server is a gRPC and REST service used by the web UI, the argocd CLI and automation: it manages applications, triggers operations such as sync and rollback, stores repository and cluster credentials, authenticates users, enforces RBAC and receives Git webhooks. The repository server keeps a local cache of Git repositories and generates manifests for a given repository, revision and path, running Helm or Kustomize when needed. The application controller continuously compares live and target state, flags differences as OutOfSync, can correct them and runs sync hooks. The installation also runs argocd-redis, a disposable cache, and argocd-dex-server for single sign-on, and the ApplicationSet controller has been bundled since Argo CD 2.3.

Configuration is stored in Kubernetes. General settings sit in the argocd-cm ConfigMap, RBAC policy in argocd-rbac-cm, and sensitive settings in argocd-secret. Repositories and clusters can be registered declaratively as Secrets labelled with argocd.argoproj.io/secret-type. The installing namespace, argocd by default, also holds Applications and AppProjects unless applications in other namespaces have been enabled.

Argo CD checks Git for changes every three minutes by default, a 120-second interval plus up to 60 seconds of jitter, and a webhook from GitHub, GitLab, Bitbucket and similar providers can make it refresh at once. The initial admin password is generated at install time and can be printed with argocd admin initial-password. RBAC policies use the p and g lines of a Casbin policy, and the built-in roles are role:readonly and role:admin.

Key points

  • Sync status compares Git and the cluster; health says whether the resources work.
  • The repository server renders manifests; the application controller compares and reconciles.
  • Git is polled every 3 minutes by default, and webhooks shorten that delay.
  • Settings live in argocd-cm, RBAC in argocd-rbac-cm and secrets in argocd-secret.

Three sample questions

13 CAPA questions on Argo CD fundamentals, 13 with explanations. How practice works

Question 1

Which component in Argo CD is responsible for maintaining the Git repository cache?
  1. A.API Server
  2. B.Repository Server
  3. C.Application Controller
  4. D.Dex Server

Correct answer: B

The Argo CD architecture page says the repository server is an internal service that keeps a local cache of the Git repository holding the application manifests and generates the Kubernetes manifests from it. It takes the repo URL, revision, path and template settings as input. Why the other options are wrong. "API Server": the API server serves the UI, CLI and CI/CD systems and handles auth, RBAC and webhook forwarding. "Application Controller": the application controller compares live and desired state and detects OutOfSync applications. "Dex Server": Dex is the bundled component that delegates authentication to an external identity provider.

Sources: Argo CD docs: Architectural Overview, Argo CD docs: User Management

Question 2

What is the purpose of the argocd-cm ConfigMap?
  1. A.To store user credentials
  2. B.To configure Argo CD settings
  3. C.To store application definitions
  4. D.To manage RBAC policies

Correct answer: B

argocd-cm is the ConfigMap for general Argo CD configuration; it holds settings such as the instance URL, dex.config SSO connectors and local accounts. The declarative setup page lists it as general configuration, separate from the secret and RBAC ConfigMaps. Why the other options are wrong. "To store user credentials": user passwords and similar secrets live in the argocd-secret Secret, not in argocd-cm. "To store application definitions": applications are Application custom resources created in the Argo CD namespace; they are not stored in argocd-cm. "To manage RBAC policies": RBAC policy is kept in the separate argocd-rbac-cm ConfigMap.

Sources: Argo CD docs: Declarative Setup, Argo CD docs: argocd-cm.yaml

Question 3

How do you enable SSO with GitHub in Argo CD?
  1. A.Configure GitHub connector in Dex
  2. B.Use GitHub OAuth directly, with Argo CD calling GitHub's authorize endpoint and no Dex in between
  3. C.Enable GitHub integration
  4. D.Configure GitHub OIDC under oidc.config with GitHub named as the issuer

Correct answer: A

Argo CD bundles Dex, and its user management page configures GitHub login by adding a github connector under dex.config in argocd-cm. The documented GitHub example registers an OAuth app whose callback is the /api/dex/callback endpoint. Why the other options are wrong. "Use GitHub OAuth directly, with Argo CD calling GitHub'...": the docs describe two SSO routes, bundled Dex or an existing OIDC provider via oidc.config; GitHub OAuth is documented through Dex, not by Argo CD calling GitHub itself. "Enable GitHub integration": the docs have no setting named GitHub integration for SSO; GitHub is a Dex connector type. "Configure GitHub OIDC under oidc.config with GitHub n...": oidc.config is documented for OIDC providers such as Okta or Keycloak; GitHub is set up through the Dex github connector instead.

Sources: Argo CD docs: User Management Overview, Argo CD docs: argocd-cm.yaml

Practice this topic

Focus mode keeps every question on Argo CD fundamentals until you leave it. 10 free guest answers, then a free account; no credit card.

Or open CAPA practice across all topics.

Sources

The explanation above was checked against these official documents.