Skip to content

The Argo CD Application: CAPA practice questions

An Application is the Argo CD custom resource that ties a source of manifests to a place in a cluster. It is usually created in the argocd namespace and names three things: a project, a source and a destination.

By Ibrahim Yesilay · Published · Updated

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

What The Argo CD Application covers in CAPA

An Application is the Argo CD custom resource that ties a source of manifests to a place in a cluster. It is usually created in the argocd namespace and names three things: a project, a source and a destination.

The project field names an AppProject. Every Application belongs to exactly one project, and an application that does not set one belongs to the default project, which is created automatically, permits any source repository, any destination and every resource kind, and can be modified but not deleted. Dedicated projects narrow that down with sourceRepos, destinations, cluster and namespace resource allow and deny lists, project roles and sync windows, so the project is the main multi-tenancy boundary.

The source has a repoURL, a targetRevision such as a branch, tag or commit, and a path inside the repository. For a Helm repository it has a chart name instead of a path. Tool-specific blocks, helm, kustomize, directory or plugin, adjust how the manifests are generated. An application can instead list several entries under sources, for example a chart from a Helm repository with its values file from a Git repository; a source with a ref name exposes that repository to the others as a variable such as $values.

The destination names the cluster, with either server, for example https://kubernetes.default.svc for the cluster Argo CD runs in, or name, but not both, and the target namespace. syncPolicy holds the automated settings, sync options and retry; ignoreDifferences excludes fields from the comparison; and revisionHistoryLimit, 10 by default, sets how many past syncs are kept for rollback.

Deletion depends on a finalizer. With resources-finalizer.argocd.argoproj.io on the Application, deleting it also deletes the resources it manages, which is a cascading delete. Without the finalizer, kubectl delete removes only the Application and leaves its workloads running. argocd app delete cascades by default, and --cascade=false keeps the resources. Argo CD tracks which live resources belong to an Application with the argocd.argoproj.io/tracking-id annotation by default; label-based tracking with app.kubernetes.io/instance is an alternative.

Key points

  • An Application without a project belongs to the default project, which allows everything.
  • A destination uses server or name for the cluster, never both.
  • Without the resources finalizer, deleting an Application leaves its resources running.
  • Multiple sources let a chart and its values file come from different repositories.

Three sample questions

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

Question 1

Which command shows the sync status of all applications?
  1. A.argocd app list
  2. B.argocd status
  3. C.argocd get applications
  4. D.argocd app status

Correct answer: A

argocd app list is the documented command that lists applications; with no filters it covers all apps in the instance, and flags such as -p or -l narrow it. Nothing else in the CLI reference matches the other spellings. Why the other options are wrong. "argocd status": there is no top-level argocd status subcommand in the argocd command reference. "argocd get applications": argocd get is not a documented top-level command, and applications are listed with app list. "argocd app status": argocd app status is not among the app subcommands; argocd app get shows one application's details.

Sources: Argo CD docs: argocd app list, Argo CD docs: argocd app

Question 2

What is the purpose of the Application Health status in Argo CD?
  1. A.To show Git repository status, such as whether the tracked revision was fetched
  2. B.To indicate sync status
  3. C.To show resource operational status
  4. D.To display cluster health, meaning the node and control-plane state of the destination cluster

Correct answer: C

Application health in Argo CD is inferred from the health of the application's child resources: the app takes the worst health among them (Healthy, Suspended, Progressing, Missing, Degraded, Unknown). It therefore reports whether deployed resources are operating correctly. Why the other options are wrong. "To show Git repository status, such as whether the trac...": the repository server holds the Git cache; health is about live Kubernetes resources, not the repo. "To indicate sync status": sync status, such as OutOfSync, comes from comparing live state with the desired state in Git, while health looks at resource status. "To display cluster health, meaning the node and control...": health is calculated from the app's resources, not from node or control-plane condition of the cluster.

Sources: Argo CD docs: Resource Health, Argo CD docs: Architectural Overview

Question 3

An Argo CD Application is stuck in "Progressing" state. What is the MOST likely cause?
  1. A.The Git repository is unreachable, so the repo server cannot fetch the target revision and keeps retrying
  2. B.A resource was applied but is not healthy yet, for example a Deployment still rolling out new pods
  3. C.The Application manifest has incorrect YAML syntax, so the controller cannot parse the spec and retries forever
  4. D.The sync operation was cancelled

Correct answer: B

Progressing is a health status: the resources were applied but at least one of them has not reached a healthy state yet, typically a Deployment whose new pods are still starting. Why the other options are wrong. "The Git repository is unreachable, so the repo server c...": that shows up as a ComparisonError condition, not as a health status. "The Application manifest has incorrect YAML syntax, so...": invalid manifests fail generation or the sync; they are not reported as Progressing. "The sync operation was cancelled": a terminated operation is shown in the operation state, not as resource health.

Sources: Argo CD docs: Resource Health, Argo CD docs: Sync Options

Practice this topic

Focus mode keeps every question on The Argo CD Application 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.