Skip to content

Node reference

Every step on the canvas is a node, and every node has a type. The type decides what the node does and which fields its config form shows. This page lists the node types you build with and the fields each one takes.

The everyday palette is a set of opinionated nodes that map to common pipeline steps. Under the hood each is a thin wrapper over one of Argo Workflows’ own leaf template types, so what compiles out is ordinary Argo Workflows YAML.

Before the per-type fields, a few controls appear on every node regardless of type. They live in the Inspector when a node is selected:

  • Name. A human label for the step. It becomes the DAG task name in the compiled YAML and the label shown on the canvas. Leave it blank to fall back to the node’s ID.
  • Guard (when). Under “This step runs only if…”, an expression that decides whether the node runs, for example {{tasks.flip.outputs.result}} == heads. Leave it blank and the node always runs.
  • Loop. Under “Run this once per item…”, fan the node out over a list, a typed set of items, or a numeric range. See Parameters and loops.
  • Advanced. Optional pod- and template-level knobs for the nodes that run a pod: resources, env, nodeSelector, retry, timeout, and a podSpecPatch escape hatch. Every field is optional and omitted from the output when unset.

Run a script in a chosen language against the working tree at /work.

  • Language (required): bash, sh, python, or node. Defaults to bash.
  • Script (required): the source to run.

Run an arbitrary container image against the working tree at /work.

  • Image (required).
  • Command: entrypoint override; leave empty to use the image’s default.
  • Args: a list of arguments.
  • Working Directory: defaults to /work.
  • Environment: name/value pairs.
  • Result File: a file the container writes to expose as its result output, for downstream fan-out or conditions. Defaults to /tmp/dagweave/result; leave empty if unused.

Issue an HTTP request and expose the response body to downstream nodes.

  • URL (required).
  • Method: GET, POST, PUT, DELETE, or PATCH. Defaults to GET.
  • Body: an optional request body.
  • Timeout (seconds): optional; Argo Workflows defaults to 30 seconds.

Get, apply, create, delete, patch, or replace a Kubernetes manifest.

  • Action: apply, create, delete, patch, replace, or get. Defaults to apply.
  • Manifest (required): the resource manifest as YAML.
  • Success condition / Failure condition: label-selector expressions that gate whether the step proceeds or fails, for example status.phase == Running.
  • Merge strategy: strategic, merge, or json. Only used for patch.
  • Set owner reference: make the workflow own the created resource so it is cleaned up with the workflow.
  • kubectl flags: extra options passed to kubectl before the resource, for example --validate=false.

Pause the workflow for manual approval or a fixed duration. Compiles to an Argo Workflows suspend template.

  • Duration (optional): how long to wait before resuming automatically, for example 1h or 30m. Leave it blank for a manual gate that waits until someone resumes the run.

Git checkout and git commit-push are no longer core palette nodes. They now ship as Catalog items, reusable WorkflowTemplates you drop in from the Catalog group in the step picker. An imported manifest whose container clones or pushes a repo still types back to an editable git-checkout or git-commit-push node, so old workflows round-trip.

git-checkout clones a git repository and exports its working tree as an artifact that downstream nodes consume:

  • Repository URL (required): the HTTPS clone URL.
  • Revision (required): branch, tag, or commit SHA. Defaults to main.
  • Credentials secret (optional): leave blank for a public repo; for a private one, the name of a Kubernetes Secret holding username/password keys.

git-commit-push commits a working-tree artifact and pushes it back to its git remote. Pair it with git-checkout upstream:

  • Commit message (required).
  • Author name and Author email: default to workflow-bot and [email protected].
  • Target branch (required): defaults to main.
  • Credentials secret (required): the name of a Kubernetes Secret with username/password keys.

The palette also carries thinner wrappers over the remaining Argo Workflows leaf templates, for when you want the raw shape rather than an opinionated node:

  • ContainerSet runs several containers in one pod, wired together by dependencies. Each container takes a name, image, command, args, and the names of the containers it depends on.
  • Plugin runs an Argo Workflows executor plugin by name with an arbitrary JSON config.

Some node types are editable import targets rather than build-from-scratch palette nodes. When you import a manifest whose steps are plain Argo Workflows container, script, resource, http, data, or bare containerSet templates, dagweave lays them out as nodes you can still edit, but you would reach for the opinionated run-container, run-script, k8s-resource, http-request, or ContainerSet nodes when building from scratch. See Import and round-trip.