Create Dedicated Run
Dispatch a dedicated full-FT prime-rl run on a registered PrimeCluster.
Access is gated by ClusterAllocation - the picker in
training_service.create_dedicated_run rejects callers whose
team/user has no matching allocation on a live PrimeCluster. When
team_id is set the caller must additionally be a member of that
team (mirrors the LoRA/shared dispatch path).
Config validation (validator schema, hub env ids, HF repo names,
per-run GPU cap) runs sync so bad configs return 400 immediately.
Cluster-side probes (GPU capacity, model cache) and the helm
install run async in a Cloud Task; callers poll
GET /api/v1/rft/runs/{run_id} for status transitions PENDING ->
CREATING -> RUNNING (or FAILED with errorMessage on a cluster-side
rejection).
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Full prime-rl-style TOML, parsed to a dict. Same shape as prime-rl/examples/*/rl.toml; the platform splits it into trainer / orchestrator / inference subconfigs and bakes each into the corresponding pod's startup command.
prime-rl container image tag
Optional human-readable run name
Owning team (defaults to caller's user)
W&B key. On the PENDING fast-path it's materialised straight into the run's k8s Secret. On the QUEUED path it's stashed AES-encrypted on the RFTRun row so the drainer can rebuild the same Secret at promotion time without re-prompting.
HF token for gated/private model downloads. Same storage rules as wandbApiKey above.
Optional GPU type constraint (e.g. 'H200_141GB', 'B200_180GB'). When set, dispatch is restricted to PrimeClusters whose gpuType matches. When omitted, the picker chooses the oldest eligible cluster with no type preference.