Skip to content

Commit 26907e5

Browse files
author
Andrey Cheptsov
committed
Document fleet-scoped dstack offer behavior
1 parent e41b1d9 commit 26907e5

File tree

6 files changed

+53
-7
lines changed

6 files changed

+53
-7
lines changed

docs/docs/concepts/fleets.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,20 @@ Fleet my-gcp-fleet deleted
517517
Alternatively, you can delete a fleet by passing the fleet name to `dstack fleet delete`.
518518
To terminate and delete specific instances from a fleet, pass `-i INSTANCE_NUM`.
519519

520+
### List offers
521+
522+
To inspect offers available through a fleet, pass `--fleet` to `dstack offer`.
523+
524+
<div class="termy">
525+
526+
```shell
527+
$ dstack offer --gpu H100 --fleet my-fleet
528+
```
529+
530+
</div>
531+
532+
Use `--group-by gpu,backend` to aggregate offers.
533+
520534
!!! info "What's next?"
521535
1. Check [dev environments](dev-environments.md), [tasks](tasks.md), and
522536
[services](services.md)

docs/docs/guides/protips.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,9 @@ Getting offers...
458458

459459
</div>
460460

461+
By default, `dstack offer` ignores fleet configurations and shows all available offers that match the request.
462+
To inspect offers available through a specific fleet, pass `--fleet NAME`.
463+
461464
??? info "Grouping offers"
462465
Use `--group-by` to aggregate offers. Accepted values: `gpu`, `backend`, `region`, and `count`.
463466

docs/docs/guides/troubleshooting.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,15 @@ If you run `dstack apply` and don't see any instance offers, it means that
5454
`dstack` could not find instances that match the requirements in your configuration.
5555
Below are some of the reasons why this might happen.
5656

57-
> Feel free to use `dstack offer` to view available offers.
57+
Feel free to use `dstack offer` to inspect available offers:
58+
59+
```shell
60+
# All matching offers, ignoring fleet configurations
61+
$ dstack offer --gpu H100
62+
63+
# Offers available through a specific fleet
64+
$ dstack offer --gpu H100 --fleet my-fleet
65+
```
5866

5967
#### Cause 1: No backends
6068

docs/docs/reference/cli/dstack/offer.md

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ Displays available offers (hardware configurations) from configured backends or
44

55
The output shows backend, region, instance type, resources, spot availability, and pricing.
66

7-
!!! info "Experimental"
8-
`dstack offer` command is currently an experimental feature. Backward compatibility is not guaranteed across releases.
9-
107
## Usage
118

129
This command accepts most of the same arguments as [`dstack apply`](apply.md).
@@ -20,9 +17,28 @@ $ dstack offer --help
2017

2118
</div>
2219

20+
## Fleet offers
21+
22+
By default, `dstack offer` ignores fleet configurations and shows all available offers that match the request.
23+
24+
Use `--fleet` to inspect offers available through specific fleets. With one `--fleet`,
25+
`dstack offer` shows offers available through that fleet. With multiple `--fleet`, it
26+
combines offers available through the selected fleets.
27+
28+
<div class="termy">
29+
30+
```shell
31+
$ dstack offer --gpu H100 --fleet my-fleet
32+
```
33+
34+
</div>
35+
36+
The same fleet filtering applies to `--group-by` output, e.g. `--group-by gpu,backend`
37+
or `--group-by gpu,backend,region`.
38+
2339
## Examples
2440

25-
### Filtering offers
41+
### Filtering offers { #list-gpu-offers }
2642

2743
The `--gpu` flag accepts the same specification format as the `gpu` property in [`dev environment`](../../../concepts/dev-environments.md), [`task`](../../../concepts/tasks.md),
2844
[`service`](../../../concepts/services.md), and [`fleet`](../../../concepts/fleets.md) configurations.

skills/dstack/SKILL.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,7 @@ dstack stop my-run-name --abort
459459

460460
### List offers
461461

462-
Offers represent available instance configurations available for provisioning across backends. By default, `dstack offer` lists offers ignoring fleet filters, while `--fleet` limits the results to the selected fleet(s).
462+
Offers represent available instance configurations available for provisioning across backends. By default, `dstack offer` ignores fleet configurations and shows all available offers that match the request. Use `--fleet` to inspect offers available through specific fleets.
463463

464464
```bash
465465
# Filter by specific backend
@@ -477,10 +477,15 @@ dstack offer --backend aws --gpu A100:80GB
477477
# Limit to a specific fleet
478478
dstack offer --fleet my-fleet
479479
480+
# Combine offers from multiple fleets
481+
dstack offer --fleet my-fleet --fleet other-fleet
482+
480483
# JSON output (for troubleshooting/scripting)
481484
dstack offer --json
482485
```
483486

487+
With one `--fleet`, `dstack offer` shows offers available through that fleet. With multiple `--fleet`, it combines offers available through the selected fleets. Identical backend offers are shown once, while matching existing instances stay separate.
488+
484489
**Max offers:** By default, `dstack offer` returns first N offers (output also includes the total number). Use `--max-offers N` to increase the limit.
485490
**Grouping:** Prefer `--group-by gpu` (other supported values: `gpu,backend`, `gpu,backend,region`) for aggregated output across all offers, not `--max-offers`.
486491

src/dstack/_internal/cli/services/profile.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def register_profile_args(parser: argparse.ArgumentParser):
7070
action="append",
7171
metavar="NAME",
7272
dest="fleets",
73-
help="Consider only instances from the specified fleet(s) for reuse",
73+
help="Consider only the specified fleet(s)",
7474
)
7575
fleets_group_exc = fleets_group.add_mutually_exclusive_group()
7676
fleets_group_exc.add_argument(

0 commit comments

Comments
 (0)