stado submit
Invocation
stado submit [OPTIONS] --run-id <RUN_ID> <COMMAND>Purpose
Submit a job (or batch) to the queue
Required inputs and options
| Input or option | Contract |
|---|---|
<COMMAND> | Shell command the job runs |
--provider <PROVIDER> | Optional provider constraint (gcp/azure/aws/local); Stado chooses when omitted [default: ""] |
--batch <BATCH> | File with commands |
--spot | Dispatch on Spot/Preemptible GPUs (cheaper, can be preempted) |
--no-spot | Do not dispatch on Spot/Preemptible GPUs (default) |
--max-cost-per-hour <MAX_COST_PER_HOUR> | Hard cap on $/hour for the chosen accelerator. 0 = no cap [default: 0] |
--any-provider | If true (default), any consumer with capacity can claim |
--pin-provider | If --pin-provider, only the named --provider is allowed |
--priority <PRIORITY> | Higher = scheduled first within FIFO bucket [default: 0] |
--deadline-at <DEADLINE_AT> | Hard RFC 3339 completion deadline used by autonomous placement [default: ""] |
--repo <REPO> | Optional git URL to clone before running command (no auth) [default: ""] |
--repo-ref <REPO_REF> | Exact full lowercase commit to fetch; required with --repo [default: ""] |
--repo-workdir <REPO_WORKDIR> | Override cloned-repo dir; default = repo basename [default: ""] |
--repo-extras <REPO_EXTRAS> | pip extras to install on the clone; empty skips install [default: train] |
--gpu-type <GPU_TYPE> | Pin the accelerator label (e.g. 'nvidia-l4', 'nvidia-a100-80gb'). Skips the --model regex inference. Resolves machine_type from GPU_SIZING unless --machine-type is also passed [default: ""] |
--vram-gb <VRAM_GB> | Caller-declared VRAM (GB). Picks the smallest SKU whose tier >= this value. Skips the --model regex inference [default: 0] |
--machine-type <MACHINE_TYPE> | Pin the GCE/Azure machine type verbatim (e.g. 'g2-standard-8'). Use for SKUs not in the wisent-compute catalog [default: ""] |
--pre-command <PRE_COMMAND> | Shell snippet placed before the command in the SAME bash shell. Use to export env vars (LD_LIBRARY_PATH, CUDA_VISIBLE_DEVICES, etc.) that the command will see [default: ""] |
--apt <APT> | Comma-separated apt package list. Installed via sudo apt-get on cloud-kind agents only — local-kind agents refuse the job for safety [default: ""] |
--output-uri <OUTPUT_URI> | Additional provider-neutral stado:// destination for job output. Additive — canonical status/<id>/output/ is always written too [default: ""] |
--verify <VERIFY> | Shell command that must exit 0 after the job succeeds; non-zero reverses COMPLETED->FAILED. Catches silent-success failure modes [default: ""] |
--exclusive | Claim the whole GPU. The worker starts this job only while idle and admits no other job until it finishes. Use for diffusion training and full finetunes whose peak VRAM cannot be safely shared |
--yieldable | Background job: the local worker may evict this job for a strictly-higher-priority queued job that does not otherwise fit. Requires --on-yield. The worker runs that hook (with WC_JOB_PID set), waits --yield-grace, then requeues the job. (resumes from wherever the hook saved state) |
--on-yield <ON_YIELD> | Save-and-sync command run when the agent yields this job. Responsible for telling the job to stop, persisting state + artifacts (server/GCS/HF), and letting it exit. Required with --yieldable [default: ""] |
--yield-grace <YIELD_GRACE> | Seconds the --on-yield hook + clean exit get before the agent SIGKILLs the process group (default 120) [default: 120] |
--input-artifact <INPUT_ARTIFACTS> | Pinned artifact input as NAME=TYPE/NAMESPACE/NAME@VERSION_OR_ALIAS |
--secret-env <SECRET_ENV> | Scoped workload secret as ENV_NAME=SKARBIEC_ITEM#FIELD |
--profile <PROFILE> | Apply a named profile from the bundled profiles dir (or $WC_PROFILES_DIR). CLI flags override profile fields. Run `stado profiles` to list available profiles [default: ""] |
--pinned-host <PINNED_HOST> | Hard-pin this job to one consumer: a registry target name (resolved to kind-hostname) or a raw consumer_id. Only that consumer may claim the job; the makespan matcher never reassigns it [default: ""] |
--run-id <RUN_ID> | Stable caller-retained identity for exactly-once submission. Required: repeating the same run id and request returns the original jobs |
Output and state effect
It performs the operation described above and emits its operator result on standard output or standard error. Any state change is limited to the resources and records named by the purpose and options on this page.
Refusals
- Exact full lowercase commit to fetch; required with --repo [default: ""]
- Resolves machine_type from GPU_SIZING unless --machine-type is also passed [default: ""]
- Installed via sudo apt-get on cloud-kind agents only — local-kind agents refuse the job for safety [default: ""]
- Shell command that must exit 0 after the job succeeds; non-zero reverses COMPLETED->FAILED.
- Use for diffusion training and full finetunes whose peak VRAM cannot be safely shared
- Requires --on-yield.
- Required with --yieldable [default: ""]
- Required: repeating the same run id and request returns the original jobs
- Before dispatch, Stado refuses a missing required token shown in the invocation, an unknown option, or a value outside a listed value set; argument-usage failures exit with code 2.