Skip to content

Commit 5138990

Browse files
authored
Implement RunPod cloud adapter (#748)
* Implement RunPod cloud adapter * Address RunPod adapter review feedback * Avoid default RunPod network volume * Handle missing RunPod GPU type results * Use on-demand RunPod pricing for guardrails * Guard empty RunPod provision response
1 parent 05ea5cf commit 5138990

3 files changed

Lines changed: 812 additions & 49 deletions

File tree

packages/cloud/runpod/README.md

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,24 @@ Provides the RunPod (GPU) cloud provider adapter for sh1pt scale and deploy work
44

55
## What it does
66

7-
- Connects cloud provider credentials and project settings.
8-
- Supports infrastructure planning, deployment, or status workflows where implemented.
9-
- Includes a connection flow for account or credential setup.
10-
- Includes setup guidance for required credentials or provider configuration.
7+
- Connects to RunPod through the GraphQL API with `RUNPOD_API_KEY`.
8+
- Quotes GPU pods from either explicit `hourlyPrice` config or RunPod `gpuTypes` pricing.
9+
- Uses the highest available price when `cloudType` is `ALL` so `maxHourlyPrice` is not checked against a lower community-only estimate.
10+
- Uses on-demand GPU prices for guardrails; spot bids are not sent by this adapter.
11+
- Fails clearly when the requested GPU type is not returned instead of silently selecting another GPU.
12+
- Provisions on-demand GPU pods with `podFindAndDeployOnDemand`.
13+
- Lists account pods, checks a pod by ID, and terminates pods with `podTerminate`.
14+
- Requires `imageName` for real provisioning and supports `maxHourlyPrice` guardrails before any pod is created.
15+
- Does not call RunPod during dry-run provisioning; set `hourlyPrice` to simulate a non-zero cost in dry-run output.
16+
17+
Common config fields:
18+
19+
- `gpuTypeId`: RunPod GPU type ID, such as `NVIDIA RTX A6000`.
20+
- `imageName`: container image for real pod creation, such as `runpod/pytorch`.
21+
- `cloudType`: `ALL`, `COMMUNITY`, or `SECURE`.
22+
- `hourlyPrice`: optional explicit offline quote value per GPU.
23+
- `volumeInGb`: optional network volume size; omitted unless explicitly requested through config or the spec storage field.
24+
- `ports`, `dockerArgs`, `containerDiskInGb`, `minVcpuCount`, `minMemoryInGb`, `volumeMountPath`, `networkVolumeId`, and `env`.
1125

1226
## Package
1327

0 commit comments

Comments
 (0)