Skip to content

0.20.21

Latest

Choose a tag to compare

@un-def un-def released this 21 May 12:43
· 7 commits to master since this release
ab4d4c0

Backends

JarvisLabs

This release adds JarvisLabs as a new backend, allowing dstack to provision GPU and CPU VMs on JarvisLabs, including spot GPU instances.

To configure the backend, log into your JarvisLabs account, create an API key, and add it to ~/.dstack/server/config.yml:

projects:
- name: main
  backends:
    - type: jarvislabs
      creds:
        type: api_key
        api_key: ...

Kubernetes

Multiple clusters

A single kubernetes backend can now manage multiple Kubernetes clusters. Each cluster is selected via a kubeconfig context and becomes its own dstack region:

projects:
- name: main
  backends:
  - type: kubernetes

    kubeconfig:
      filename: ~/.kube/config

    contexts:
    - name: gpu-cluster-a
    - name: gpu-cluster-b

Each context can configure its own proxy_jump.hostname and proxy_jump.port, and the namespace is taken from each kubeconfig context. When creating a dstack volume or gateway, the region field selects which cluster the resource is provisioned in.

The previous single-cluster configuration (without contexts) continues to work but is no longer recommended and may be removed in the future. Refer to the backends docs for the up-to-date configuration and migration guidance.

Object labeling

All dstack-managed Kubernetes resources (jump pods, job pods, gateways, volumes, registry-auth secrets, services) now share a consistent set of labels, making it easier to filter and audit dstack resources with kubectl:

  • app.kubernetes.io/name=dstack-{ssh-proxy,job,gateway,volume}
  • app.kubernetes.io/instance
  • app.kubernetes.io/managed-by=dstack
  • k8s.dstack.ai/project
  • k8s.dstack.ai/name (if applicable)
  • k8s.dstack.ai/user (if applicable)

Bug fixes

  • Jobs no longer retry indefinitely when the target fleet is at capacity.
  • Negative retry.duration values (e.g. -1) are now rejected during configuration parsing instead of silently producing a nonsensical retry spec.

What's changed

New contributors

Full changelog: 0.20.20...0.20.21