Skip to content
Pods

One budget per step, and a number to put in it.

However many containers a step carries, you set the CPU and memory once, on the pod. dagweave then shows what the step actually used against what it asked for, off your own runs.

The problem

You pay for containers you never asked for.

A step's pod carries your container, Argo's own, and any sidecar you added. Each has an image to pull, a place in the scheduler's arithmetic, and a CPU and memory request that gets reserved whether or not anything uses it.

That lands on every step of every run. It costs the same whether the step takes four seconds or four hours.

Resources

One budget for the step

However many containers a step carries, you set the CPU and memory once, on the pod, and they share it.

  • One request per container reserves the sum of peaks that never land together.
  • Set on the step in the inspector, not in a block of YAML somebody hand-edits.
set on the step, not per containeryaml
podResources:
  requests:
    cpu: "2"
    memory: 4Gi
  limits:
    memory: 8Gi
What to put in it

We already know which steps are oversized

dagweave samples what a step actually used against what it asked for, off real runs on your cluster, and flags the ones that are nowhere near each other.

  • The flag names the resource and the direction: cpu near its limit, memory far below its request.
  • The number comes off your own runs, not off a model of your workflow.
Pod layout

Every step carries one container fewer

Argo Workflows has a pod layout with no init container at all. Nothing has to run and finish before your own container starts.

  • Your inputs download while your own image pulls.
  • The layout is a mode on the workflow controller, set once for the cluster.
  • Your steps, logs and resource numbers come back the same whichever layout the cluster runs.
  • The run timeline splits each step's bar where your own container started.
the containers in one step's podtext
the layout most clusters run today
  init          fetches your inputs, and finishes before
  main          your own image

the init-less layout, new in Argo 4.1
  supervisor
  main          your own image, started straight away

Beta upstream and off by default, so it is a mode somebody
turns on rather than one you arrive at. dagweave only ever
matches the container named main, which is why the logs and
the resource numbers read the same under either.

Stop reserving CPU nothing uses.

dagweave is in early access. Leave an email and we will bring you on as we open it up.

We store your email to tell you when we open up. That is the whole use. No third-party tracking, and you can unsubscribe any time.