Argo Workflow fundamentals: CAPA practice questions
Argo Workflows is a workflow engine that runs on Kubernetes and is installed as custom resources plus two Deployments. The workflow controller does all of the reconciling: it watches Workflow objects and the Pods they create and moves each run forward.
By Ibrahim Yesilay · Published · Updated
Independent community practice, not affiliated with or endorsed by CNCF or The Linux Foundation.
What Argo Workflow fundamentals covers in CAPA
Argo Workflows is a workflow engine that runs on Kubernetes and is installed as custom resources plus two Deployments. The workflow controller does all of the reconciling: it watches Workflow objects and the Pods they create and moves each run forward. The Argo Server serves the API and the web UI, listening on port 2746, and the controller can run without it. Both normally live in the argo namespace, while the workflows themselves and their Pods can run in other namespaces.
A Workflow resource has two jobs at once. It defines the work to run, and it stores the state of that run in its status, so the documentation describes it as a live object rather than a static manifest. Every step or DAG task that runs a container becomes its own Pod. In the classic layout that Pod has an init container that fetches input artifacts and parameters, the main container that runs the user's image with the argoexec binary wrapped around the command, and a wait container that saves outputs, artifacts and logs when the main container ends. The process that runs inside those Pods is called the executor, and emissary is the only executor left.
Day-to-day work goes through the argo CLI. argo submit creates a Workflow from a file and, with --watch, follows it until it ends; argo list, argo get and argo logs show runs, a single run's tree and container output. A failed run can be retried in place with argo retry, which reruns only the failed parts, or copied into a new run with argo resubmit. argo stop and argo terminate both end a running workflow, but stop still runs exit handlers while terminate skips them.
The Argo Server authenticates requests in one of three modes. client mode, the default, uses the bearer token that the caller sends; server mode uses the server's own service account, or the local kubeconfig when run locally; sso mode signs users in through single sign-on. Several modes can be enabled at once with repeated --auth-mode flags. Knowing which component owns which job, controller for execution and server for the API and UI, settles most architecture questions about the project.
Key points
- The workflow controller reconciles Workflows; the Argo Server only serves the API and UI.
- Each container step or task runs as its own Pod managed by the emissary executor.
- argo stop runs exit handlers before ending a workflow, argo terminate does not.
- The Argo Server defaults to the client auth mode, which uses the caller's own token.
Three sample questions
12 CAPA questions on Argo Workflow fundamentals, 12 with explanations. How practice works
Question 1
- A.A continuous delivery tool that syncs Kubernetes manifests from Git repositories to clusters
- B.A container-native workflow engine for orchestrating parallel jobs
- C.A progressive delivery controller
- D.An event-driven automation framework that triggers Kubernetes objects from external event sources
Correct answer: B
Sources: Argo Workflows docs: Overview, Argo Rollouts docs: Overview, Argo Events docs: Overview
Question 2
- A.
argo logs <workflow-name> - B.
argo logs <workflow-name> -f - C.
argo logs <workflow-name> <pod-name> - D.
argo logs <workflow-name> --step=<step-name>
Correct answer: C
argo logs WORKFLOW [POD] prints a workflow's logs; passing the pod name of a step narrows the output to that step, and -c picks a container. Why the other options are wrong. "argo logs <workflow-name>": prints the logs of all the workflow's pods. "argo logs <workflow-name> -f": follows all logs as they stream. "argo logs <workflow-name> --step=<step-name>": the command has no --step flag.Sources: Argo Workflows docs: argo logs, Argo Workflows docs: Argo CLI
Question 3
- A.
argo run workflow.yaml - B.
argo create workflow.yaml - C.
argo submit workflow.yaml - D.
argo apply workflow.yaml
Correct answer: C
argo submit workflow.yaml creates the Workflow from the file and starts it; --watch follows its progress and -p overrides parameters. Why the other options are wrong. "argo run workflow.yaml": the argo CLI has no run subcommand. "argo create workflow.yaml": there is no argo create; WorkflowTemplates and CronWorkflows have their own argo template create and argo cron create. "argo apply workflow.yaml": apply is a kubectl verb, not an argo subcommand.Sources: Argo Workflows docs: argo submit, Argo Workflows docs: argo CLI reference
Practice this topic
Focus mode keeps every question on Argo Workflow fundamentals until you leave it. 10 free guest answers, then a free account; no credit card.
Or open CAPA practice across all topics.
Sources
The explanation above was checked against these official documents.
- Argo Workflows docs: Architecture (checked 2026-10-28)
- Argo Workflows docs: Core concepts (checked 2026-10-28)
- Argo Workflows docs: Workflow executors (checked 2026-10-28)
- Argo Workflows docs: Argo Server (checked 2026-10-28)
- Argo Workflows docs: Argo Server auth mode (checked 2026-10-28)
- Argo Workflows docs: argo stop command (checked 2026-10-28)
- Argo Workflows docs: argo terminate command (checked 2026-10-28)