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.
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.
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.
podResources:
requests:
cpu: "2"
memory: 4Gi
limits:
memory: 8GiWe 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.
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 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.