dstack
dstack copied to clipboard
[Meta]: Fleet-first UX
Currently, dstack fleets are optional for cloud backends, which means users have two ways of provisioning via dstack: using fleet configurations or run configurations. Moreover, fleet configurations are not supported for container-based backends, so the same users may have different provisioning UX depending on the backend. The proposal is to make provisioning UX fleet-first. Ultimately, this means that users always configure fleets explicitly, and run apply should not able to create new fleet. More specifically, this involves several steps:
- [x] Support elastic cloud fleets, i.e. users can create fleets with 0 or more instances, empty fleets can be used by runs for provisioning (#1448).
- [x] Implement smart fleet choice for runs – dstack should consider fleet capacity and prioritize fleets that can fit run without additional provisioning (currently only considers instance price, which leads to #2221 ).
- [x] #3020
- [x] Respect fleet spec when provisioning on run apply so that the instances do not contradict the fleet spec (#2969).
- [x] Support fleet retry – dstack should maintain the specified min number of instances in the fleet (#2921).
- [x] https://github.com/dstackai/dstack/labels/major #3056
- [x] https://github.com/dstackai/dstack/labels/major #3256
- [x] https://github.com/dstackai/dstack/labels/major #3294
- [ ] https://github.com/dstackai/dstack/labels/major #2644
- [x] Forbid creating new fleets on run apply (ultimate goal)