Argo Workflows is a Kubernetes-native workflow engine that defines workflows as Directed Acyclic Graphs (DAGs) or sequential steps using Custom Resource Definitions (CRDs). Each workflow step runs in its own container, making it ideal for CI/CD pipelines, ML training, data processing, and any containerized batch workload. This cheat sheet covers the full workflow specification, template types, artifact management, concurrency, observability, and the broader Argo ecosystem.
What This Cheat Sheet Covers
This topic spans 17 focused tables and 149 indexed concepts, 135 flashcards. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
A jump-to index of every table row in this cheat sheet.
An interactive map of every table and concept in this topic.
Table 1: Core Concepts and Architecture
Argo Workflows runs inside Kubernetes and manages workflows as CRDs. Understanding the key components — controller, server, executor, and CRD kinds — is the foundation for all subsequent concepts.
| Concept | Example / Value | Description | |
|---|---|---|---|
kind: Workflow | The core Kubernetes custom resource representing a single workflow execution instance with a unique name. | ||
kind: WorkflowTemplate | A reusable, namespace-scoped template library that other workflows can reference via templateRef. | ||
kind: ClusterWorkflowTemplate | Like WorkflowTemplate but cluster-scoped, accessible from any namespace. | ||
kind: CronWorkflow | • Triggers a Workflow on a cron schedule • supports multiple schedules, timezone, and concurrencyPolicy | ||
workflow-controller Deployment | • Reconciliation loop watching Workflow CRDs • schedules pods and reconciles one workflow at a time per controller | ||
argo-server on port 2746 | HTTP(S) API server that serves the Argo UI, REST API, and artifact proxy. | ||
volume-mounted binary | • Binary injected into every step pod • acts as the main entrypoint, wraps the user container, and handles artifact I/O | ||
default since v3.4 | • The only supported executor • does not require privileged access • works on GKE Autopilot • exits with code 64 on executor failure | ||
init, main, wait | Every step pod has three containers: init (fetch params/artifacts), main (user container), wait (save outputs and clean up). | ||
client, server, hybrid | Controls how the server authenticates API calls: using the caller's token, a static server token, or falling back to server token if no client token is provided. |