Skip to content

Add JarvisLabs provider#231

Open
peterschmidt85 wants to merge 1 commit into
mainfrom
jarvislabs
Open

Add JarvisLabs provider#231
peterschmidt85 wants to merge 1 commit into
mainfrom
jarvislabs

Conversation

@peterschmidt85
Copy link
Copy Markdown
Contributor

@peterschmidt85 peterschmidt85 commented May 12, 2026

Adds JarvisLabs as an online gpuhunt provider.

Implementation notes:

  • Fetches live offer data from JarvisLabs GET /misc/server_meta.
  • Converts GPU rows into catalog items only when they are VM-capable (workload_type == "vm" or null). Container-only rows are ignored.
  • Emits on-demand GPU offers from price_per_hour and spot GPU offers from spot_price when JarvisLabs reports spot capacity.
  • Converts CPU VM offers from cpu_meta.combinations; CPU spot is not emitted because the API does not expose CPU spot pricing.
  • Uses 100GB as the JarvisLabs VM minimum disk size and honors larger min_disk_size queries.
  • Only emits offers for regions with known JarvisLabs VM provisioning hosts. server_meta does not include those hosts, so unknown VM regions are skipped with a warning.
  • Skips malformed offer rows with warnings instead of failing the whole live catalog refresh.

E2E validation:

  • dstack offer selection saw JarvisLabs L4 on-demand, L4 spot, and H100 spot offers from this provider.
  • CPU on-demand, GPU on-demand, and GPU spot tasks were provisioned through dstack using these offers.

Added tests cover offer conversion, CPU-only offers, VM/container filtering, spot offers, unsupported-region filtering, malformed metadata, disk sizing, and catalog queries.

@peterschmidt85 peterschmidt85 marked this pull request as ready for review May 12, 2026 21:17
@peterschmidt85 peterschmidt85 requested a review from jvstme May 12, 2026 21:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant