Skip to content

Introduce Fleets for cluster provisioning and management #1327

Closed

Description

@r4victor

Currently, dstack provides the dstack pool add command to provision cloud instances and the dstack pool add-ssh command to add on-prem instances via ssh. This interface has several limitations. The major one is that there is no way to provision/add clusters. Managing clusters via pools is also not optimal.

The proposal is to introduce fleets for provisioning and managing instances and clusters of instances. Fleets are to be provisioned with dstack apply. Here's what fleet configuration will look like:

# cloud fleet
type: fleet
name: my-fleet
nodes: 4
placement: cluster/any
resources:
# ... all profile params
# ssh fleet
type: fleet
name: my-ssh-fleet
ssh:
  user: ubuntu
  ssh_key: ~/.ssh/key.pem
  port: 22
  network: "1.0.0.0/24"
  hosts:
    - "1.1.1.1"
    - "2.2.2.2"
    - hostname: "3.3.3.3"
      user: different-user
    - hostname: "4.4.4.4"
      ssh_key: ~/.ssh/different-key.pem

Activity

  1. peterschmidt85 commented on Jun 12, 2024

    @peterschmidt85
    Contributor

    type: instance or cluster? :)

  2. r4victor commented on Jun 13, 2024

    @r4victor
    CollaboratorAuthor

    I'd start with instance since it's what dstack pool currently works with. We can discuss how dstack supposed to work with clusters in a separate issue: we could expand instance configuration to be able to provision multiple cluster nodes (may be as simple as specifying nodes: 8) or introducing a separate cluster configuration.

  3. peterschmidt85 commented on Jun 13, 2024

    @peterschmidt85
    Contributor

    I wouldn't rush and at least discuss this before implementing.

  4. self-assigned this
    on Jul 10, 2024
  5. changed the title [-]Support adding instances with `dstack apply`[/-] [+]Introduce Fleets for cluster provisioning and management[/+] on Jul 12, 2024
  6. r4victor commented on Jul 12, 2024

    @r4victor
    CollaboratorAuthor

    The description is updated to use fleet configuration type.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions