Skip to content

Latest commit

 

History

History
112 lines (80 loc) · 5.71 KB

File metadata and controls

112 lines (80 loc) · 5.71 KB

Run configurations

Repo directory

It's now possible to specify the directory in the container where the repo is mounted:

type: dev-environment

ide: vscode

repos:
  - local_path: .
    path: my_repo

  # or using short syntax:
  # - .:my_repo

The path property can be an absolute path or a relative path (with respect to working_dir). It's available inside run as the $DSTACK_REPO_DIR environment variable. If path is not set, the /workflow path is used.

Working directory

Previously, the working_dir property had complicated semantics: it defaulted to the repo path (/workflow), but for tasks and services without commands, the image working directory was used. You could also specify custom working_dir relative to the repo directory. This is now reversed: you specify working_dir as absolute path, and the repo path can be specified relative to it.

Note

During transitioning period, the legacy behavior of using /workflow is preserved if working_dir is not set. In future releases, this will be simplified, and working_dir will always default to the image working directory.

Fleet configuration

Nodes, retry, and target

dstack now indefinitely maintains nodes.min specified for cloud fleets. If instances get terminated for any reason and there are fewer instances than nodes.min, dstack will provision new fleet instances in the background.

There is also a new nodes.target property that specifies the number of instances to provision on fleet apply. Since now nodes.min is always maintained, you may specify nodes.target different from nodes.min to provision more instances than needs to be maintained.

Example:

type: fleet
name: default-fleet
nodes:
  min: 1 # Maintain one instance
  target: 2 # Provision two instances initially
  max: 3

dstack will provision two instances. After deleting one instance, there will be one instances left. Deleting the last instance will trigger dstack to re-create the instance.

Offers

The UI now has a dedicated page showing GPU offers available across all configured backends.

Digital Ocean and AMD Developer Cloud

The release adds native integration with DigitalOcean and AMD Developer Cloud.

A backend configuration example:

projects:
- name: main
  backends:
  - type: amddevcloud
    project_name: TestProject
    creds:
        type: api_key
        api_key: ...

For DigitalOcean, set type to digitalocean.

The digitalocean and amddevcloud backends support NVIDIA and AMD GPU VMs, respectively, and allow you to run dev environments (interactive development), tasks (training, fine-tuning, or other batch jobs), and services (inference).

Security

Important

This update fixes a vulnerability in the cloudrift, cudo, and datacrunch backends. Instances created with earlier dstack versions lack proper firewall rules, potentially exposing internal APIs and allowing unauthorized access.

Users of these backends are advised to update to the latest version and re-create any running instances.

What's changed

  • Minor Hot Aisle Cleanup by @Bihan in #2978
  • UI for offers #3004 by @olgenn in #3042
  • Add repos[].path property by @un-def in #3041
  • style(frontend): Add missing final newline by @un-def in #3044
  • Implement fleet state-spec consolidation to maintain nodes.min by @r4victor in #3047
  • Add digital ocean and amd dev backend by @Bihan in #3030
  • test: include amddevcloud and digitalocean in backend types by @Bihan in #3053
  • Fix missing digitaloceanbase configurator methods by @Bihan in #3055
  • Expose job working dir via environment variable by @un-def in #3049
  • [runner] Ensure working_dir exists by @un-def in #3052
  • Fix server compatibility with pre-0.19.27 runners by @un-def in #3054
  • Bind shim and exposed container ports to localhost by @jvstme in #3057
  • Fix client compatibility with pre-0.19.27 servers by @un-def in #3063
  • [Docs] Reflect the repo and working directory changes (#3041) by @peterschmidt85 in #3064
  • Show a CLI warning when using autocreated fleets by @r4victor in #3060
  • Improve UX with private repos by @un-def in #3065
  • Set up instance-level firewall on all backends by @jvstme in #3058
  • Exclude target when equal to min for responses by @r4victor in #3070
  • [Docs] Shorten the default working_dir warning by @peterschmidt85 in #3072
  • Do not issue empty update for deleted_fleets_placement_groups by @r4victor in #3071
  • Exclude target when equal to min for responses (attempt 2) by @r4victor in #3074

Full changelog: https://github.com/dstackai/dstack/compare/0.19.26...0.19.27