Skip to content

Submitting Workflows

from strands_osmo import osmo_workflow_submit

osmo_workflow_submit(
    workflow_yaml="train.yaml",
    pool="h100-prod",
    set_vars={"num_gpu": 4, "epochs": 10},
)

Variables

The set_vars dict becomes --set key=value flags. Use these for any Jinja placeholder in your YAML (e.g. {{num_gpu}}).

Priority

priority="LOW" runs your workflow on idle capacity even if your quota is exhausted. The job becomes preemptible - if a quota-holding job needs the GPUs, yours gets killed.

osmo_workflow_submit("train.yaml", pool="h100-prod", priority="LOW")

Naming

Override the spec's workflow.name:

osmo_workflow_submit("train.yaml", pool="h100-prod", name="exp-2026-05-14")

Extra flags

Anything you'd pass to osmo workflow submit directly:

osmo_workflow_submit(
    "train.yaml",
    pool="h100-prod",
    extra_args=["--no-watch", "--label", "owner=cagatay"],
)