ArgoCD Applications Quiz
This quiz tests your understanding of ArgoCD Applications and their configuration.
- 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.
- 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.
- What does the
spec.source.pathfield 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.
- 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.
- What is the difference between
targetRevision: HEADandtargetRevision: 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.
- 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.
- 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.
- 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.