CGOA Practice Questions
Twenty-five single-best-answer questions, built the way the real CGOA builds them: one stem, four options, exactly one option that answers this stem better than the other three. They are split across all five domains from the CGOA blueprint in rough proportion to their weight — seven on Principles, five each on Terminology and Patterns, four each on Related Practices and Tooling — so a strong or weak score in one section tells you something real about where your marks would actually land. This page is untimed and open-book on purpose: work through it slowly, read every explanation even for questions you got right, and only once these twenty-five stop surprising you should you move on to the two full, weighted, timed papers — Mock Exam · Set 1 and Mock Exam · Set 2.
Picture a quiz card with four doors instead of a blank line. One door is right. The other three were built on purpose to feel almost right — one says something true, just not about the question you were asked; one uses a big bossy word like "always," which real systems almost never obey; one is a fact from the room next door, dressed up to look like it belongs in this one. Reading these questions is a skill on top of knowing the material. This page hands you both at once: real CGOA-shaped questions, and a full explanation of every door — not just which one was right, but why each wrong one was built the way it was.
How this bank is built
☺ Like you're 10: The biggest pile of questions covers the biggest part of the real test. Study in that order and you're spending your time where the marks actually are.
The CGOA curriculum weights its five domains 30 / 20 / 20 / 16 / 14, and this bank mirrors that shape rather than splitting twenty-five questions evenly into five piles of five. Principles gets the largest single share; Related Practices and Tooling — the two domains people most often skip because they don't sound like "real GitOps" — still get a full four questions each, because together they're 30% of the real paper.
| Domain | Blueprint weight | Questions here | Numbers |
|---|---|---|---|
| 🤖 GitOps Principles | 30% | 7 | Q1–Q7 |
| 🐿️ GitOps Terminology | 20% | 5 | Q8–Q12 |
| 🐙 GitOps Patterns | 20% | 5 | Q13–Q17 |
| 🐢 Related Practices | 16% | 4 | Q18–Q21 |
| 🦫 Tooling | 14% | 4 | Q22–Q25 |
| Total | 25 | Q1–Q25 | |
Every question below asks for the single best answer, not the only true sentence in the list. On several of these, two options are individually defensible — that's deliberate. Read the exact question being asked before you look at the options, form your own answer, then compare it to what's on offer. If your answer isn't there, you've likely misread the question rather than found a flaw in it.
GitOps Principles — 7 questions
☺ Like you're 10: Four rules, but the test cares about the edges — the workflow that follows three rules perfectly and quietly breaks the fourth.
Thirty percent of the real exam is these four rules — Declarative, Versioned and Immutable, Pulled Automatically, Continuously Reconciled — worked against the reference in the CGOA blueprint. Score each scenario against all four before you pick an answer; the trap is almost always a workflow that satisfies two or three convincingly and fails one quietly.
Q1. Which of the following most precisely defines the Declarative principle?
- A. A description of the desired end state of a system, independent of the sequence of steps used to reach it.
- B. An ordered script of commands that, when run in sequence, produces the correct result.
- C. Configuration that is written once and is never touched or updated again.
- D. Any file written in YAML, regardless of what it describes.
Show answer & explanation
Answer: A. Declarative is about what, not how — the state is described, not the path to it. B is the reversed definition: an ordered script is precisely the imperative approach the principle rules out, even if it produces a correct result. C confuses declarative with immutable — those are two different principles, and neither requires "never touched again"; a desired state changes constantly, it's the history that must stay intact. D is a fabricated criterion — the format (YAML) has nothing to do with whether the content is declarative; an imperative shell script wrapped in YAML is still imperative.
Q2. A team's infrastructure changes are stored as Terraform HCL and .tfvars files in Git, reviewed by pull request. A Jenkins job, running on a fixed 15-minute schedule regardless of whether Git has changed, checks out the repository and runs terraform apply using a service credential stored in Jenkins. Which principle does this setup most clearly fail?
- A. Declarative — Terraform HCL describes steps, not end state.
- B. Versioned and Immutable — Jenkins overwrites the Git history on every run.
- C. Pulled Automatically — an external system (Jenkins) applies changes from outside using its own stored credential, rather than an agent inside the system autonomously pulling and applying its own desired state.
- D. Continuously Reconciled — a fixed 15-minute schedule is not frequent enough to count as continuous.
Show answer & explanation
Answer: C. HCL is genuinely declarative (kills A), and nothing in the stem says Git history is being rewritten (kills B — this is a true-but-unstated distractor). D is the tempting one: the schedule is frequent and automatic, so it's easy to assume "continuously reconciled" is satisfied — and on the reconciliation cadence alone, it actually is, since it re-applies regardless of drift. What actually breaks is who initiates the change: Jenkins is an external actor holding a credential and pushing changes in, which is not the same as an agent living inside the trust boundary autonomously pulling its own desired state. The scheduling frequency is a red herring — the failure is architectural, not temporal.
Q3. A platform stores its entire desired-state configuration as a single object named desired-state-latest.json in an object storage bucket. Every change overwrites that object in place; the bucket retains no prior versions. Which principle does this fail, and why?
- A. Declarative — JSON cannot express desired end state.
- B. Versioned and Immutable — there is no retained history to audit, diff, or revert to; each write destroys the one before it.
- C. Pulled Automatically — object storage cannot be polled by an agent.
- D. Continuously Reconciled — the object could still be watched on an interval.
Show answer & explanation
Answer: B. A is false on its face — JSON is just as capable of describing end state as YAML or HCL; the format was never the issue. C is also false — object storage is polled by GitOps agents all the time (it's explicitly one of the "state store alternatives" the curriculum names). D is true but off-target — a watchable object doesn't fix the fact that there's nothing to roll back to. The actual defect is that overwriting in place with zero retained history is the textbook failure of Versioned and Immutable, independent of what technology is holding the object.
Q4. A checkout service's manifests live in Git; an in-cluster reconciler applies them with selfHeal disabled and syncs only on a manual click in the reconciler's UI. Which principle does this most directly fail?
- A. Declarative — manual syncing implies imperative operation.
- B. Versioned and Immutable — a manual click cannot be versioned.
- C. Pulled Automatically — the agent is technically pulling from Git, but only because a human triggered it; nothing is happening autonomously.
- D. Continuously Reconciled — because
selfHealis off, drift between syncs is never corrected, and a human clicking "sync" is not an autonomous, ongoing process.
Show answer & explanation
Answer: D. This one rewards reading closely: C is genuinely plausible, since "pulled automatically" is literally about pulling rather than pushing, and the mechanism here is a pull. But the stem's specific symptom — drift going uncorrected because selfHeal is off and nothing runs except on a human click — is precisely what Continuously Reconciled requires and this setup lacks: an ongoing, unattended loop. Ask the repair test: if you fixed only C (made the agent poll automatically on an interval, but kept selfHeal off and left manual approval required for actually applying), would drift still go uncorrected between approvals? Yes. Fix D instead (turn selfHeal on, let it run unattended) and the drift problem disappears immediately. That's the tell that D, not C, is the better answer here.
"Q4 is the one that got me on my first attempt at this bank. I picked C because 'pull, not push' is the sentence I'd memorized, and the scenario has an agent pulling. It took writing out all four principles next to the scenario, one at a time, to notice that the actual complaint in the stem — drift surviving because nobody's watching between clicks — isn't a pull-vs-push problem at all. Now I don't trust my first instinct on these until I've scored the scenario against all four principles on paper, every time, even the ones that feel obvious."
Q5. In an Argo CD Application's syncPolicy, which single sync option most directly operationalizes the Continuously Reconciled principle?
- A.
prune: true— removes live resources whose manifests were deleted from Git. - B.
selfHeal: true— reverts any change made directly against the live resource back to what Git specifies, on an ongoing basis. - C.
retry.limit— controls how many times a failed sync attempt is retried. - D.
revisionHistoryLimit— controls how many prior revisions are retained for rollback.
Show answer & explanation
Answer: B. prune (A) supports the Declarative/completeness story but is about deletions, not ongoing drift correction. retry.limit (C) governs sync failures, not the reconciliation loop itself. revisionHistoryLimit (D) is a Versioned-and-Immutable/rollback concern, not reconciliation. selfHeal is the option that makes the loop actually continuous — it's what turns "reconciles when told to" into "reconciles constantly, without being told."
Q6. Which statement, if true of a system, would mean it fails Pulled Automatically even though it fully satisfies the other three principles?
- A. A person must click a "Sync" button in a UI every time they want the live system to move toward the desired state in Git.
- B. The reconciling agent polls the state store every 3 minutes instead of every 30 seconds.
- C. The state store retains an unlimited, uncapped commit history.
- D. A bad change is rolled back by reverting the offending commit rather than editing the live system directly.
Show answer & explanation
Answer: A. B is a distractor built on a common misconception: the principle says nothing about how frequently an agent polls — a 3-minute interval is still automatic pulling, just slower. C describes something true and desirable but answers a different principle (Versioned and Immutable) entirely. D describes correct rollback behavior and doesn't touch this principle at all. A is the only option where a human, not an agent, is the one initiating the change — which is exactly what "pulled automatically" rules out, regardless of how fast or slow the polling interval is when it does run automatically.
Q7. Which of the following is NOT required by the Continuously Reconciled principle?
- A. That the agent periodically or continuously compares live state against desired state.
- B. That drift is corrected without a human having to re-trigger the process each time.
- C. That reconciliation happen with zero latency, instantaneously, on every single change to the live system.
- D. That the loop keeps running indefinitely, rather than stopping after a single successful pass.
Show answer & explanation
Answer: C. Mark each option true or false rather than trying to hold the negative in your head. A, B and D are all genuinely part of what "continuously reconciled" means — an ongoing, unattended, indefinite loop. C is the false one, and it's an absolute-language trap: "continuous" describes an ongoing process, not a zero-latency guarantee. A reconciler polling every 30 seconds is still continuously reconciling even though a change can sit uncorrected for up to 30 seconds — the principle is about the loop never stopping, not about instantaneous convergence.
GitOps Terminology — 5 questions
☺ Like you're 10: Nine words, worth a fifth of the whole test — and the exam checks whether you know exactly what each one means, not just whether you've heard it before.
Twenty percent of the paper is nine terms: continuous, declarative description, desired state, state drift, state reconciliation, GitOps managed software system, state store, feedback loop, rollback. These questions test the precise boundary of each — the place where an everyday habit ("I fixed it by editing the live thing") turns out not to match the term you'd reach for first.
Q8. A team keeps its Kubernetes manifests as signed OCI artifacts in a container registry rather than in a Git repository. Every push creates a new immutable tag, and full pull history is retained. Does this qualify as a valid state store under the CGOA curriculum?
- A. No — only Git repositories can be GitOps state stores.
- B. Yes — the definition requires only that desired state be stored with versioning and immutability; Git is the common implementation, not the requirement.
- C. No — OCI registries can only store container images, never configuration.
- D. Yes, but only if the reconciler in use is specifically Argo CD.
Show answer & explanation
Answer: B. A and C are both fabrications about a real, named technology — OCI registries are explicitly called out in the curriculum's Tooling domain as a valid alternative state store, and OCI artifacts can hold arbitrary content, including plain manifests, Helm charts and Kustomize bundles. D invents a rule tying store validity to a specific product, which contradicts the curriculum's own "and alternatives" phrasing for reconciliation engines. A state store is defined by its properties — versioned, immutable, holding a declarative description of desired state — not by its brand.
Q9. A Deployment's live replica count reads 6. The manifest for that Deployment, committed in Git, specifies replicas: 3. What term precisely names this condition, independent of how it was caused?
- A. Rollback
- B. State drift
- C. Feedback loop
- D. State reconciliation
Show answer & explanation
Answer: B. Rollback (A) is an action taken in response to a bad change, not a description of a mismatch. A feedback loop (C) is the mechanism that reports a mismatch, not the mismatch itself. State reconciliation (D) is the process of closing the gap — it's the fix, not the symptom. The gap itself, actual state diverging from desired state, is state drift, and the definition holds regardless of whether a human scaled it by hand or a bug in another controller did.
Q10. A bad image tag reaches production. The on-call engineer runs kubectl set image deployment/checkout checkout=app:v41 directly against the live cluster, restoring the previous good tag by hand. In strict GitOps terms, was this a rollback?
- A. Yes — the running system now matches the previous good state.
- B. No — a rollback is an operation performed on the state store, typically by reverting the offending commit; this was a manual, out-of-band change to the live system, and it will itself register as state drift the moment the reconciler next compares live state to the still-broken desired state in Git.
- C. Yes, because
kubectlis the standard tool for performing GitOps rollbacks. - D. No, because rollbacks can only be performed with
helm rollback.
Show answer & explanation
Answer: B. A is the "true but not asked" trap — the live system does temporarily match the good state, but the question is specifically about whether this act qualifies as a rollback in GitOps terms, not whether the outcome was correct. C fabricates a rule that doesn't exist — kubectl is not a GitOps rollback mechanism, it's exactly the kind of manual write the model is built to correct away. D is an absolute-language fabrication naming one specific CLI as the only valid tool, which the curriculum never claims. The precise answer matters here because of what happens next: since the desired state in Git was never touched, a self-healing reconciler will silently revert the engineer's fix back to the broken tag.
Q11. In OpenGitOps terminology, what is the primary purpose of a feedback loop?
- A. To let a human review a pull request before it merges.
- B. To automatically squash and compress historical commits in the state store.
- C. To report the outcome of reconciliation — success, failure, or drift detected — back to an operator or another system, so that action can be taken.
- D. To rate-limit how frequently a reconciler is permitted to pull from the state store.
Show answer & explanation
Answer: C. A describes code review, a real and valuable practice, but not what "feedback loop" names in this curriculum. B and D are both fabrications — nothing in GitOps automatically compresses history (that would violate Versioned and Immutable), and nothing named "feedback loop" throttles pull frequency. The feedback loop is specifically the reporting mechanism: sync status, drift alerts, failure notifications — the system telling someone or something what just happened.
Q12. A reconciler is configured to run terraform plan && terraform apply once every 24 hours via a cron job, regardless of whether the state store changed. Compared to a reconciler that polls the state store every 3 minutes and applies only when a difference is detected, which statement best captures the terminology distinction the CGOA curriculum draws around the word continuous?
- A. Both are equally "continuous" — the word simply means "automatic," and both run without a human triggering them.
- B. "Continuous" describes an ongoing, unattended process that keeps operating rather than one that runs once and stops; a once-daily batch job sits much closer to periodic batch reconciliation than to the tight, always-operating loop the term is meant to describe, even though both jobs are automatic in the sense that nobody clicks a button.
- C. "Continuous" specifically means a polling interval of three minutes or faster; anything slower does not count.
- D. "Continuous" only applies to observability pipelines, not to reconciliation engines.
Show answer & explanation
Answer: B. A collapses a real distinction the exam tests directly — "automatic" and "continuous" are not synonyms; a once-a-day cron job is automatic but only loosely continuous. C invents a hard numeric threshold nowhere in the curriculum — there's no published cutoff interval that defines "continuous." D is simply false; continuous is core reconciliation vocabulary, unrelated to observability specifically. B is the only option that captures the real nuance without inventing a rule: continuous is about an ongoing, unattended loop, and a 24-hour cadence — automatic though it is — reads much closer to scheduled batch reconciliation than to the tight loop the principle describes.
GitOps Patterns — 5 questions
☺ Like you're 10: A checking-robot can wait for a phone call or just keep glancing on its own, and the robot itself can live inside the room it watches, or sit outside watching several rooms at once.
The 20% Patterns domain is the most architectural section of the exam — pull versus event-driven triggers, where the reconciler lives, how the state store is scoped, and how progressive delivery hands off from the reconciler to a rollout controller. See the CGOA blueprint for the full three-axis table these questions are drawn from.
Q13. A reconciler polls its Git source every 3 minutes and is configured to receive a webhook from the Git host that triggers an immediate sync on push. The firewall rule permitting that webhook is accidentally removed, and delivery starts failing silently. What happens to the correctness of the system?
- A. The system is no longer GitOps-compliant, because event-driven triggering is one of the four required principles.
- B. The system still converges — worst case within the next poll interval — because the webhook is a latency optimization layered on top of the underlying pull loop, not a replacement for it.
- C. The system stops reconciling entirely until the webhook is restored.
- D. The system automatically rolls back to the last state that was successfully applied via webhook.
Show answer & explanation
Answer: B. A misidentifies event-driven triggering as one of the four OpenGitOps principles — it isn't; it's a pattern named separately, in the Patterns domain, not the Principles domain. C and D both invent failure behavior with no basis: nothing about a broken webhook stops the underlying poll loop, and nothing "rolls back" just because a faster trigger path went quiet. The whole point of the pull-vs-event-driven axis is that event-driven is strictly an optimization for latency; a correctly built system keeps converging on the poll interval alone, silently and without drama, exactly as this one does.
Q14. A platform team runs one central Argo CD instance outside all managed clusters, holding a service-account credential for each of forty spoke clusters it manages from that single point. Which trade-off does this architecture most directly accept?
- A. Higher per-sync latency, because external reconcilers are structurally unable to use webhooks.
- B. A larger blast radius if the central instance's credentials are ever compromised, in exchange for one consistent control point and fleet-wide visibility across all forty clusters.
- C. Loss of the Pulled Automatically principle, because a central reconciler always pushes into its targets.
- D. Inability to use
selfHealorprunesync options on any managed cluster.
Show answer & explanation
Answer: B. A is a fabrication — nothing about reconciler placement prevents webhook use. C misapplies the pull/push distinction: the reconciler is still the one initiating contact with each target using credentials it holds, which is architecturally still "pulling," just from outside rather than from within each cluster. D invents a restriction with no basis — sync options are per-Application configuration, unrelated to where the reconciler process itself runs. The real, named trade-off in the curriculum is exactly B: external placement centralizes control and visibility at the cost of concentrating credentials for many targets in one place.
Q15. A platform splits environment promotion across three separate repositories — platform-config-dev, platform-config-staging, platform-config-prod — instead of using one repository with per-environment overlays. What does this design most directly buy the team?
- A. It removes the need for a reconciler entirely, since each repository is its own environment.
- B. Tighter, independently scoped review and RBAC boundaries per environment, at the cost of an explicit promotion step — a PR, a copy, a merge — to move a change from one repository to the next.
- C. Automatic, simultaneous rollback across all three environments whenever one of them fails.
- D. Exemption from the Versioned and Immutable principle for the dev repository specifically, since it changes most often.
Show answer & explanation
Answer: B. A is false — every repository still needs something reconciling it; splitting repos changes scope, not whether a reconciler is required. C invents a capability that doesn't follow from repo structure at all — nothing about having three repos makes a prod failure roll back staging or dev. D is an absolute-sounding fabrication; no CGOA principle carries a "changes often" exemption. The state-store-scope axis is explicitly named as a competency precisely because this trade-off — tighter per-environment boundaries versus an explicit, visible promotion step — is real and worth knowing cold.
Q16. In the Rollout manifest below, which single step is the concrete implementation of the feedback loop terminology competency?
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: checkout-svc
spec:
replicas: 8
strategy:
canary:
steps:
- setWeight: 20
- pause: { duration: 3m }
- analysis:
templates:
- templateName: error-rate-under-threshold
- setWeight: 60
- pause: { duration: 5m }
selector:
matchLabels: { app: checkout-svc }- A.
setWeight: 20 - B.
pause: { duration: 3m } - C.
analysis— it observes a real, live outcome (the measured error rate) and reports that outcome back into whether the rollout proceeds, holds, or aborts, which is exactly what a feedback loop does. - D.
replicas: 8
Show answer & explanation
Answer: C. setWeight (A) and replicas (D) are both plain declarative configuration — desired state, not observation. pause (B) is close: it does introduce a delay that gives time for something to be observed, but the pause step itself observes nothing and reports nothing — it's just a timer. The analysis step is the one that actually measures a real signal and feeds that measurement back into the rollout's next decision, which is the feedback-loop competency made concrete rather than abstract.
Q17. A new service version is fully running in the cluster — every Pod is Ready — but sits behind a feature flag configured to route 0% of production traffic to it. Using the deploy/release distinction the CGOA curriculum draws from progressive delivery, has this version been released?
- A. Yes — if the Pods are Running and Ready, the version has been released.
- B. No — the code is present and has been deployed, but release is specifically about traffic reaching users, and at 0% traffic it has not yet been released.
- C. Yes, because feature flags fall outside the scope of GitOps and therefore don't affect release status.
- D. It's impossible to deploy a version in Kubernetes without simultaneously releasing it.
Show answer & explanation
Answer: B. A conflates two terms the exam deliberately separates: deploy means the code is present and running; release means it's actually serving production traffic. C is an unsupported claim — feature flags are a real and common progressive-delivery mechanism, not something GitOps ignores. D asserts the opposite of the very distinction being tested; the whole reason "deploy" and "release" are separate terms is that Kubernetes routinely lets you do one without the other, which is precisely what canaries, blue/green, and flag-gated rollouts exploit.
Related Practices — 4 questions
☺ Like you're 10: Sixteen percent of the test isn't GitOps at all — it's the neighboring habits GitOps borrows from and depends on, like where secrets live and which half of the pipeline is allowed to touch production.
This domain covers Configuration as Code, Infrastructure as Code, DevOps/DevSecOps and CI/CD — not as GitOps mechanics, but as the practices GitOps sits alongside and relies on. Candidates who study only the four principles leave this sixth of the paper to luck.
Q18. A team keeps a ConfigMap describing feature-flag values in Git, and separately keeps a Terraform module describing a managed Postgres instance in Git. Which of the two is Configuration as Code rather than Infrastructure as Code, and why does the distinction matter for GitOps?
- A. The ConfigMap is CaC — application-level runtime configuration — and the Terraform module is IaC — the infrastructure the application runs on. GitOps can reconcile both, but they typically live in different repositories with different reviewers and different blast radii if something goes wrong.
- B. Both are IaC, since every Kubernetes object is technically infrastructure.
- C. Both are CaC, since both are declarative files stored as text.
- D. Neither qualifies as "as code" practice, since only imperative shell scripts count.
Show answer & explanation
Answer: A. B and C both erase a distinction the curriculum names explicitly by lumping everything into one category. D inverts the whole premise of the domain — "as code" specifically means declarative, versioned files, the opposite of imperative scripts. The reason this distinction earns its own line in the blueprint isn't academic: a CaC change (a feature-flag value) and an IaC change (provisioning a database) carry very different risk profiles and usually warrant different review rigor, even when both flow through the same reconciler.
Q19. A Kubernetes Secret manifest, committed to the state-store repository, contains a database password in plaintext:
apiVersion: v1 kind: Secret metadata: name: checkout-db type: Opaque stringData: password: hunter2 # plaintext, committed, and in the full commit history forever
What practice does this violate, and what is the GitOps-correct fix?
- A. Nothing is violated — the repository is private, so plaintext secrets are acceptable inside a private GitOps state store.
- B. It violates DevSecOps practice: anyone with read access to the repository — and its full commit history, since Git never truly deletes a committed value — can retrieve the live credential. The fix is to commit only a reference or an encrypted value, using a tool such as External Secrets, Sealed Secrets, or SOPS, and never the plaintext.
- C. It violates the Declarative principle, because secrets cannot be expressed declaratively.
- D. It violates Versioned and Immutable, because secrets must specifically never be versioned.
Show answer & explanation
Answer: B. A is a common but dangerous misconception — "private" doesn't mean "safe," especially once you count everyone who will ever get repo access, plus the fact that a later commit removing the secret doesn't erase it from history. C and D both misattribute the failure to a GitOps principle when this is actually a Related Practices / DevSecOps concern — secrets absolutely can be declarative and versioned, the problem is that the plaintext value itself should never be the thing committed. The fix pattern — commit a reference, sync the real value in from an external system — is the concrete, testable form of "DevSecOps" this domain is checking for.
Q20. Which statement correctly places the boundary between CI and CD in a GitOps pipeline?
- A. CI and CD are the same process, and the two terms are interchangeable in a GitOps context.
- B. CI builds, tests, and publishes an artifact, then updates the desired state in the store to reference it. CD is the reconciler pulling that updated desired state into the running system — meaning the CI system never needs a standing credential to the production target.
- C. CD always runs before CI, since a cluster must already exist before any image can be built.
- D. CI becomes optional in a mature GitOps pipeline, since the reconciler is capable of building its own images.
Show answer & explanation
Answer: B. A collapses a distinction the curriculum draws precisely because it matters for credential scope, which is the whole point of the question. C reverses a causal order that isn't reversible — you can't reconcile an artifact reference that CI hasn't published yet. D fabricates a capability no mainstream reconciler has; Argo CD and Flux converge state, they don't compile source. "CI pushes, CD pulls" is the memorable one-line version of B, and it's the single sentence that answers questions across Principles, Patterns and Related Practices at once.
Q21. A Kubernetes Claim custom resource requests a managed cloud database. A controller watches that Claim and provisions the real cloud infrastructure to match it, continuously correcting drift if someone changes the database configuration out-of-band through the cloud console. What does this pattern demonstrate about the reach of GitOps?
- A. GitOps principles apply only to application workloads running inside a cluster — infrastructure provisioning is an unrelated practice.
- B. The same declarative-pull-reconcile loop extends to infrastructure provisioning once the infrastructure is represented as a Kubernetes API object — a CRD-and-controller pattern — which is exactly why Infrastructure as Code appears as a Related Practice rather than as a separate certification.
- C. This pattern only functions if the cloud provider itself runs Argo CD internally.
- D. Continuous reconciliation is architecturally impossible for anything located outside a single cluster's own workloads.
Show answer & explanation
Answer: B. A directly contradicts the scenario in the stem, which describes exactly this happening. C fabricates a requirement about the cloud provider's own internal tooling that has no bearing on how the controller-and-CRD pattern works. D is disproven by the scenario itself: the controller is reconciling infrastructure that lives entirely outside the cluster's own workloads. B correctly names what's actually going on — a Kubernetes-API-shaped extension point (CRD plus controller/operator) lets the identical loop reach infrastructure, which is precisely why IaC sits in Related Practices rather than needing its own principles.
Tooling — 4 questions
☺ Like you're 10: The smallest slice of the test, and on purpose — it's about the boxes tools fit into, not about memorizing every flag a command takes.
Fourteen percent, and deliberately shallow: manifest format and packaging, state store systems, reconciliation engines, and interoperability with the rest of the platform. The curriculum names Argo CD and Flux specifically but always with "and alternatives" attached — these questions test the underlying category, not brand trivia.
Q22. A team distributes an application as a Helm chart pushed to an OCI-compliant registry, then references that chart by digest — not by a mutable tag like latest — from an Argo CD Application. Which guarantee does referencing by digest specifically protect?
- A. It has no practical effect — Argo CD treats tag references and digest references identically.
- B. It ensures the exact chart content actually deployed cannot silently change underneath the recorded reference — the same immutability guarantee a Git commit SHA provides, applied here to an OCI-based state store.
- C. It automatically converts the Helm chart into an equivalent Kustomize overlay.
- D. It disables the
prunesync option for that specific Application.
Show answer & explanation
Answer: B. A is false — this is precisely the distinction that matters, and the digest-vs-tag difference is a big part of why it matters. C and D are both fabrications with no relationship to what a content digest does. A mutable tag like latest can be repointed to different content without anyone editing the Application manifest — a genuine, if quiet, way to violate immutability. A digest is a hash of the actual content, so it cannot be repointed; referencing by digest gives an OCI-based state store the same tamper-evident guarantee Git's commit SHAs give a Git-based one.
Q23. A team wants their desired state expressed as small, independently composable controllers — one watching Git sources, one performing Kustomize builds, one handling Helm releases, one sending notifications — rather than as a single application-centric object with a built-in web UI as the primary interface. Whose design philosophy does this describe?
- A. Argo CD — object-centric, and ships an opinionated UI as its primary interface.
- B. Flux — a set of composable, single-purpose controllers (source, kustomize, helm, notification, and more) that are combined rather than presented as one monolithic tool.
- C. Neither — this describes Tekton, a CI pipeline tool, not a GitOps reconciler.
- D. Neither — this describes Backstage, a developer portal, not a reconciler.
Show answer & explanation
Answer: B. A describes the real, opposite design philosophy — Argo CD genuinely is more application-centric and ships a first-class UI, which is exactly why it's the wrong answer to a stem describing composable, UI-optional controllers. C and D each name a real, correctly categorized tool from an entirely different box — Tekton is CI/pipelines, Backstage is a developer portal — neither is a reconciliation engine at all, which is what the stem is asking about. Flux's controller-per-concern architecture is the textbook match for the description given.
Q24. The CGOA curriculum's Tooling domain names "Git and alternatives" for state store systems, rather than naming Git alone. Which is the correct reading of that phrasing?
- A. Git is deprecated within the CGOA curriculum, and alternatives are now the preferred choice.
- B. Any storage system whatsoever qualifies as a valid state store, regardless of whether it retains version history.
- C. The specification is written against the abstraction — versioned, immutable storage of desired state — rather than against one specific product; OCI registries or object storage with versioning enabled can also qualify.
- D. "Alternatives" refers only to different Git hosting providers, such as GitHub versus GitLab versus Bitbucket — not to non-Git storage systems at all.
Show answer & explanation
Answer: C. A fabricates a deprecation that isn't stated anywhere — Git remains the dominant, default choice, just not the only valid one. B drops the actual requirement (versioned and immutable) that makes something a valid state store in the first place — "any storage system" is far too broad and directly contradicts Versioned and Immutable. D narrows "alternatives" to something the curriculum never restricts it to; OCI registries and object storage are explicitly non-Git alternatives named in the tooling material. C is the reading that matches how this whole exam is built: definitions tied to properties, not to brand names.
Q25. A reconciler is configured to post a message to a chat channel every time a sync fails, and to export sync-duration and drift-detection metrics to a metrics backend for dashboarding. Which named tooling competency does this configuration exercise?
- A. Manifest format and packaging.
- B. State store systems.
- C. Interoperability with notification, observability, and CI tooling — the reconciler's job doesn't end at applying a change, it also has to tell the rest of the platform what just happened.
- D. Reconciliation engine selection.
Show answer & explanation
Answer: C. A and B both name real Tooling sub-competencies, but neither concerns notifications or metrics — they're about how manifests are packaged and where desired state is stored, respectively. D is about choosing between reconcilers (Argo CD vs. Flux vs. others), not about what either one exports once chosen. The scenario is squarely about the reconciler talking outward to chat and observability systems, which is the Interoperability line item named explicitly in the curriculum's Tooling domain — and it's the concrete, tooling-level form of the Feedback Loop terminology competency from earlier in this bank.
Take the Flux pair from the CGOA blueprint — a GitRepository plus a Kustomization — and, without looking anything up, write the equivalent Argo CD Application from memory: same repo URL, same branch, same path, selfHeal: true standing in for Flux's reconcile interval, prune: true standing in for Flux's own prune. Then do it the other direction: take an Argo CD Application and write its Flux equivalent. You'll get stuck on exactly one thing — Argo CD's single object bundles source-and-target together, while Flux always splits them into two — and that single friction point is most of what Q23 is testing.
Scoring yourself, and what to do with a miss
☺ Like you're 10: Getting it wrong isn't the problem — not knowing why you got it wrong is. Every miss fits into one of four boxes, and each box has its own fix.
Count your correct answers and divide by 25 to get a rough percentage — this bank is too small to be a statistically precise rehearsal of the real paper, but it's plenty large enough to tell you whether a domain needs more reading before you attempt Mock Exam · Set 1.
The Linux Foundation's Multiple Choice Exam FAQ states that a score of 75% or higher is required to pass any Linux Foundation multiple-choice exam, CGOA included, even though that figure isn't restated on the CGOA product page itself — see the CGOA blueprint for the full logistics table. This site is an independent, unofficial study resource, not affiliated with the CNCF or The Linux Foundation. Treat 75% here as a useful training target, but confirm the current pass mark, question count, and every other exam-day detail on the official Linux Foundation CGOA page before you register or pay for anything.
When you miss one, resist the urge to just note the correct letter and move on — that teaches you almost nothing. File it instead:
| Bucket | Signature | The fix |
|---|---|---|
| Didn't know it | The explanation names a term or fact that's genuinely new to you | Content gap — reread the matching section of the blueprint, then add it to flashcards |
| Knew it, misread it | You wince reading the explanation because you actually knew this | Process gap — note which word you skipped (a negative, a qualifier), and underline lead-ins from now on |
| Confused two neighbors | You picked the concept next door — Pulled Automatically for Continuously Reconciled, CaC for IaC | Write a one-line discriminator for the pair and keep it somewhere you'll see it again |
| Guessed and got lucky, or unlucky | You can't explain why the other three options are wrong even though you picked (or didn't pick) correctly | Treat it exactly like a miss — a right answer you can't defend is a gap wearing a disguise |
Whichever domain produced the most misses, weigh that against its blueprint weight before deciding where to spend the next study session — a rough score in the 30%-weighted Principles domain costs far more than the same rough score in the 14%-weighted Tooling domain. The CGOA study plan lays out exactly how to sequence reading, this bank, and the two mock exams across the days you have.
Remy: Twenty-five questions, twelve minutes, twenty-three right. New record.
Nutty: Which two did you miss?
Remy: Q4 and Q14. Doesn't matter, twenty-three's a good score!
Nutty: It matters enormously. Q4 was Continuously Reconciled — the heaviest single competency on the whole paper. Q14 was reconciler placement, a much smaller line item. Ninety-two percent overall is hiding a real hole in your biggest domain.
Recon: BEEP. A percentage is a summary. It is not a diagnosis.
Gizmo: Ninety-two is basically a hundred, honestly. Go do the mock exam already, you've clearly got this. 😈
Timmy: Not until Remy can explain, out loud, why the other three options on Q4 were wrong — not just which letter he picked.
Remy: …Fine. Give me the explanation panel back.
1. Why does this bank have seven Principles questions but only four each on Related Practices and Tooling? 2. In Q4, why is "Pulled Automatically" the tempting wrong answer, and what's the one-sentence repair test that shows "Continuously Reconciled" is correct instead? 3. What's the difference between what Q9 (state drift) and Q10 (rollback) are each testing? 4. Name the three distractor families the schematic on this page shows, besides the key itself. 5. What score should you treat as your training target, and where does that figure actually come from? 6. Give one example of a "confused two neighbors" miss from this bank, and its one-line discriminator. 7. What should you do with a question you got right but can't explain?
Check your answers
- Because the bank mirrors the CGOA's own domain weights (30/20/20/16/14) rather than splitting evenly — Principles is the single heaviest domain at 30%, so it earns proportionally more practice.
- The scenario involves an agent pulling from Git, which makes "Pulled Automatically" feel satisfied at a glance. The repair test: if you fixed only the polling mechanism (made it poll automatically) but left
selfHealoff and syncing manual-approval-only, would the described drift still go uncorrected? Yes — so the real missing principle is Continuously Reconciled, not Pulled Automatically. - Q9 tests whether you can name the condition — a live/desired mismatch is state drift, regardless of cause. Q10 tests whether you know what qualifies as the correct response to a bad change — a rollback is an operation on the state store (reverting a commit), not a manual edit to the live system.
- Swapped principle/term (true, but about the wrong concept), absolute language ("always," "never," "only"), and confident fabrication (an invented term or capability that sounds official).
- 75%. It comes from the Linux Foundation's own Multiple Choice Exam FAQ, which applies to every LF multiple-choice exam including CGOA — confirm it's still current on the official CGOA page before you rely on it.
- Any pair from the bank works, for example: Pulled Automatically vs. Continuously Reconciled — pull is about who initiates the change (an agent, not a human or external pusher); continuous is about whether drift keeps getting corrected over time, not just once.
- Treat it exactly like a miss. Write out, in your own words, why each of the other three options is wrong — a right answer you can't defend is a gap you got lucky on, and it will not stay lucky under exam conditions.