CAPA Practice Questions
This page is the CAPA question bank — twenty-three single-best-answer questions, split across the four official domains in roughly the same proportion the CNCF's blueprint weights them, each with every option worked through in the answer key rather than a bare correct letter. It sits between two other pages on this ladder rung: read CAPA — the exam first if you haven't, since the questions below assume you already know what a Workflow template, an Application's sync status, a Rollout's canary steps and an EventSource's dependency block actually are. Once this bank stops surprising you, move on to the timed, full-length CAPA Mock Exam · Set 1 and Set 2. Every question here is original content written against the published CAPA competencies — none of it is drawn from, or claims to reproduce, the real proctored exam.
Imagine flash cards, except each card has four possible answers and only one is truly right — the other three were written on purpose to trick someone who almost knows the material. This page is a stack of twenty-three of those cards, sorted into four piles that match the four Argo robots from the blueprint page: the to-do-list robot, the plan-matching robot, the careful-swap robot, and the doorbell robot. Cover the answers with your hand, guess in your own head first, then peek to see if you were right — and more importantly, why the other three were wrong. Getting one wrong here costs nothing and teaches you something. Getting the same one wrong twice means it's time to stop skimming and go read the real page about it.
How this bank works
☺ Like you're 10: Cover the four answers with your hand, guess first, then look — and if a question fools you twice, that's the one to actually go study.
Every question below has a stem (the scenario or the exact thing being asked), four options, and exactly one key. The other three are not padding — each is built from a real misconception someone genuinely holds: a distinction from the wrong domain, a rule stated one qualifier too strongly, a mechanism that sounds plausible but doesn't exist, or a true fact that simply doesn't answer the question that was asked. That is how CNCF-style multiple-choice items are actually constructed, and it is why "I recognised a true statement" is not the same skill as "I found the one that answers this stem" — see the CAPA blueprint for how the real exam is built the same way.
The four piles, sized like the blueprint
Twenty-three questions split across four domains can't hit 36/34/18/12 exactly, but they land close, and in the same rank order — Workflows and Argo CD are still the two piles worth almost three-quarters of the bank between them:
Reframe every question from "which of these is a true statement?" to "which of these answers this exact stem?" More than one option is often defensible on its own — the whole skill CAPA is testing is picking the one that answers this question, not just any true thing you know about Argo.
Every question below was written for this course, mapped against the CNCF's published CAPA competencies. None of it is drawn from, or claims to reproduce, the real proctored exam, which the Linux Foundation does not release publicly. Getting every one of these right tells you that you know the domain — it is not a guarantee of the real paper's exact difficulty, phrasing or coverage. See CAPA — the exam for the official domain weights, and always verify price, timing and pass mark on the official Linux Foundation page before you book.
Argo Workflows — questions 1–8 (36% of the blueprint)
☺ Like you're 10: This pile is about the to-do-list robot — the one that runs jobs in order, or several at once, and passes files between them.
-
What does
spec.entrypointidentify in aWorkflowmanifest?- The container image used for every step in the workflow
- The name of the template, among those listed under
spec.templates, where execution begins - The Kubernetes namespace the workflow's pods are scheduled into
- The REST endpoint the workflow-controller exposes for that workflow
Show answer & explanation
Answer: B.
entrypointnames one template fromspec.templatesas the starting point — commonly adagorstepstemplate that then composes the rest. Nothing in a Workflow sets one image for every step (A); the namespace comes frommetadata.namespace, not the spec's execution logic (C); and there is no such per-workflow REST endpoint (D) — theargo-serverexposes one API for the whole install. -
The CAPA curriculum splits Argo Workflows template types into "definitions" (things that actually do work) and "invocators" (things that compose other templates). Which grouping is correct?
dagandstepsare definitions;containerandscriptare invocatorscontainer,script,resourceandsuspendare definitions;dagandstepsare invocators- Only
dagis an invocator —stepsis a definition, since it just lists steps in order resourceis an invocator, because it can create objects that call other templates
Show answer & explanation
Answer: B.
containerandscriptrun something;resourcecreates or patches a Kubernetes object;suspendpauses. None of the four compose other templates, which is exactly what makes them definitions.dagandstepsexist purely to sequence and parallelise the definitions above — that's the invocator role. Option A has the two groups reversed; C wrongly demotessteps, which composes tasks exactly likedagdoes; D invents a capabilityresourcedoesn't have. -
A telemetry pipeline is defined as a DAG:
templates: - name: pipeline dag: tasks: - name: extract template: extract - name: transform-spans template: cruncher dependencies: [extract] - name: transform-logs template: cruncher dependencies: [extract] - name: load template: loader dependencies: [transform-spans, transform-logs]Which task or tasks run only after both
transform-spansandtransform-logshave completed?extracttransform-spansandtransform-logs, run a second timeload, and onlyload- All four tasks run in parallel, since no explicit ordering is set at the top level
Show answer & explanation
Answer: C.
loadlists bothtransform-spansandtransform-logsin itsdependencies, so the controller withholds it until both finish — a fan-in.extract(A) runs first, not after. There's no mechanism that re-runs a task (B). And the DAG is precisely how you do set ordering — the twotransform-*tasks fan out in parallel because they share one dependency, not because ordering is absent (D). -
A workflow step needs to pass a 400 MB Parquet file it produced to the next step in the DAG. Which mechanism is built for this?
outputs.parameters, since parameters can hold any string value- An environment variable set on the producing step's container
outputs.artifacts, backed by the artifact repository configured for the cluster (commonly S3, GCS or MinIO)- A
ConfigMapcreated by the step and mounted into the next one
Show answer & explanation
Answer: C. Workflows moves two kinds of data: small strings as parameters, and files — of any real size — as artifacts, written to and read from a configured repository via
outputs.artifacts/inputs.artifacts. Parameters (A) aren't meant for file payloads. An env var (B) doesn't survive past the pod. A ConfigMap (D) has a hard size ceiling in the low megabytes and isn't how Workflows models this at all. -
Team Nebula wants one reusable library of workflow templates that every namespace on the cluster can reference with
templateRef, without copying the YAML into each namespace. Which resource is built for that?- A
WorkflowTemplate, created once in each namespace that needs it - A
ClusterWorkflowTemplate - A
CronWorkflow, since it can be referenced from anywhere - A
ConfigMapholding the template YAML, applied cluster-wide
Show answer & explanation
Answer: B.
WorkflowTemplate(A) is namespaced by design — exactly the duplication the team wants to avoid.ClusterWorkflowTemplateis the cluster-scoped sibling, definable once and referenced from any namespace.CronWorkflow(C) is about scheduling, not scope. Argo Workflows has no mechanism that resolves atemplateRefagainst a plainConfigMap(D). - A
-
Which resource lets Argo Workflows submit a new
Workflowautomatically on a recurring schedule, natively, without an external scheduler?- A
WorkflowTemplatewith aschedulefield - A
CronWorkflow - A
Sensorsubscribed to a calendar-basedEventSource - A
Workflowwhose first template issuspend
Show answer & explanation
Answer: B.
CronWorkflowis the Workflows-native scheduling resource — it holds a cron expression and a workflow template, and submits on schedule.WorkflowTemplate(A) has no schedule field. C describes a real, working pattern, but it's Argo Events' answer to the same problem, not Workflows' own mechanism — a classic wrong-project distractor.suspend(D) pauses a running workflow for a human or a timer; it doesn't trigger a new one. - A
-
A workflow needs to run the same
crunchertemplate once per file in a list that is only known at runtime — produced as the previous step's output. Which mechanism creates one task per item dynamically, instead of hardcoding a fixed number of parallel tasks in the DAG?- Manually duplicating the task definition for each file the team expects to see
withParam, fed by a JSON list the previous step wrote to its output- Setting
retryStrategy.limithigh enough to cover every file - Inserting a
suspendstep before each expected file
Show answer & explanation
Answer: B.
withParam(or the static list form,withItems) fans a task out once per element of a list, and the list can come straight from a prior step's output — this is the map-reduce shape the curriculum means by "Run Data Processing Jobs." A (fixed duplication) breaks the moment the file count changes at runtime.retryStrategy(C) governs retries after failure, not fan-out.suspend(D) pauses; it doesn't multiply tasks. -
Which two components form the operational core of an Argo Workflows install: one that reconciles
Workflowobjects into running pods, and one that exposes the API and web UI?kube-schedulerandkubelet- The
workflow-controllerand theargo-server - The
repo-serverand theapplication-controller - The
EventBusand theSensor
Show answer & explanation
Answer: B. The
workflow-controllerwatchesWorkflowobjects and creates the pods that run them;argo-serveris the API and UI layer. A names plain Kubernetes scheduling components, not Argo ones. C is real, but it's Argo CD's pair of components, not Workflows' — and D is Argo Events' pair. Knowing which project owns which named component is worth marks across all four domains.
Argo CD — questions 9–16 (34% of the blueprint)
☺ Like you're 10: This pile is about the plan-matching robot — it holds a picture in Git of what the factory floor should look like and never stops nudging reality to match it.
-
An Argo CD
Application'sspecis built from three core top-level blocks. Which set is correct?source,destination,syncPolicyrepoURL,targetRevision,pathproject,server,namespacehelm,kustomize,directory
Show answer & explanation
Answer: A.
source(where the manifests live),destination(where they're applied) andsyncPolicy(how syncing behaves) are the three top-level blocks. B lists real fields — but they sit insidesource, one level too deep to be the answer. C mixes a real top-level field (project) with fields that actually live insidedestination. D names the three alternative renderer options that live insidesource, not the blocks themselves. -
An
Application's sync status readsSyncedand its health status readsDegraded. What does that combination actually mean?- Argo CD failed to apply the manifests it read from Git
- The live manifests match Git exactly, but the resulting Kubernetes resources — say, a Deployment stuck in
CrashLoopBackOff— aren't actually healthy - Git and the live cluster have diverged, and a sync is required to fix it
- Health checks are disabled for this Application
Show answer & explanation
Answer: B. Sync status and health status answer two different questions — "does live match Git?" and "is the live thing actually well?" — and they're independent.
Syncedrules out A and C outright: applying succeeded and nothing has drifted. D is a fabrication;Degradedis exactly what health checks report when something is unwell. -
Below is (part of) an
Applicationpointed at a Helm chart:spec: source: repoURL: https://github.com/kubestronaut/platform-config.git targetRevision: main path: charts/mission-control-api helm: releaseName: mission-control-api valueFiles: [values-prod.yaml] parameters: - name: image.tag value: "2.1.0"Which single field, if changed, updates only the container image tag this Application deploys — without changing which chart, branch or values file it uses?
spec.source.targetRevision- The
valueof theimage.tagentry underspec.source.helm.parameters spec.destination.namespacespec.source.path
Show answer & explanation
Answer: B.
helm.parametersis exactly the mechanism the "Configure Argo CD with Helm and Kustomize" competency is pointing at — a Helm--set-equivalent applied by the repo-server at render time.targetRevision(A) would change the Git ref the whole chart is read from.destination.namespace(C) changes where it's deployed, not what.source.path(D) changes which chart entirely. -
An Application's
syncPolicy.automatedhasprune: trueandselfHeal: false. An engineer manually deletes a ConfigMap that is still declared in Git. What happens, by default, until someone intervenes?- Argo CD immediately recreates the ConfigMap on its own, because
prunealso governs missing resources - The Application is marked
OutOfSync, but the ConfigMap is not automatically recreated until a sync is manually triggered orselfHealis turned on - Argo CD deletes the entire Application, since a required resource is missing
- Nothing happens at all — the missing ConfigMap is never flagged
Show answer & explanation
Answer: B.
pruneonly deletes live resources that are no longer declared in Git — it doesn't recreate resources removed from the live cluster. Reacting automatically to that kind of live drift is exactly whatselfHealdoes; without it, Argo CD detects and reports the drift (OutOfSync) but waits for a human or the next sync. A misattributesselfHeal's job toprune. C and D are both fabrications — nothing here deletes the Application, and the drift is reported, not ignored. - Argo CD immediately recreates the ConfigMap on its own, because
-
Which Argo CD mechanism runs a database-migration
Jobexactly once, guaranteed to complete before the rest of an Application's resources are applied?- Setting
argocd.argoproj.io/sync-wave: "-1"on every resource except the Job - A
PreSyncresource hook on the Job - An
ignoreDifferencesentry scoped to the Job - Setting
syncPolicy.automated.selfHeal: trueon the Application
Show answer & explanation
Answer: B. Resource hooks (
PreSync,Sync,PostSync,SyncFail) are exactly this —PreSyncruns before the main sync applies anything else. A tries to force the same outcome sideways through sync waves on every other resource, which is backwards and fragile compared to hooking the Job directly.ignoreDifferences(C) is about diffing, not ordering.selfHeal(D) is about drift correction and has nothing to do with sequencing a one-off Job. - Setting
-
A platform team wants one Application per environment (dev, staging, prod) for the same service, generated automatically from a list of environments — not three hand-maintained, near-identical Application manifests. Which Argo CD resource is built for this?
AppProjectApplicationSet- A single
Applicationwith threedestinationblocks ignoreDifferenceswith a wildcardjsonPointersentry
Show answer & explanation
Answer: B.
ApplicationSetgenerates manyApplicationobjects from one template plus a generator — alistgenerator over three environments is a textbook use.AppProject(A) governs tenancy and permissions, not generation. AnApplication(C) has exactly onedestination, not several. D is unrelated to generating Applications at all. -
Which Argo CD resource restricts which Git repositories, destination clusters/namespaces, and resource kinds a group of Applications is allowed to use?
ApplicationSetAppProject- A sync window
- The Argo CD RBAC
ConfigMap
Show answer & explanation
Answer: B.
AppProjectis the tenancy boundary — allowed source repos, allowed destinations, allowed resource kinds — that Applications assigned to it must stay inside.ApplicationSet(A) generates Applications; it doesn't fence them. A sync window (C) restricts when syncing happens, not what an Application may touch. The RBAC ConfigMap (D) is real, but it governs which users can do what in the UI/API — a true statement about the wrong layer of the problem. -
An Application manages a Deployment that also has a
HorizontalPodAutoscalerattached, and carries this block:ignoreDifferences: - group: apps kind: Deployment jsonPointers: ["/spec/replicas"]Without this block, what problem does the team actually hit?
- The HPA is unable to scale the Deployment at all until the block is added
- Argo CD keeps reporting the Application
OutOfSyncon replica count and, ifselfHealis on, keeps reverting the HPA's scaling decisions back to the count declared in Git - Kubernetes rejects the Deployment outright, since two controllers can't manage the same field
- The Deployment's container image stops updating on new commits
Show answer & explanation
Answer: B.
ignoreDifferencestells Argo CD's diff engine to stop treating a field as drift — here,/spec/replicas, which the HPA legitimately owns at runtime. Without it, every HPA-driven scale reads as drift: constantOutOfSyncnoise at minimum, and withselfHealon, Argo CD actively fights the HPA back down to the Git-declared count. The HPA itself still functions mechanically (A is false); Kubernetes has no such rejection rule (C); and this block has nothing to do with the image tag (D).
Argo Rollouts — questions 17–20 (18% of the blueprint)
☺ Like you're 10: This pile is about the careful-swap robot — it gives a new machine a little bit of the work first, checks nothing broke, and only then gives it more.
-
What can a
Rolloutdo that a plain KubernetesDeploymentfundamentally cannot?- Define a pod template with container images and resource limits
- Shift traffic by a controlled percentage, gate progression on a live metrics check, and pause mid-release for a human or a timer
- Run more than one replica
- Be deployed and managed through a GitOps tool like Argo CD
Show answer & explanation
Answer: B. That's the entire reason the CRD exists: fine-grained progressive delivery via
steps—setWeight,pause,analysis— that a Deployment's all-or-nothing rolling update has no concept of. A, C and D are all things a plain Deployment already does perfectly well; none of them is the gap Rollouts fills. -
A canary step in a Rollout reads:
steps: - setWeight: 10 - pause: { duration: 5m } - analysis: templates: - templateName: success-rate - setWeight: 50 - pause: {}At the moment the Rollout reaches the
analysisstep, what object gets created?- A new
AnalysisTemplate, cloned fromsuccess-rate - An
AnalysisRun, which evaluates the referenced template's metrics live and reports its own status back to the Rollout - A plain Kubernetes
Jobthat runs the Prometheus query directly - Nothing new — the Rollout controller queries Prometheus itself and stores the result inline in its own status
Show answer & explanation
Answer: B. The
AnalysisTemplateis the reusable definition; reaching ananalysisstep instantiates it as a freshAnalysisRun, a separate object with its own live status that the Rollout watches to decide whether to proceed or abort. Nothing is cloned (A) — the template stays as-is and is referenced repeatedly. There's no intermediateJob(C); the AnalysisRun controller queries the provider (here, Prometheus) directly. And D is simply inaccurate — the whole point of the AnalysisRun object is that the result is tracked externally, not folded silently into the Rollout. - A new
-
Using the same canary steps shown above, which step is the one that stops the rollout from advancing until a human explicitly promotes it?
setWeight: 50pause: { duration: 5m }- The
analysisstep pause: {}, with no duration set
Show answer & explanation
Answer: D. A
pausewith aduration(B) resumes on its own once the timer elapses. An emptypause: {}has no timer at all — the Rollout parks there until someone runs a manual promote.setWeight(A) just sets a traffic split; it doesn't block anything by itself. Theanalysisstep (C) gates on live metrics and can abort the rollout, but it isn't what forces a manual hold — that's specifically the un-timedpause. -
A canary Rollout's
AnalysisRunfails itssuccessConditionand the rollout aborts. What happens to traffic and to the Rollout's status?- Traffic stays split at the last
setWeightpercentage while the Rollout marks itselfProgressingand waits to retry - Traffic shifts entirely back to the stable ReplicaSet, and the Rollout is deliberately left
Degradedso a human investigates, rather than being silently retried - The canary Pods are left serving 100% of traffic until someone manually rolls back
- Kubernetes automatically deletes the Rollout object
Show answer & explanation
Answer: B. An aborted canary reverts traffic to stable immediately, but the Rollout is intentionally parked
Degradedrather than being quietly retried — a failed analysis is meant to page a human, not disappear. A has the status wrong (it wouldn't sayProgressingafter an abort). C describes roughly the opposite of what actually happens. D is a fabrication — nothing here deletes the object. One more detail worth knowing alongside this: real traffic-percentage shifting itself needs a traffic router — an ingress controller, service mesh, SMI or the Gateway API — or the weight is only approximated by pod counts. - Traffic stays split at the last
Argo Events — questions 21–23 (12% of the blueprint)
☺ Like you're 10: This pile is about the doorbell robot — it listens for something happening outside and pokes another robot when it does.
-
Put these three Argo Events components in the order an event actually flows through them, from the outside world to a triggered action:
Sensor→EventBus→EventSourceEventSource→EventBus→SensorEventBus→Sensor→EventSourceEventSource→Sensor→EventBus
Show answer & explanation
Answer: B. An
EventSourcelistens to the outside world and publishes onto theEventBus; aSensorsubscribes to named dependencies on that bus and fires a trigger once its conditions are met. The other three orderings each put the transport (EventBus) or the subscriber (Sensor) somewhere the message hasn't reached yet. -
Given this EventSource/Sensor pair:
apiVersion: argoproj.io/v1alpha1 kind: EventSource metadata: name: git-webhook spec: webhook: push: port: "12000" endpoint: /push method: POST --- apiVersion: argoproj.io/v1alpha1 kind: Sensor metadata: name: on-push spec: dependencies: - name: push-dep eventSourceName: git-webhook eventName: push triggers: - template: name: run-pipeline argoWorkflow: operation: submitFor the Sensor's dependency to actually fire when this EventSource receives a POST to
/push, what has to match between the two manifests?- The
metadata.nameof the EventSource and the Sensor objects must be identical - The Sensor's
dependencies[].eventNamemust match the key used under the EventSource's event-type block — here,push - Both objects must be deployed into the
argocdnamespace - The Sensor's
triggers[].template.namemust match the EventSource'sendpointvalue
Show answer & explanation
Answer: B. The Sensor names the EventSource by
eventSourceNameand the specific event byeventName, which must equal the key the EventSource published under —push, in this case. Object names (A) can differ freely as long aseventSourceNamepoints correctly. There's noargocd-namespace requirement (C) — that's an Argo CD convention, not an Events one, and a wrong-project distractor. The trigger's owntemplate.name(D) is just a label for the trigger; it has no relationship to the webhook'sendpointpath. - The
-
How does Argo Events' fundamental behavior differ from Argo CD's, even though both projects watch for change?
- Argo Events only works with Git repositories, while Argo CD can watch any object store
- Argo Events creates Kubernetes objects on demand when a discrete event occurs; Argo CD continuously reconciles state whether or not anything happened at all
- Argo Events has been deprecated in favor of Argo CD's built-in webhook support
- Argo CD is event-driven and Argo Events is the one that reconciles continuously
Show answer & explanation
Answer: B. Argo Events is reactive — nothing happens until an event arrives, and then it acts once. Argo CD is the opposite: it keeps re-checking desired-versus-live state on its own reconciliation loop regardless of whether anything actually changed. A is false in both directions. C is a fabrication — the two remain separate, actively maintained projects with different jobs. D takes the real distinction and swaps the two projects, which is exactly the kind of reversed-pairing trap worth watching for on the real exam.
Turning a wrong answer into a fact
☺ Like you're 10: The score isn't the point. What matters is why you got one wrong — because "I never knew that" and "I knew it but misread the question" need completely different fixes.
Finishing the bank and noting a percentage teaches you almost nothing on its own. When you miss one, decide honestly which of two things happened. If you genuinely didn't know the fact, that's a content gap — go reread the matching section of CAPA — the exam, and don't move on until you can restate it in your own words. If you knew the material but picked wrong anyway, that's almost always a misread stem or a distractor that got you on speed rather than knowledge — reread the exact wording of the question you missed before you touch the next one. Either way, questions you miss twice on a later pass are the ones actually worth writing down.
"Question 14 — the ConfigMap-and-prune one — I got wrong twice before it stuck. I kept reading prune: true and assuming it meant 'Argo CD keeps everything matching Git,' full stop. It doesn't; it only deletes things Git removed. Recreating something I deleted by hand needed selfHeal, a completely different switch. I'd been treating two independent booleans as one idea for months before this bank made me separate them."
Pick your two lowest-confidence questions from the bank above and actually build the scenario on a kind cluster. If it was one of the Rollouts questions: install kubectl argo rollouts, apply the canary Rollout from question 18, and watch it sit at the empty pause: {} until you run a manual promote — then break the AnalysisTemplate's query on purpose and watch question 20 happen live, Degraded and all. If it was the ConfigMap-and-prune question: create an Argo CD Application with prune: true, selfHeal: false, delete a ConfigMap it manages, and time how long it actually takes before anything changes without you touching the UI. A concept you've watched fail once is very hard to get wrong on paper again.
If you want a rough, self-graded pass/fail signal: the Linux Foundation's published cut score for its multiple-choice exams, CAPA included, is 75%. Scoring at or above that here, cold, across all 23, is a reasonable — though entirely unofficial — readiness signal before you book the timed mock exam.
Remy: Done! All twenty-three, four minutes flat.
Olly: And?
Remy: …I don't actually know why B was right on the ConfigMap one. I just recognised the shape.
Olly: Then you've answered zero of them so far. Speed without the reasoning is a coin flip with extra steps.
Gizmo: Easier trick — on tests like this the answer's usually the third option. Just pick C every time! 😈
Timmy: That is not how a CNCF-style item bank is built, Gizmo. Options get shuffled for exactly this reason — there is no "usually C."
Remy: Fine. Back to question fourteen. Explaining it out loud until it actually makes sense.
1. How many questions does this bank hold in total, and roughly how are they split across the four CAPA domains? 2. Which single domain gets the most questions here, and why does that match the real blueprint? 3. Name two distinct Argo CD reconciliation-pattern concepts this bank tested, and the one-line difference between them. 4. In the Rollouts questions, what's the difference between an AnalysisTemplate and an AnalysisRun? 5. True or false: an empty pause: {} step in a canary strategy resumes automatically after a timeout. 6. Which Argo project is deliberately not continuously reconciling, and why does that distinction carry marks? 7. When you miss a question, what's the very next thing you should do before moving to the next one?
Check your answers
- 23 questions — 8 Argo Workflows, 8 Argo CD, 4 Argo Rollouts, 3 Argo Events, tracking the blueprint's 36/34/18/12 split in rank order if not in exact percentage.
- Argo Workflows (tied with Argo CD at 8 each) — because Workflows is the single largest domain on the real blueprint at 36%, ahead of Argo CD's 34%, even though Argo CD is the more famous project.
- Any two of: prune (deletes live resources removed from Git) vs. selfHeal (reverts live changes made outside Git); sync waves (order resources within one sync) vs. resource hooks (run something at a lifecycle point like
PreSync); ApplicationSet (generates many Applications) vs. AppProject (fences what a group of Applications may do). - An AnalysisTemplate is the reusable definition — the metric, provider and
successCondition. An AnalysisRun is the live instance created when a Rollout actually reaches an analysis step, carrying its own result that promotes or aborts the release. - False. A
pausewith adurationresumes on its own; an emptypause: {}has no timer and waits for a manual promote. - Argo Events — it's event-driven and acts once per discrete event, in contrast to Argo CD, which keeps re-checking desired-versus-live state on a continuous loop regardless of whether anything happened. Reversing that pairing is exactly the kind of trap the exam sets.
- Reread the exact wording of the question you missed before moving on — most misses on material you actually know come from a misread stem or a distractor that won on speed, not from a real content gap, and you can only tell the difference by rereading immediately.