Certified GitOps Associate (CGOA)

Question bank

The Linux Foundation logo

Certified GitOps Associate (CGOA)

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.