Skip to content

Releases: dstackai/dstack-enterprise

0.18.28-v1

26 Nov 11:49
Compare
Choose a tag to compare

CLI improvements

  • Added alias -R for --reuse with dstack apply
  • Show OpenAI-compatible endpoint URL in CLI by @jvstme in dstackai/dstack#2022 and dstackai/dstack#2035
  • dstack apply and dstack attach no longer rely on external tools such as ps and grep on Unix-like systems and powershell on Windows. With this change, it's now possible to use dstack CLI client in minimal environments such as Docker containers, including
    the official dstackai/dstack image

WebUI improvements

What's Changed

Full Changelog: dstackai/dstack@0.18.26...0.18.28

0.18.26-v1

21 Nov 10:39
Compare
Choose a tag to compare

Git

Previously, when you called dstack init, Git credentials were reused between users of the same project and repository.

Starting with this release, to improve security, dstack no longer shares Git credentials across users.

Warning

If you submitted credentials earlier with dstack init, they will continue to work. However, it is recommended that each user call dstack init again to ensure they do not reuse credentials from other users.

Deleting legacy credentials

To ensure no credentials submitted earlier are shared across users, you can run the following SQL statements:

UPDATE repos SET creds = NULL;

UI

This update brings a few UI improvements:

  • Added Delete button to the Volumes page
  • Added Refresh button to all pages with lists: Runs, Models, Fleets, Volumes, Projects
  • Improved Code button on the model page

What's changed

Full changelog: dstackai/dstack@0.18.25...0.18.26

0.18.25-v1

14 Nov 10:02
d4ea467
Compare
Choose a tag to compare

Okta Single Sign-On

dstack Enterprise now supports Single Sign-On via Okta Workforce Identity Cloud. When Okta integration is configured, the dstack login page will display the Sign in with Okta button. After signing in with Okta for the first time, a new dstack user account is created and linked to the Okta account. Subsequently, users can log in to dstack using their Okta account without entering any dstack-specific credentials.

To learn how to set up dstack Enterprise with Okta, follow this guide.

Multiple volumes per mount point

It's now possible to specify a list of volumes for a mount point in run configurations:

...
volumes:
  - name: [my-aws-eu-west-1-volume, my-aws-us-east-1-volume]
    path: /volume_data

dstack will choose and mount one volume from the list. This can be used to increase GPU availability by specifying different volumes for different regions, which is desirable for use cases like caching. Previously, it was possible to specify only one volume per mount point, so if there was no compute capacity in the volume's region, provisioning would fail.

DSTACK_NODES_IPS environment variable

A new DSTACK_NODES_IPS environment variable is now available for multi-node tasks. It contains a list of internal IP addresses of all nodes in the cluster, e.g. DSTACK_NODES_IPS="10.128.0.47\n10.128.0.48\n10.128.0.49". This feature enables cluster workloads that require configuring IP addresses of all the nodes.

What's Changed

Full Changelog: dstackai/dstack@0.18.24...0.18.25

0.18.24-v1

08 Nov 09:39
d4ea467
Compare
Choose a tag to compare

Gateway is optional

Previously, running any service required setting up a gateway. With this update, a gateway is no longer needed to run a service for development purposes.

Service endpoint

  • If no gateway is created, the service’s endpoint will be accessible at <dstack server URL>/proxy/services/<project name>/<run name>/.
  • If a service has a model mapping, the model will be accessible via the OpenAI-compatible endpoint at <dstack server URL>/proxy/models/<project name>/.

Note

While this change makes it much easier to use services for development, you will still need a gateway if you want to use a custom domain, enable HTTPS, or use auto-scaling.

Gateway property

If a gateway is created but isn’t needed for a service, set the gateway property to false. If you have multiple gateways, you can choose one by setting gateway to the name of the gateway.

Model mapping

If the model is in OpenAI format, you can now use a shorter syntax for model mapping—simply set the model property to the model's name.

type: service

image: ollama/ollama
commands:
  - ollama serve &
  - sleep 3
  - ollama pull llama3.1
  - fg
port: 11434

model: llama3.1

The longer syntax with more settings remains available.

Updating running services

Previously, updating a service’s configuration required restarting it. Now, you can update the replicas and scaling properties in place. Just run dstack apply, and the changes will take effect. New replicas will be created while the old ones continue running.

What's changed

New contributors

Full changelog: dstackai/dstack@0.18.22...0.18.24

0.18.22-v1

31 Oct 15:10
d4ea467
Compare
Choose a tag to compare

Custom OS images on AWS

You can now configure your own AMIs for the AWS backend.

projects:
- name: main
  backends:
  - type: aws
    creds:
      type: default
    os_images:
      cpu:
        name: my-cpu-ami
        user: admin
      nvidia:
        name: my-nvidia-ami
        user: ubuntu

This can be used as an alternative way to bring your software or data to the AWS instance and mount it into your runs using Instance volumes.

See the AWS backend reference for details on configuring OS images. Support for custom OS images in other backends is coming in future releases.

What's Changed

Full Changelog: dstackai/dstack@0.18.21...0.18.22

0.18.21-v2

31 Oct 05:45
d4ea467
Compare
Choose a tag to compare

This release fixes a bug with GCP Cloud NAT check taking place during provisioning even with nat_check: false (dstackai/dstack#1924).

0.18.21-v1

30 Oct 11:12
d4ea467
Compare
Choose a tag to compare

0.18.21

The update includes all the features and bug fixes from version 0.18.21.

Instance volumes

In addition to network volumes, dstack now allows to mount instance (host) filesystems inside the run container. As contents of the instance volume are specific to the instance where the run is executed, such volumes can be used in cases where data persistence is not critical, for example, as a cache:

type: task

commands:
  - pip install -r requirements.txt

volumes:
  # reuse pip cache between runs
  - /dstack-cache/pip:/root/.cache/pip

See the instance volumes documentation for more information.

Azure custom and private networks

dstack now supports configuring custom Azure networks, which was only possible on AWS and GCP before. In addition, you can now configure dstack to provision instances without public IPs on Azure to take advantage of private networks:

type: azure
  tenant_id: my_tenant_id
  subscription_id: my_subscription_id
  regions: [westeurope]
  public_ips: false
  vpc_ids:
    westeurope: test-networks-rg/test-network
  creds:
    type: default

Read more about Azure networking configuration in the docs.

Python 3.13 support for dstack package

The previous 0.18.20 release added support for Python 3.13 in run configurations. This release updates the dstack package itself so that it works under Python 3.13. The dstack package also drops Python 3.8 support that reached end of life. Note that python: 3.8 in run configurations is deprecated but still supported.

Multi-job UI

The control plain UI now displays detailed info on each job in the run, improving support for multi-node tasks and replicated services:

Screenshot 2024-10-30 at 15 09 03

What's Changed

New Contributors

Full Changelog: dstackai/dstack@0.18.20...0.18.21

0.18.20-v1

23 Oct 10:19
d4ea467
Compare
Choose a tag to compare

0.18.20

The update includes all the features and bug fixes from version 0.18.20.

Python 3.13 support

Following a recent Python 3.13 release on October 7, 2024, dstack now supports python: 3.13 in run configurations. python: 3.8 is still supported but deprecated.

Note: the dstack package itself does not yet work on Python 3.13 due to some limitations in dependencies. We're looking into supporting it as well.

Custom backend tags

You can now define custom tags that dstack will assign to all cloud resources it creates including instances and volumes. The tags are defined in the backend configuration:

type: aws
tags:
  company_department: finance
  company_project: dstack
  company_user: victor
creds:
  type: default

Custom tags are supported for AWS, Azure, and GCP.

Improved support of AWS private subnets

Previously, when configuring an AWS backend to use private subnets (public_ips: false), dstack would require a NAT Gateway. Now dstack supports more networking setups that provide outbound internet traffic including NAT Gateway, Transit Gateway, and VPC Peering Connection.

New required permissions

  • dstack now sets labels on GCP volumes which requires a compute.disks.setLabels permission.

Deprecations

  • python: 3.8 in run configurations is deprecated.

What's Changed

Full Changelog: dstackai/dstack@0.18.19...0.18.20

0.18.18-v1

18 Oct 06:22
d4ea467
Compare
Choose a tag to compare

0.18.18

The update includes all the features and bug fixes from version 0.18.18.

Hardware metrics

The CLI introduces a new command, dstack stats, which displays real-time hardware metrics for runs, including CPU, memory, and GPU usage per replica and job.

$ dstack stats hot-frog-1
 NAME        CPU  MEMORY           GPU                        
 hot-frog-1  2%   15307MB/49152MB  #0 22764MB/24576MB 0% Util 

Use the -w option to view stats updating every few seconds in the loop.

You can also retrieve the metrics using the REST API.

Docker inside dstack

Run configurations now have a new optional privileged property (equivalent to the --privileged Docker CLI flag). When it is set to true, the run container gets extended privileges, making it possible to use Docker insidedstack.

To use Docker and Docker Compose within dstack, set the image property to dstackai/dind. Additionally, you must invoke start-dockerd as the first command to start the Docker daemon.

type: task
name: misc-task-dind

image: dstackai/dind
privileged: true

commands:
  - start-dockerd
  - docker compose up
Dev environment example
type: dev-environment
name: vscode-dind

image: dstackai/dind
privileged: true
ide: vscode

init:
  - start-dockerd

See more examples in examples/misc/dind.

Note

The privileged property is only supported by VM backends (all backends except runpod, vastai, and kubernetes).

What's changed

New contributors

Full changelog: dstackai/dstack@0.18.17...0.18.18

0.18.17-v1

09 Oct 10:25
d4ea467
Compare
Choose a tag to compare

0.18.17

The update includes all the features and bug fixes from version 0.18.17.

On-prem AMD GPU support

dstack now supports SSH fleets with AMD GPUs. Hosts should be pre-installed with Docker and AMDGPU-DKMS kernel driver (e.g. via native package manager or AMDGPU installer).

Elastic Fabric Adapter support

dstack now automatically enables AWS EFA if it is supported by the instance type, no extra configuration needed. The following EFA-enabled instance types are supported: p4d.24xlarge, g4dn.12xlarge, g4dn.16xlarge, g4dn.8xlarge, g4dn.metal, g5.12xlarge, g5.16xlarge, g5.24xlarge, g5.48xlarge, g5.8xlarge, g6.12xlarge, g6.16xlarge, g6.24xlarge, g6.48xlarge, g6.8xlarge, gr6.8xlarge.

Improved apply plan

Previously, dstack apply showed a plan only for run configurations. Now it shows a plan for all configuration types including fleets, volumes, and gateways. Here's a fleet plan showing configuration parameters and the offers that will be tried for provisioning:

✗ dstack apply -f .dstack/confs/fleet.yaml
 Project        main                           
 User           admin                          
 Configuration  .dstack/confs/fleet.yaml       
 Type           fleet                          
 Fleet type     cloud                          
 Nodes          2                              
 Placement      cluster                        
 Backends       aws                            
 Resources      2..xCPU, 8GB.., 100GB.. (disk) 
 Spot policy    on-demand                      

 #  BACKEND  REGION        INSTANCE   RESOURCES                   SPOT  PRICE    
 1  aws      eu-west-1     m5.large   2xCPU, 8GB, 100.0GB (disk)  no    $0.107   
 2  aws      eu-central-1  m5.large   2xCPU, 8GB, 100.0GB (disk)  no    $0.115   
 3  aws      eu-west-1     c5.xlarge  4xCPU, 8GB, 100.0GB (disk)  no    $0.192   
    ...                                                                          
 Shown 3 of 82 offers, $40.9447 max

Fleet my-cluster-fleet does not exist yet.
Create the fleet? [y/n]: 

Volumes UI

Server administrators and regular users can now see volumes in the UI.

What's Changed

New Contributors

Full Changelog: dstackai/dstack@0.18.16...0.18.17