mrkeyoor.com_
Tue 01 Sept 17:41 UTC
Automationevaluationupdated 26 Aug 2026

argo-workflows review

Argo Workflows is a workflow engine that runs each step as a container on Kubernetes. Teams describe a sequence or dependency graph in Kubernetes resources, then use the controller, API, CLI, or web interface to submit, watch, retry, schedule, and archive jobs.

+9stars / 7d
Verdict

Our Argo Workflows checkout built in 10 seconds and passed 5 of 6 test packages; the sole failed package needed rootless Docker for a MySQL container. That is a strong source baseline for a Kubernetes platform team, and a reminder that realistic validation crosses into containers and cluster services. Use it for serious container DAGs on an existing cluster, not as a reason to introduce Kubernetes for a few scheduled scripts.

We ran it

Lab card: what happened when we ran argo-workflowsScreenshot of argo-workflows (argo-workflows.readthedocs.io)
Install✓ · 111s976 packages
Build✓ · 10s
Tests✗ · 396s5 passed · 1 failed of 6 (go test)
Repo2985 files~320,754 lines of source · 83.2 MB · 17 CI workflows · Dockerfile · tests dir

Answers from our run

Does argo-workflows build from source?

Dependencies installed in 111 seconds (976 packages), and the build succeeded in 10 seconds. We cloned commit f016ad8 into a clean Debian container with 3 CPUs and no project-specific setup.

Do argo-workflows's tests pass?

Not all of them: 5 of 6 passed and 1 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use argo-workflows?

Teams without Kubernetes: the workflow controller and every step depend on a cluster.

What are the alternatives to argo-workflows?

Apache Airflow, Temporal, Flyte. Our Argo Workflows checkout built in 10 seconds and passed 5 of 6 test packages; the sole failed package needed rootless Docker for a MySQL container.

Setup3/510-second build; useful deployment still needs a Kubernetes platform
Docs5/5Quick start, walkthroughs, upgrades, features, and SDKs are covered
Community5/516,938 stars, CNCF graduation, and an August 2026 push
Maturity5/5v4.1.2 with a broad production feature set and active releases

Discussed on

  1. hnArgo Workflows v3.068 points

Who it’s for

Platform teams that already run Kubernetes and need container-based batch workflows.
Data and machine-learning groups with jobs that benefit from parallel DAG execution.
Organizations that need artifact passing, retries, schedules, limits, and cluster-native placement controls.
Operators who want workflow definitions stored as Kubernetes custom resources and can manage their permissions.

Who it’s NOT for

Teams without Kubernetes: the workflow controller and every step depend on a cluster.
Application developers seeking durable functions in ordinary code: Argo's unit of execution is a container described through workflow resources.
Data teams that mainly want a Python-first scheduler and a large operator catalog: Apache Airflow is closer to that mental model.
Operators unable to provide Docker or a compatible container runtime for the full contributor test path: our only failed package could not start MySQL because rootless Docker was absent.
Small cron workloads with no dependency graph or artifact flow: Kubernetes, CRDs, a controller, and an optional server are more machinery than the job needs.

Setup reality

Our sandbox installed 976 Go packages in 111 seconds and built successfully in 10 seconds. Tests ran for 396 seconds: 5 passed and 1 failed out of 6. The failed MySQL case could not find rootless Docker to start its test container.

A real deployment needs a Kubernetes cluster, kubectl, controller and CRD installation, service accounts, and artifact storage if workflows pass files. The server adds API, UI, authentication, archiving, and exposure decisions. The CLI alone does not replace the in-cluster controller.

The quick-start manifest is easy to apply, but production work includes namespaces, RBAC, workflow pod permissions, artifact credentials, resource quotas, cleanup, and upgrades. Our successful source build did not exercise those cluster controls.

Every workflow step is a Kubernetes container

Argo Workflows represents a job as either ordered steps or a directed acyclic graph. Each node runs in a container, and workflow resources carry parameters, artifacts, retry rules, conditions, timeouts, and dependencies. The controller turns that declaration into pods and tracks their state. This model is direct for batch systems whose work is already packaged as images.

The container boundary is also the main filter for adoption. A 20-line function becomes an image, registry artifact, pod specification, and cluster execution. That cost can be worthwhile for GPU jobs, isolated data transforms, or pipelines that need different runtimes per step. It is less attractive for many tiny application callbacks that share libraries and state. Argo orchestrates Kubernetes work; it does not hide Kubernetes.

DAGs, artifacts, retries, and schedules are built in

The feature list covers both execution and operations. Workflows can loop, branch, suspend, resume, cancel, retry, memoize resubmissions, and run on a cron schedule. Parallelism limits and Kubernetes placement settings control where work lands. Exit hooks support cleanup or notification, while garbage-collection policies remove completed pods and workflows.

Artifacts can move through S3, Artifactory, Alibaba OSS, Azure Blob, HTTP, Git, GCS, raw storage, or plugins. The server exposes HTTP and gRPC APIs plus a web interface. Workflow templates keep reusable definitions in the cluster. Archiving retains completed runs for later access. These pieces form a capable batch platform, but they require databases, object stores, credentials, and retention rules beyond the 10-second source build we measured.

What happened when we ran it

Our fresh Debian sandbox installed 976 Go packages in 111 seconds. commit f016ad8 contained 2,985 files, about 320,754 lines of source, and an 83.2 MB checkout. The build completed successfully in 10 seconds. We found 17 CI workflow files, a Dockerfile, and a tests directory.

The test command ran for 396 seconds and ended with exit code 1. The harness counted 5 passing packages and 1 failure out of 6. TestLockMetricsDatabase/mysql failed immediately because its test-container library could not find rootless Docker and therefore could not create a Docker provider for MySQL. Other workflow packages shown in the tail passed or had no test files.

That failure is specific and bounded. It does not show a controller compilation problem or a broken database algorithm. It shows that the complete test path expects a container provider even inside an unprivileged Go build environment. We did not add Docker access to the sandbox. Contributors should provide the documented container test dependency or select a test scope that does not claim to cover MySQL-backed lock metrics.

Cluster permissions are part of the workflow design

A workflow pod may read secrets, mount volumes, call cloud APIs, create Kubernetes resources, or reach internal services. Argo supports service accounts and normal Kubernetes scheduling controls, so administrators can constrain those capabilities. The workflow author still chooses images and templates that run with them. Treat shared templates as code with an authority level, not as harmless YAML snippets.

The server brings another boundary. Single sign-on through OAuth2 or OIDC is available, and webhook triggers can submit work. Exposing the API or UI requires authentication, authorization, network policy, and audit decisions. Artifact credentials deserve separate scope from the controller's cluster permissions. A user who can submit an arbitrary container may have a route to every secret or network target available to that workflow service account.

The quick start installs more than a CLI

Release v4.1.2 provides a compressed CLI binary for macOS and Linux. The controller quick start then creates an argo namespace and applies the release installation manifest. That distinction matters: the CLI submits and inspects work, while the cluster installation supplies CRDs, controller behavior, and the server components needed for actual execution.

Production should avoid treating one kubectl apply as the finished design. Pin release artifacts, review the manifest, define namespace ownership, restrict workflow pods, configure artifact storage, and decide what to archive. Set quotas before a loop or broad fan-out turns one submission into too many pods. The README says about 200 organizations are listed as users, but their presence does not determine suitable limits for another cluster.

SDKs make authoring less dependent on handwritten YAML

The project documents client libraries for Java, Go, Python through Hera, and TypeScript through Juno. Hera is particularly useful for teams that want Python composition while retaining Argo as the execution engine. The resulting workflow still resolves to Argo resources and container tasks, which keeps the cluster behavior inspectable.

Compare that with the alternatives by execution model. Airflow centers scheduler-managed data DAGs and a broad Python operator ecosystem. Temporal persists application workflow state and replays code. Flyte adds typed data and ML abstractions on Kubernetes. Argo is the cleaner choice when the job graph is general, the containers already exist, and the platform team wants Kubernetes semantics visible rather than wrapped in a domain-specific layer.

August 2026 activity supports a mature adoption case

GitHub showed 16,938 stars, 1,266 open issues and pull requests, and an Apache-2.0 license. The last push was August 26, 2026, five days after release v4.1.2. The combined open count is large but includes pull requests; paired with a current release and same-week push, it describes a busy project rather than abandonment. Argo Workflows is also a CNCF graduated project.

The decision is mostly architectural. Existing Kubernetes teams with containerized batch jobs get a mature controller, UI, APIs, artifacts, schedules, and several SDK choices. Teams without Kubernetes inherit cluster operations before running their first useful DAG. Our 5-of-6 test result is encouraging because the one failure names an absent Docker provider, but a serious evaluation still needs a cluster, artifact store, restricted service accounts, and representative concurrent jobs.

Alternatives

ProjectWhat it isPick it when
Apache Airflow gh↗A Python-oriented workflow scheduler with a large provider and operator ecosystem.pick this instead when data orchestration is primary and authors prefer Python DAGs over Kubernetes resources.
Temporal gh↗A durable execution service for long-running application workflows written in code.pick this instead when workflow state belongs inside application logic and each step is not naturally a container.
Flyte gh↗A Kubernetes-native workflow platform aimed at data and machine-learning workloads.pick this instead when typed ML and data assets plus Python authoring matter more than Argo's general container model.

What people are saying

  1. [github-trending] argoproj/argo-workflows

Sources

  1. Argo Workflows README
  2. Argo Workflows documentation
  3. Argo Workflows v4.1.2 release
  4. Argo Workflows security policy

More automation reviews

rclone · lego · OpenCLI · web-access · Karabiner-Elements · WiiUDownloader · the whole board →