Skip to content

ArgoCD Applications Quiz

This quiz tests your understanding of ArgoCD Applications and their configuration.

  1. What is the primary purpose of an ArgoCD Application resource?
    • A) To define user access controls
    • B) To specify the desired state of an application and its sync settings
    • C) To configure notifications
    • D) To manage secrets
Show Answer

Answer: B) To specify the desired state of an application and its sync settings

Explanation: An ArgoCD Application is a Kubernetes custom resource that defines the source (Git repo, path, revision) and destination (cluster, namespace) of an application, along with sync policies and health checks.

  1. Which field in an Application spec defines where the manifests should be deployed?
    • A) source
    • B) target
    • C) destination
    • D) cluster
Show Answer

Answer: C) destination

Explanation: The destination field specifies the target cluster (by server URL or name) and namespace where the application's resources should be deployed.

  1. What does the spec.source.path field specify in an Application?
    • A) The path to the ArgoCD installation
    • B) The directory within the Git repository containing the manifests
    • C) The local file system path
    • D) The API server path
Show Answer

Answer: B) The directory within the Git repository containing the manifests

Explanation: The path field under source specifies the directory within the Git repository that contains the Kubernetes manifests, Helm chart, or Kustomize configuration.

  1. How can you deploy an application to a specific namespace that doesn't exist yet?
    • A) Manually create the namespace first
    • B) Use syncPolicy.syncOptions with CreateNamespace=true
    • C) It's not possible
    • D) Use a pre-sync hook
Show Answer

Answer: B) Use syncPolicy.syncOptions with CreateNamespace=true

Explanation: Setting CreateNamespace=true in syncPolicy.syncOptions tells ArgoCD to automatically create the target namespace if it doesn't exist before syncing the application resources.

  1. What is the difference between targetRevision: HEAD and targetRevision: main?
    • A) No difference
    • B) HEAD always points to the default branch, main is explicit
    • C) HEAD is faster
    • D) main supports webhooks, HEAD doesn't
Show Answer

Answer: B) HEAD always points to the default branch, main is explicit

Explanation:HEAD is a symbolic reference that points to whatever the repository's default branch is, while main explicitly specifies the main branch. Using HEAD is more flexible if the default branch changes.

  1. Which source type would you use to deploy a Helm chart from a Helm repository (not Git)?
    • A) git
    • B) helm
    • C) directory
    • D) kustomize
Show Answer

Answer: B) helm

Explanation: When deploying from a Helm repository, you set source.chart and source.repoURL to point to the Helm repository, and ArgoCD will treat it as a Helm source rather than a Git source.

  1. What happens when you set spec.source.helm.releaseName?
    • A) It creates a new Helm repository
    • B) It overrides the default release name (which is the Application name)
    • C) It enables Helm hooks
    • D) It sets the chart version
Show Answer

Answer: B) It overrides the default release name (which is the Application name)

Explanation: By default, ArgoCD uses the Application name as the Helm release name. Setting releaseName explicitly allows you to use a different name for the Helm release.

  1. How do you specify Helm values in an ArgoCD Application?
    • A) Only through values files in the repository
    • B) Only inline in the Application spec
    • C) Both through values files and inline values
    • D) Values must be stored in a ConfigMap
Show Answer

Answer: C) Both through values files and inline values

Explanation: ArgoCD supports specifying Helm values through spec.source.helm.valueFiles (referencing files in the repo) and/or spec.source.helm.values (inline YAML). Both can be used together, with inline values taking precedence.