Question bank
Certified GitOps Associate (CGOA)
41 Certified GitOps Associate (CGOA) questions with the correct answer and a written explanation, organised across 5 exam domains.
- 41 questions
- 5 domains
- Foundation level
Question index
Jump straight to any question. Answers and explanations are inline.
GitOps Patterns
8 questions in this domain
- Question 1Single Choice
Which engine does Helm Chart templating use to inject dynamic values into YAML manifests?
- AGo-templateCorrect answer
- BJinja2
- CJsonnet
- DYAML anchors
Why this is the answer
Helm uses a Go-template engine to fill placeholders in charts with values from values.yaml files.
- Question 2Multiple Select
Select all statements that are true about Kustomize overlays.
- AOverlays can patch a common base without modifying the original sourceCorrect answer
- BKustomize uses strategic merge patches or JSON patchesCorrect answer
- CKustomize supports if/else conditional logic and loops
- DA base is a common set of resources shared across environmentsCorrect answer
Why this is the answer
Kustomize defines a common base and applies patches through overlays; it does not support Helm-style conditional logic and loops.
- Question 3Interactive
Given the YAML values file snippet in the code block, which Helm template expression outputs the declared value?
- A{{ .Values.replicaCount }}Correct answer
- B{{ .replicaCount }}
- C{{ values.replicaCount }}
- D{{ .Chart.replicaCount }}
Why this is the answer
Helm values are accessed through .Values, so .Values.replicaCount renders the numeric value defined in values.yaml.
- Question 4Single Choice
In the CGOA context, how does a GitOps controller make Helm deployment declarative?
- AIt runs 'helm install' or 'helm upgrade' based on the desired state declared in GitCorrect answer
- BIt requires Helm commands to be executed manually from a developer workstation
- CIt uses Helm as the only source of truth
- DIt converts Helm charts into Kustomize overlays
Why this is the answer
In GitOps, the controller acts as the engine that performs helm install or upgrade according to the state declared in Git.
- Question 5Multiple Select
Which of the following correctly distinguish Helm chart templating from Kustomize overlays? Select all that apply.
- AHelm uses predefined values to populate placeholders in templatesCorrect answer
- BKustomize modifies existing YAML structures by adding, removing, or changing fieldsCorrect answer
- CBoth Helm and Kustomize are package managers
- DKustomize can handle complex conditional logic better than Helm
Why this is the answer
Helm relies on value injection, while Kustomize patches YAML. Kustomize lacks conditional logic and loops found in Helm templates.
- Question 6Interactive
The code block contains a Kustomize configuration. What is its main purpose?
- AIt defines a base set of resources and applies environment-specific patchesCorrect answer
- BIt stores Helm chart values for a release
- CIt creates a new Kubernetes API extension
- DIt configures a container image build pipeline
Why this is the answer
The Kustomization references a base and a strategic merge patch file, which is how Kustomize overlays customize resources per environment.
- Question 7Single Choice
How does a GitOps controller like Flux or Argo CD respond when a Helm chart version or Kustomize overlay changes in Git?
- AIt detects the change and triggers synchronizationCorrect answer
- BIt builds and pushes new container images
- CIt rewrites the Git history to reconcile
- DIt waits for a developer to run kubectl apply
Why this is the answer
GitOps controllers watch Git or receive webhooks, then synchronize the cluster to the newly declared desired state.
- Question 8Multiple Select
Select all statements that align with CGOA guidance on common GitOps traps.
- AHelm is a package manager, and a separate GitOps controller makes Helm usage declarativeCorrect answer
- BArgo CD is primarily a CI tool for building applications
- CThe Git provider holds the intended state, but does not perform the deploymentCorrect answer
- DDeleting a file in Git always guarantees the matching resource is removed from the cluster
Why this is the answer
CGOA warns against treating Helm as a GitOps tool, Argo CD as CI, or the Git provider as the deployment engine. Pruning is not guaranteed by simply deleting a file.
GitOps Principles
12 questions in this domain
- Question 9Single Choice
In Helm chart templating, what template engine is used to inject dynamic values into Kubernetes YAML manifests?
- AGo-templateCorrect answer
- BJinja2
- CMustache
- DHandlebars
Why this is the answer
Helm uses a Go-template engine to render dynamic values into YAML manifests while preparing Kubernetes charts.
- Question 10Multiple Select
Which two statements accurately describe how Kustomize overlays work in a base and overlay model?
- AOverlays customize a common base for environmentsCorrect answer
- BOverlays modify the original base source files
- COverlays can use strategic merge patchesCorrect answer
- DOverlays are exclusively a Helm feature
Why this is the answer
Kustomize overlays customize a base without modifying the original source and can use strategic merge or JSON patches.
- Question 11Interactive
Looking at the code block, what GitOps customization strategy is being demonstrated by the configuration?
- AKustomize overlayCorrect answer
- BHelm values injection
- CImperative CLI command
- DCluster backup
Why this is the answer
The code block shows a Kustomization resource with a patch, indicating a Kustomize overlay approach.
- Question 12Single Choice
In the context of the CGOA framework, how should Helm be used within a GitOps workflow?
- ADeclaratively through a GitOps controllerCorrect answer
- BImperatively through the CLI
- CManually on each cluster
- DAs a replacement for Kubernetes
Why this is the answer
CGOA emphasizes declarative Helm usage, with the GitOps controller performing installs and upgrades from Git.
- Question 13Multiple Select
Which two changes in Git can cause a GitOps controller to synchronize a Helm chart or Kustomize overlay?
- AA change in a Helm chart version in GitCorrect answer
- BA change in a Kustomize overlay in GitCorrect answer
- CA one-time manual change in the cluster
- DA local edit that is not pushed to Git
Why this is the answer
The controller watches Git for changes in chart versions and overlays, then synchronizes the cluster to match.
- Question 14Interactive
What does the command shown in the code block represent in the context of GitOps execution?
- AImperative Helm CLI usageCorrect answer
- BDeclarative GitOps reconciliation
- CKustomize overlay rendering
- DKubernetes API server admission
Why this is the answer
The code block shows a direct Helm upgrade command, which is imperative rather than declarative GitOps execution.
- Question 15Single Choice
Which GitOps tool relies on predefined chart values to populate placeholders in YAML templates during manifest rendering?
- AHelmCorrect answer
- BKustomize
- CKubernetes
- DArgo CD
Why this is the answer
Helm uses values files and placeholders, while Kustomize patches existing YAML structures.
- Question 16Multiple Select
Which two statements about Helm, Kustomize, and GitOps controllers are true according to the playbook?
- AHelm is a package manager, not a GitOps controllerCorrect answer
- BKustomize supports full conditional if/else logic
- CKustomize lacks loops and conditionals found in HelmCorrect answer
- DArgo CD is a CI tool
Why this is the answer
Helm packages charts, while Kustomize overlays lack Helm's complex conditional logic.
- Question 17Interactive
What Helm templating capability is demonstrated by the logic shown in the provided code block?
- AHelm conditional logicCorrect answer
- BKustomize JSON patch
- CKubernetes pruning
- DFlux image automation
Why this is the answer
The code block uses Helm Go-template syntax with a conditional block, a feature Kustomize does not provide.
- Question 18Single Choice
In a GitOps conflict between cluster state and repository content, what is considered the source of truth?
- AGit repositoryCorrect answer
- BLive cluster state
- CAPI server cache
- DContainer registry
Why this is the answer
Git is the desired state source of truth; the cluster is reconciled to match Git.
- Question 19Multiple Select
Which two statements about Flux and its role in GitOps are correct based on the common traps section?
- AFlux is a collection of specialized controllersCorrect answer
- BFlux is a single binary
- CFlux builds container images
- DFlux manages GitOps synchronizationCorrect answer
Why this is the answer
Flux is made of controllers for source, Kustomize, Helm, and notifications; it does not build images.
- Question 20Interactive
What Kubernetes API extension is being defined by the resource kind shown in the code block?
- ACustomResourceDefinitionCorrect answer
- BDeployment
- CNamespace
- DHelm release
Why this is the answer
The code block defines a CustomResourceDefinition, extending the Kubernetes API with a new resource type.
GitOps Terminology
8 questions in this domain
- Question 21Single Choice
In Helm chart templating, which file does a GitOps controller read from Git to render the final desired state for a cluster?
- Avalues.yamlCorrect answer
- BChart.yaml
- CDockerfile
- Dkustomization.yaml
Why this is the answer
values.yaml holds predefined variables used as placeholders in Helm templates. A GitOps controller reads it to render the final YAML manifests.
- Question 22Multiple Select
According to the GitOps playbook, which statements accurately describe Kustomize's base-and-overlay model? Select all that apply.
- AA base is a common set of resourcesCorrect answer
- BOverlays customize resources with patchesCorrect answer
- COverlays require modifying the original base
- DOverlays use Helm's Go-template syntax
Why this is the answer
Kustomize defines a common base and overlays apply strategic merge or JSON patches. It does not use Go templates or alter the original base.
- Question 23Interactive
Review the placeholder syntax in the code block. Which tool uses this template mechanism to inject values into YAML?
- AHelmCorrect answer
- BKustomize
- CDocker Compose
- DKubernetes
Why this is the answer
The expression shown is a Helm Go-template placeholder. Helm injects values from values.yaml into the final YAML manifests.
- Question 24Single Choice
According to GitOps practices, what is Helm's proper role when used inside a GitOps workflow?
- AKubernetes package managerCorrect answer
- BCI/CD pipeline system
- CContainer image builder
- DCluster source of truth
Why this is the answer
Helm is a Kubernetes package manager. In GitOps, a controller makes Helm usage declarative by installing or upgrading based on Git state.
- Question 25Multiple Select
Which distinctions between Helm and Kustomize are correct according to the GitOps playbook? Select all that apply.
- AHelm relies on value injectionCorrect answer
- BKustomize patches fields in YAMLCorrect answer
- CHelm uses Go-template logicCorrect answer
- DKustomize has loops and conditionals
Why this is the answer
Helm populates placeholders from values and supports Go templates. Kustomize changes existing YAML fields without Helm's conditional logic.
- Question 26Interactive
The code block declares a set of resources and a patch overlay. Which Kustomize concept does it illustrate according to the playbook?
- ABase and overlayCorrect answer
- BHelm chart templating
- CCRD installation
- DImperative kubectl
Why this is the answer
The resources reference a common base, and patchesStrategicMerge applies environment-specific changes. This is the Kustomize base-and-overlay model.
- Question 27Single Choice
In GitOps, what is the ultimate source of truth when a conflict occurs between Git and cluster state?
- AGit repositoryCorrect answer
- BCluster state
- CLocal developer machine
- DContainer registry
Why this is the answer
Git, not the cluster, is the source of truth in GitOps. Controllers reconcile the cluster toward the state stored in Git.
- Question 28Multiple Select
Which statements about Flux in GitOps are correct according to the Linux Foundation material? Select all that apply.
- AIt is a collection of specialized controllersCorrect answer
- BIt is responsible for building container images
- CIt synchronizes cluster state from GitCorrect answer
- DIt is installed as a single binary
Why this is the answer
Flux is not a single binary or image builder; it is a set of controllers that watch Git and reconcile the cluster.
Related Practices
7 questions in this domain
- Question 29Single Choice
What template engine does Helm use to inject dynamic values into YAML manifests?
- AGo-templateCorrect answer
- BJinja2
- CMustache
- DHandlebars
Why this is the answer
Helm uses Go-template to inject dynamic values into YAML manifests. Jinja2, Mustache, and Handlebars are not the template engines used by Helm.
- Question 30Multiple Select
Which statements about Kustomize overlays are correct? (Select all that apply)
- AOverlays customize a common base for specific environments without modifying the original source.Correct answer
- BOverlays rely on strategic merge patches or JSON patches to alter resources.Correct answer
- COverlays require changing the original base files to apply environment-specific values.
- DOverlays include built-in if/else conditional logic like Helm templates.
Why this is the answer
Kustomize uses a base and overlay model. Overlays apply strategic merge patches or JSON patches to customize resources without modifying the original base, and Kustomize does not include conditional logic.
- Question 31Interactive
In the code block, what is the purpose of the values shown in a Helm chart?
- AThey supply default values that populate placeholders in Go templates.Correct answer
- BThey are directly applied as Kubernetes manifest objects.
- CThey configure the GitOps controller's sync interval.
- DThey define Kustomize strategic merge patches for the cluster.
Why this is the answer
The code block is a Helm values file. The keys provide values that are injected into Go-template placeholders during chart rendering.
- Question 32Single Choice
Which usage of Helm does the Certified GitOps Associate (CGOA) focus on?
- ADeclarative usage within GitOpsCorrect answer
- BImperative usage through the Helm CLI
- CStandalone manual package installation
- DAs an image builder for CI pipelines
Why this is the answer
The CGOA focuses on Helm's declarative usage within GitOps; the GitOps controller performs install or upgrade operations, not imperative CLI usage.
- Question 33Multiple Select
Which statements correctly distinguish Helm's value injection from Kustomize's patching approach? (Select all that apply)
- AHelm uses predefined values to populate placeholders in templates.Correct answer
- BKustomize modifies existing YAML structures by adding, removing, or changing fields through overlays.Correct answer
- CHelm applies JSON patches directly to raw manifest files.
- DKustomize supports the same conditional logic as Helm Go-templates.
Why this is the answer
Helm injects predefined values into placeholders, while Kustomize patches YAML structures through overlays. Kustomize does not have Helm's conditional logic.
- Question 34Interactive
What is the purpose of the merge patch setting in the code block?
- AIt specifies a strategic merge patch that customizes the base resources.Correct answer
- BIt defines a Helm template value used by the base chart.
- CIt sets the GitOps controller's automatic sync policy.
- DIt injects a new container image into all manifests.
Why this is the answer
The patch configuration in the code block modifies base resources in Kustomize overlays. It does not define Helm values, controller sync policies, or image builds.
- Question 35Single Choice
Which statement correctly describes Helm in a GitOps workflow?
- AHelm is a package manager, and the GitOps controller makes its usage declarative.Correct answer
- BHelm is itself a GitOps controller that deploys directly from Git.
- CHelm replaces the need for a GitOps controller in all cases.
- DHelm is a CI tool responsible for building and pushing images.
Why this is the answer
Helm is a package manager; the GitOps controller makes Helm usage declarative. Helm is not a GitOps controller or a CI tool.
Tooling
6 questions in this domain
- Question 36Single Choice
Which template engine does Helm use to inject dynamic values into YAML manifests?
- AGo-templateCorrect answer
- BJinja2
- CHandlebars
- DMustache
Why this is the answer
Helm uses a Go-template engine to render values into YAML manifests. The Go-template syntax is a core part of how Helm injects configuration into charts.
- Question 37Multiple Select
Which statements accurately describe Kustomize overlays in a GitOps workflow?
- AOverlays patch the base without modifying itCorrect answer
- BHas Helm-style if/else and loop support
- CBase defines a common resource setCorrect answer
- DUses Helm charts as a prerequisite
Why this is the answer
Kustomize overlays modify a base through strategic merge or JSON patches without changing the base. Kustomize does not support Helm-style conditional logic or loops.
- Question 38Interactive
Study the kustomization.yaml file in the code block. In a GitOps base and overlay workflow, what does this file define?
- ADefines an overlay using a patchCorrect answer
- BIs a Helm values file
- CDeletes the base resources
- DApplies changes manually
Why this is the answer
This file is a Kustomize overlay configuration. It references the base and applies a strategic merge patch. GitOps controllers apply such overlays declaratively.
- Question 39Single Choice
In a GitOps workflow, what is the GitOps controller's role when working with Helm?
- ARuns Helm commands imperatively
- BApplies Git-declared Helm releasesCorrect answer
- CCompiles charts into images
- DStores charts in registries
Why this is the answer
The GitOps controller acts as the engine that installs or upgrades Helm releases based on state declared in Git. This is declarative Helm, not manual CLI execution.
- Question 40Multiple Select
Which of the following are recognized traps or misconceptions about Helm and Kustomize in GitOps?
- AUsing Helm for trivial environment differencesCorrect answer
- BConfusing Helm with a GitOps toolCorrect answer
- CThinking Kustomize supports complex logicCorrect answer
- DTreating Git as desired state source
Why this is the answer
Common traps include over-templating with Helm, confusing Helm with a GitOps tool, and assuming Kustomize supports full conditional logic. Git as source of truth is a best practice.
- Question 41Interactive
Examine the Helm template snippet in the code block. If values.yaml contains replicaCount: 3, what will be rendered in the final manifest?
- Areplicas: 3Correct answer
- Breplicas: replicaCount
- Creplicas: {{ .Values.replicaCount }}
- Dreplicas: 0
Why this is the answer
Helm's Go-template engine substitutes .Values.replicaCount with the value from values.yaml. Since replicaCount is 3, the rendered manifest contains replicas: 3.
Frequently asked questions
Everything about the Certified GitOps Associate (CGOA) question bank and how to use it.