0.18.7
Fleets
With fleets, you can now describe clusters declaratively and create them in both cloud and on-prem with a single command. Once a fleet is created, it can be used with dev environments, tasks, and services.
Cloud fleets
To provision a fleet in the cloud, specify the required resources, number of nodes, and other optional parameters.
type: fleet
name: my-fleet
placement: cluster
nodes: 2
resources:
gpu: 24GB
On-prem fleets
To create a fleet from on-prem servers, specify their hosts along with the user, port, and SSH key for connection via SSH.
type: fleet
name: my-fleet
placement: cluster
ssh_config:
user: ubuntu
identity_file: ~/.ssh/id_rsa
hosts:
- 3.255.177.51
- 3.255.177.52
To create or update the fleet, simply call the dstack apply command:
dstack apply -f examples/fleets/my-fleet.dstack.yml
Learn more about fleets in the documentation.
Deprecating dstack run
Now that we support dstack apply for gateways, volumes, and fleets, we have extended this support to dev environments, tasks, and services. Instead of using dstack run WORKING_DIR -f CONFIG_FILE
, you can now use dstack apply -f CONFIG_FILE
.
Also, it's now possible to specify a name
for dev environments, tasks, and services, just like for gateways, volumes, and fleets.
type: dev-environment
name: my-ide
python: "3.11"
ide: vscode
resources:
gpu: 80GB
This name
is used as a run name and is more convenient than a random name. However, if you don't specify a name
, dstack
will assign a random name as before.
RunPod Volumes
In other news, we've added support for volumes in the runpod
backend. Previously, they were only supported in the aws
backend.
type: volume
name: my-new-volume
backend: runpod
region: ca-mtl-3
size: 100GB
A great feature of the runpod
's volumes is their ability to attach to multiple instances simultaneously. This allows for persisting cache across multiple service replicas or supporting distributed training tasks.
Major bugfixes
Important
This update fixes the broken kubernetes
backend, which has been non-functional since a few previous updates.
Other
- [UX] Make
--gpu
override YAML'sgpu
by @r4victor in #1455
#1431 - [Performance] Speed up listing runs for Python API and CLI by @r4victor in #1430
- [Performance] Speed up project loading by @r4victor in #1425
- [Bugfix] Remove
busy
offers from the top of offers list by @jvstme in #1452 - [Bugfix] Prioritize cheaper offers from the pool by @jvstme in #1453
- [Bugfix] Fix spot offers suggested for on-demand dev envs by @jvstme in #1450
- [Feature] Implement
dstack volume delete
by @r4victor in #1434 - [UX] Instances were always shown as
provisioning
for container backends by @r4victor in * [Docs] Fix typos by @jvstme in #1426 - [Docs] Fix a bad link by @tamanobi in #1422
- [Internal] Add
DSTACK_SENTRY_PROFILES_SAMPLE_RATE
by @r4victor in #1428 - [Internal] Update
ruff
to0.5.3
by @jvstme in #1421 - [Internal] Update GitHub Actions dependencies by @jvstme in #1436
- [UX] Make
--gpu
override YAML'sgpu
: by @r4victor in #1455 - [Bugfix] Respect
regions
forrunpod
by @r4victor in #1460
New contributors
** Full changelog**: 0.18.6...0.18.7