Skip to content

0.20.9

Latest

Choose a tag to compare

@r4victor r4victor released this 12 Feb 13:12
· 7 commits to master since this release
c4ed6ca

Events

UI

In the UI, both the Project and User pages now have an Events tab, providing a convenient way to track events without manually using the global filters.

On the User page, the Events tab shows events where the current user is either the Actor (the one who initiated the operation) or the Target user (the user the command was applied to):

On the Project page, the Events tab shows all events within the current project.

CLI

dstack attach

The dstack attach command now waits until the run is provisioned (similar to dstack apply), shows live progress, and attaches only after the run reaches the running state.

In addition, if a task defines ports and any of those ports cannot be forwarded to localhost (for example, because the port is already in use), both dstack attach and dstack apply now show a clear error message with a -p suggestion:

Failed to attach: port 8000 is already in use. Use -p in dstack attach to override the local port mapping, e.g. -p 8001:8000.

Kubernetes

Resources and offers

The way the kubernetes backend fetches offers has been updated. Previously, the offers reflected the node resources. Now, dstack returns only the offers that satisfy the requested range at its minimum value; for example, if you request gpu: 0..8, dstack returns only offers with gpu: 0. This makes the displayed offers closer to how runs are actually provisioned by Kubernetes.

dstack offer -b kubernetes --gpu 0..8 will return only offers with gpu: 0.

To see offers with gpu: 1, you must pass gpu: 1 or gpu: 1.. to dstack offer or dstack apply.

Note

We understand that this differs from how offers are shown for other backends, but this is the first step in improving how the kubernetes backend does provisioning. Feedback is welcome.

Proxy jump

To proxy SSH traffic inside containers, the kubernetes backend creates a proxy jump pod on startup. This requires at least one cluster node to have an external IP and relies on Kubernetes to forward this traffic even if the proxy jump pod is not running on the node with the external IP.

However, not all Kubernetes services support this behavior; for example, Nebius's Managed Kubernetes requires the proxy jump pod to run on a node with an external IP. To support these cases, the kubernetes backend now double-checks that the proxy jump pod is created correctly.

Note

The most reliable approach in such environments is still to ensure that all cluster nodes have an external IP. Feedback is welcome.

Fleets

Instances in SSH fleets are no longer automatically terminated when they become unreachable over SSH. This prevents premature termination of SSH fleet instances due to transient SSH connectivity issues.

Docs

The reference pages for .dstack.yml configurations now include more information on supported types for every property, making them more useful.

What's changed

Full changelog: 0.20.8...0.20.9