Skip to content

Add Daytona catalog provider - #263

Merged
peterschmidt85 merged 2 commits into
dstackai:mainfrom
mislavivanda:daytona
Sep 28, 2026
Merged

peterschmidt85 merged 2 commits into
dstackai:mainfrom
mislavivanda:daytona

Conversation

@mislavivanda

Copy link
Copy Markdown
Contributor

What

Adds Daytona (https://daytona.io) as an offline catalog provider — a GPU cloud offering isolated sandboxes with on-demand and spot capacity, billed per second.

Data source

Public, unauthenticated rate card: https://billing.app.daytona.io/gpu-pricing (JSON, served from the same definitions customers are billed against, cached 5 min). Same no-creds offline pattern as CloudRift.

Mapping notes

  • Daytona bills GPU sandboxes a la carte (per-GPU rate + separately metered vCPU/RAM/disk), so there are no fixed instance types. The catalog publishes representative configurations: per GPU, 8 vCPU with 100 GB RAM on datacenter-class cards (50 GB on consumer cards) and 256 GB disk, scaled linearly across 1/2/4/8 GPU counts.
  • Spot offers price the GPU and the resources at Daytona's spot rates, which are discounted independently of on-demand.
  • 8 GPU types, all mapping to existing canonical names: H100, H200, B200, B300 (memory 270 GB per KNOWN_NVIDIA_GPUS), RTXPRO6000, RTX5090, RTX4090, MI355X (AMD). Unknown future types are skipped with a warning.
  • GPU capacity is pooled/globally scheduled, so offers are published under a single us location.

Testing

  • Unit tests (src/tests/providers/test_daytona.py): payload mapping, exact price pins for both capacity types, unknown-GPU skip, HTTP/shape error handling.
  • Live collection verified end to end: python -m gpuhunt daytona → 64 offers, integrity tests pass against the produced CSV.

mislavivanda and others added 2 commits September 25, 2026 13:52
Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com>

@peterschmidt85 peterschmidt85 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I pushed cc9749c to add live GPU availability and regional CPU offers.

Live GPU availability requires DAYTONA_API_KEY. Without it, the provider warns and returns public price estimates.

@mislavivanda, please review the changes and confirm they look good to you.

@mislavivanda

Copy link
Copy Markdown
Contributor Author

Hi @peterschmidt85, thanks for the review and follow up commit which moved us to online provider.

Confirmed - the changes look great, thank you. I verified against our production API: org resolution via /api-keys/current works, capacity gating matches live fleet state (sold-out types drop out and return), CPU offers price out exactly per region, and excluding B200 is correct - it is priced ahead of launch and not yet orderable. The online-provider model fits Daytona well given per-second billing and fast capacity churn. If the CI secret ever needs a dedicated key or higher limits, ping us at support@daytona.io.

@peterschmidt85

Copy link
Copy Markdown
Contributor

Thank you, @mislavivanda ! I’ll merge this shortly.
Would you like us to add Daytona support to dstack as well, or would you prefer to submit a PR yourself?

@mislavivanda

Copy link
Copy Markdown
Contributor Author

Thank you, @mislavivanda ! I’ll merge this shortly. Would you like us to add Daytona support to dstack as well, or would you prefer to submit a PR yourself?

Yes, of course, that would be great.

I'm good with both ways, whichever your prefer. If you lift a PR just ping me please so I can review the changes before we merge it.

@peterschmidt85
peterschmidt85 merged commit dd336db into dstackai:main Sep 28, 2026
6 checks passed
@peterschmidt85

Copy link
Copy Markdown
Contributor

If you lift a PR just ping me please so I can review the changes before we merge it.

@mislavivanda Here we go: dstackai/dstack#4321

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.

2 participants