Creating a Cluster¶
You can create a cluster from the console (Clusters → Create) or the
API (POST /v1/clusters). Both take the same inputs.
Inputs¶
| Field | Meaning |
|---|---|
| Name | A human label for the cluster. |
| Profile | The hardware profile for the nodes (e.g. gpu-l40s). |
| Node count | How many nodes to reserve, bounded by availability. |
| Image version | Golden image to boot from. Defaults to the current STABLE. |
| Failure policy | What to do if a node fails to provision (fail fast vs. best-effort). |
| Shared storage quota | Shared scratch capacity for the cluster, in GiB. |
| Init script (optional) | A script run on nodes after provisioning. |
Availability¶
The profile picker shows "N nodes available now." That number is the
count of pool nodes in the AVAILABLE state for that profile. If it reads
0, the fleet currently has no free machines of that type — either they're
all in use, or an operator needs to return machines to the pool. You can't
reserve more than are available.
Heterogeneous clusters (node groups)¶
A cluster can contain more than one profile by defining multiple node groups. Each group has its own profile and node count. Use this when a workload needs mixed hardware — for example GPU training nodes plus CPU pre-processing nodes in one cluster.
In the console, add a group per profile in the create form. Each group's count is validated against that profile's own availability.
What happens after you submit¶
sequenceDiagram
participant You
participant DC as DC Suite
participant Fleet
You->>DC: Create cluster (profile, count, image)
DC->>Fleet: Reserve N nodes of profile
Fleet-->>DC: Nodes reserved
DC->>Fleet: Power on + provision from image
DC->>DC: Configure networking, storage, access
DC-->>You: Cluster READY
The create call returns immediately with an operation id. The console
follows it for you; via the API you poll
GET /v1/clusters/{id}/operations/{opID} until it completes.
API example¶
curl -sS -X POST https://your-dc-suite.example.com/v1/clusters \
-H "Authorization: Bearer $DCS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "training-1",
"profile": "gpu-l40s",
"node_count": 2,
"image_version": "",
"failure_policy": "fail_fast",
"shared_storage_quota_gib": 512
}'
An empty image_version selects the current STABLE image. The response
contains the new cluster and an operation_id.
If creation fails¶
FAILEDwith "insufficient capacity" — fewer nodes were available than requested. Lower the count or wait for machines to return to the pool.FAILEDduring provisioning — a node couldn't boot the image or form the cluster. The detail page shows the reason; retry, or try a different image version.
Next: Managing Clusters.