from together import Together
client = Together()
cluster = client.beta.clusters.update("cluster_id", cluster_type="KUBERNETES", num_gpus=24)
print(cluster)
import Together from "together-ai";
const client = new Together();
const cluster = await client.beta.clusters.update({
cluster_id: "cluster_id",
cluster_type: "KUBERNETES",
num_gpus: 24,
})
console.log(cluster)
import Together from "together-ai";
const client = new Together();
const cluster = await client.beta.clusters.update({
cluster_id: "cluster_id",
cluster_type: "KUBERNETES",
num_gpus: 24,
})
console.log(cluster)
tg beta clusters update <cluster_id> \
--cluster-type KUBERNETES \
--num-gpus 24
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.together.ai/v1/compute/clusters/{cluster_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'num_gpus' => 123,
'reservation_end_time' => '2023-11-07T05:31:56Z',
'num_reserved_gpus' => 123,
'num_preemptible_gpus' => 123,
'num_capacity_pool_gpus' => 123,
'add_ons' => [
[
'name' => '<string>',
'config' => [
'dashboard' => [
'enabled' => true
],
'ingress' => [
'enabled' => true
],
'torchpass' => [
'enabled' => true
],
'slurm_web' => [
'enabled' => true
],
'headlamp' => [
'enabled' => true
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.together.ai/v1/compute/clusters/{cluster_id}"
payload := strings.NewReader("{\n \"num_gpus\": 123,\n \"reservation_end_time\": \"2023-11-07T05:31:56Z\",\n \"num_reserved_gpus\": 123,\n \"num_preemptible_gpus\": 123,\n \"num_capacity_pool_gpus\": 123,\n \"add_ons\": [\n {\n \"name\": \"<string>\",\n \"config\": {\n \"dashboard\": {\n \"enabled\": true\n },\n \"ingress\": {\n \"enabled\": true\n },\n \"torchpass\": {\n \"enabled\": true\n },\n \"slurm_web\": {\n \"enabled\": true\n },\n \"headlamp\": {\n \"enabled\": true\n }\n }\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.together.ai/v1/compute/clusters/{cluster_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"num_gpus\": 123,\n \"reservation_end_time\": \"2023-11-07T05:31:56Z\",\n \"num_reserved_gpus\": 123,\n \"num_preemptible_gpus\": 123,\n \"num_capacity_pool_gpus\": 123,\n \"add_ons\": [\n {\n \"name\": \"<string>\",\n \"config\": {\n \"dashboard\": {\n \"enabled\": true\n },\n \"ingress\": {\n \"enabled\": true\n },\n \"torchpass\": {\n \"enabled\": true\n },\n \"slurm_web\": {\n \"enabled\": true\n },\n \"headlamp\": {\n \"enabled\": true\n }\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.together.ai/v1/compute/clusters/{cluster_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"num_gpus\": 123,\n \"reservation_end_time\": \"2023-11-07T05:31:56Z\",\n \"num_reserved_gpus\": 123,\n \"num_preemptible_gpus\": 123,\n \"num_capacity_pool_gpus\": 123,\n \"add_ons\": [\n {\n \"name\": \"<string>\",\n \"config\": {\n \"dashboard\": {\n \"enabled\": true\n },\n \"ingress\": {\n \"enabled\": true\n },\n \"torchpass\": {\n \"enabled\": true\n },\n \"slurm_web\": {\n \"enabled\": true\n },\n \"headlamp\": {\n \"enabled\": true\n }\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"cluster_id": "<string>",
"cluster_type": "KUBERNETES",
"region": "<string>",
"gpu_type": "H100_SXM",
"cluster_name": "<string>",
"volumes": [
{
"volume_id": "<string>",
"volume_name": "<string>",
"size_tib": 123,
"status": "<string>"
}
],
"status": "WaitingForControlPlaneNodes",
"control_plane_nodes": [
{
"node_id": "<string>",
"status": "<string>",
"host_name": "<string>",
"num_cpu_cores": 123,
"memory_gib": 123,
"network": "<string>",
"phase_transitions": [
{
"phase": "NODE_PHASE_PENDING",
"transition_time": "2023-11-07T05:31:56Z"
}
],
"public_ipv4": "<string>"
}
],
"gpu_worker_nodes": [
{
"node_id": "<string>",
"status": "<string>",
"host_name": "<string>",
"num_cpu_cores": 123,
"num_gpus": 123,
"memory_gib": 123,
"networks": [
"<string>"
],
"phase_transitions": [
{
"phase": "NODE_PHASE_PENDING",
"transition_time": "2023-11-07T05:31:56Z"
}
],
"instance_id": "<string>",
"latest_remediation": {
"id": "<string>",
"cluster_id": "<string>",
"instance_id": "<string>",
"mode": "REMEDIATION_MODE_VM_ONLY",
"trigger": "REMEDIATION_TRIGGER_MANUAL",
"state": "PENDING_APPROVAL",
"reason": "<string>",
"active_health_check_run_id": "<string>",
"passive_health_check_event_id": "<string>",
"requested_by": "<string>",
"create_time": "2023-11-07T05:31:56Z",
"reviewed_by": "<string>",
"review_time": "2023-11-07T05:31:56Z",
"review_comment": "<string>",
"start_time": "2023-11-07T05:31:56Z",
"end_time": "2023-11-07T05:31:56Z",
"error_message": "<string>",
"update_time": "2023-11-07T05:31:56Z",
"instance_name": "<string>",
"linked_alerts": [
{
"passive_health_check_alert_id": "<string>",
"cluster_id": "<string>",
"target_vm": "<string>",
"alert_name": "<string>",
"severity": "PHC_SEVERITY_INFO",
"annotations": {},
"started_at": "2023-11-07T05:31:56Z",
"annotation": {
"title": "<string>",
"description": "<string>",
"summary_line": "<string>",
"xid": {
"events": [
{
"xid_code": "<string>",
"mnemonic": "<string>",
"count": 123
}
]
},
"slurm_node_unavailable": {
"reason": "<string>"
}
},
"instance_id": "<string>",
"resolved_at": "2023-11-07T05:31:56Z",
"node_remediation_intent_id": "<string>"
}
]
},
"slurm_worker_hostname": "<string>",
"marked_for_deletion": true,
"public_ipv4": "<string>",
"ib_hca_type": "<string>",
"ib_hca_count": 123,
"nvswitch_count": 123,
"nvswitch_type": "<string>",
"ephemeral_storage": "<string>",
"auto_remediation_enabled": true,
"deleted_at": "2023-11-07T05:31:56Z"
}
],
"kube_config": "<string>",
"num_gpus": 123,
"cuda_version": "<string>",
"nvidia_driver_version": "<string>",
"project_id": "<string>",
"num_cpu_workers": 123,
"phase_transitions": [
{
"phase": "CLUSTER_PHASE_QUEUED",
"transition_time": "2023-11-07T05:31:56Z"
}
],
"desired_preemptible_gpus": 123,
"allocated_preemptible_gpus": 123,
"billing_type": "RESERVED",
"add_ons": [
{
"name": "<string>",
"add_on_type": "<string>",
"config": {
"dashboard": {
"enabled": true
},
"ingress": {
"enabled": true
},
"torchpass": {
"enabled": true
},
"slurm_web": {
"enabled": true
},
"headlamp": {
"enabled": true
}
},
"state": {
"dashboard": {},
"ingress": {},
"torchpass": {},
"slurm_web": {},
"headlamp": {}
}
}
],
"num_capacity_pool_gpus": 123,
"num_reserved_gpus": 123,
"duration_hours": 123,
"slurm_shm_size_gib": 123,
"capacity_pool_id": "<string>",
"reservation_start_time": "2023-11-07T05:31:56Z",
"reservation_end_time": "2023-11-07T05:31:56Z",
"install_traefik": true,
"created_at": "2023-11-07T05:31:56Z",
"oidc_config": {
"issuer_url": "<string>",
"client_id": "<string>",
"username_claim": "<string>",
"username_prefix": "<string>",
"group_claim": "<string>",
"group_prefix": "<string>",
"ca_cert": "<string>"
},
"cluster_config": {
"load_balancer": "NONE",
"kubernetes_dashboard_enabled": true,
"jumphost_enabled": true,
"slurm_startup_scripts": {
"worker_prolog": "<string>",
"worker_epilog": "<string>",
"controller_prolog": "<string>",
"controller_epilog": "<string>",
"login_init_script": "<string>",
"nodeset_init_script": "<string>",
"extra_slurm_conf": "<string>"
},
"ingress": {
"enabled": true
},
"observability": {
"enabled": true
},
"gpu_operator_version": "<string>",
"network_operator_version": "<string>",
"ssh_ca_enabled": true
},
"machine_cluster_id": "<string>",
"first_ready_at": "2023-11-07T05:31:56Z",
"is_in_substrate": true,
"control_plane_ready": true,
"ums_project_id": "<string>",
"ums_org_id": "<string>",
"os_image": "<string>",
"nvidia_driver_version_id": "<string>",
"deleted_gpu_worker_nodes": [
{
"node_id": "<string>",
"status": "<string>",
"host_name": "<string>",
"num_cpu_cores": 123,
"num_gpus": 123,
"memory_gib": 123,
"networks": [
"<string>"
],
"phase_transitions": [
{
"phase": "NODE_PHASE_PENDING",
"transition_time": "2023-11-07T05:31:56Z"
}
],
"instance_id": "<string>",
"latest_remediation": {
"id": "<string>",
"cluster_id": "<string>",
"instance_id": "<string>",
"mode": "REMEDIATION_MODE_VM_ONLY",
"trigger": "REMEDIATION_TRIGGER_MANUAL",
"state": "PENDING_APPROVAL",
"reason": "<string>",
"active_health_check_run_id": "<string>",
"passive_health_check_event_id": "<string>",
"requested_by": "<string>",
"create_time": "2023-11-07T05:31:56Z",
"reviewed_by": "<string>",
"review_time": "2023-11-07T05:31:56Z",
"review_comment": "<string>",
"start_time": "2023-11-07T05:31:56Z",
"end_time": "2023-11-07T05:31:56Z",
"error_message": "<string>",
"update_time": "2023-11-07T05:31:56Z",
"instance_name": "<string>",
"linked_alerts": [
{
"passive_health_check_alert_id": "<string>",
"cluster_id": "<string>",
"target_vm": "<string>",
"alert_name": "<string>",
"severity": "PHC_SEVERITY_INFO",
"annotations": {},
"started_at": "2023-11-07T05:31:56Z",
"annotation": {
"title": "<string>",
"description": "<string>",
"summary_line": "<string>",
"xid": {
"events": [
{
"xid_code": "<string>",
"mnemonic": "<string>",
"count": 123
}
]
},
"slurm_node_unavailable": {
"reason": "<string>"
}
},
"instance_id": "<string>",
"resolved_at": "2023-11-07T05:31:56Z",
"node_remediation_intent_id": "<string>"
}
]
},
"slurm_worker_hostname": "<string>",
"marked_for_deletion": true,
"public_ipv4": "<string>",
"ib_hca_type": "<string>",
"ib_hca_count": 123,
"nvswitch_count": 123,
"nvswitch_type": "<string>",
"ephemeral_storage": "<string>",
"auto_remediation_enabled": true,
"deleted_at": "2023-11-07T05:31:56Z"
}
],
"node_lifecycle_events": [
{
"node_id": "<string>",
"reason": "<string>",
"message": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
]
}Update a GPU cluster
Update the configuration of an existing GPU cluster.
from together import Together
client = Together()
cluster = client.beta.clusters.update("cluster_id", cluster_type="KUBERNETES", num_gpus=24)
print(cluster)
import Together from "together-ai";
const client = new Together();
const cluster = await client.beta.clusters.update({
cluster_id: "cluster_id",
cluster_type: "KUBERNETES",
num_gpus: 24,
})
console.log(cluster)
import Together from "together-ai";
const client = new Together();
const cluster = await client.beta.clusters.update({
cluster_id: "cluster_id",
cluster_type: "KUBERNETES",
num_gpus: 24,
})
console.log(cluster)
tg beta clusters update <cluster_id> \
--cluster-type KUBERNETES \
--num-gpus 24
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.together.ai/v1/compute/clusters/{cluster_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'num_gpus' => 123,
'reservation_end_time' => '2023-11-07T05:31:56Z',
'num_reserved_gpus' => 123,
'num_preemptible_gpus' => 123,
'num_capacity_pool_gpus' => 123,
'add_ons' => [
[
'name' => '<string>',
'config' => [
'dashboard' => [
'enabled' => true
],
'ingress' => [
'enabled' => true
],
'torchpass' => [
'enabled' => true
],
'slurm_web' => [
'enabled' => true
],
'headlamp' => [
'enabled' => true
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.together.ai/v1/compute/clusters/{cluster_id}"
payload := strings.NewReader("{\n \"num_gpus\": 123,\n \"reservation_end_time\": \"2023-11-07T05:31:56Z\",\n \"num_reserved_gpus\": 123,\n \"num_preemptible_gpus\": 123,\n \"num_capacity_pool_gpus\": 123,\n \"add_ons\": [\n {\n \"name\": \"<string>\",\n \"config\": {\n \"dashboard\": {\n \"enabled\": true\n },\n \"ingress\": {\n \"enabled\": true\n },\n \"torchpass\": {\n \"enabled\": true\n },\n \"slurm_web\": {\n \"enabled\": true\n },\n \"headlamp\": {\n \"enabled\": true\n }\n }\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.together.ai/v1/compute/clusters/{cluster_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"num_gpus\": 123,\n \"reservation_end_time\": \"2023-11-07T05:31:56Z\",\n \"num_reserved_gpus\": 123,\n \"num_preemptible_gpus\": 123,\n \"num_capacity_pool_gpus\": 123,\n \"add_ons\": [\n {\n \"name\": \"<string>\",\n \"config\": {\n \"dashboard\": {\n \"enabled\": true\n },\n \"ingress\": {\n \"enabled\": true\n },\n \"torchpass\": {\n \"enabled\": true\n },\n \"slurm_web\": {\n \"enabled\": true\n },\n \"headlamp\": {\n \"enabled\": true\n }\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.together.ai/v1/compute/clusters/{cluster_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"num_gpus\": 123,\n \"reservation_end_time\": \"2023-11-07T05:31:56Z\",\n \"num_reserved_gpus\": 123,\n \"num_preemptible_gpus\": 123,\n \"num_capacity_pool_gpus\": 123,\n \"add_ons\": [\n {\n \"name\": \"<string>\",\n \"config\": {\n \"dashboard\": {\n \"enabled\": true\n },\n \"ingress\": {\n \"enabled\": true\n },\n \"torchpass\": {\n \"enabled\": true\n },\n \"slurm_web\": {\n \"enabled\": true\n },\n \"headlamp\": {\n \"enabled\": true\n }\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"cluster_id": "<string>",
"cluster_type": "KUBERNETES",
"region": "<string>",
"gpu_type": "H100_SXM",
"cluster_name": "<string>",
"volumes": [
{
"volume_id": "<string>",
"volume_name": "<string>",
"size_tib": 123,
"status": "<string>"
}
],
"status": "WaitingForControlPlaneNodes",
"control_plane_nodes": [
{
"node_id": "<string>",
"status": "<string>",
"host_name": "<string>",
"num_cpu_cores": 123,
"memory_gib": 123,
"network": "<string>",
"phase_transitions": [
{
"phase": "NODE_PHASE_PENDING",
"transition_time": "2023-11-07T05:31:56Z"
}
],
"public_ipv4": "<string>"
}
],
"gpu_worker_nodes": [
{
"node_id": "<string>",
"status": "<string>",
"host_name": "<string>",
"num_cpu_cores": 123,
"num_gpus": 123,
"memory_gib": 123,
"networks": [
"<string>"
],
"phase_transitions": [
{
"phase": "NODE_PHASE_PENDING",
"transition_time": "2023-11-07T05:31:56Z"
}
],
"instance_id": "<string>",
"latest_remediation": {
"id": "<string>",
"cluster_id": "<string>",
"instance_id": "<string>",
"mode": "REMEDIATION_MODE_VM_ONLY",
"trigger": "REMEDIATION_TRIGGER_MANUAL",
"state": "PENDING_APPROVAL",
"reason": "<string>",
"active_health_check_run_id": "<string>",
"passive_health_check_event_id": "<string>",
"requested_by": "<string>",
"create_time": "2023-11-07T05:31:56Z",
"reviewed_by": "<string>",
"review_time": "2023-11-07T05:31:56Z",
"review_comment": "<string>",
"start_time": "2023-11-07T05:31:56Z",
"end_time": "2023-11-07T05:31:56Z",
"error_message": "<string>",
"update_time": "2023-11-07T05:31:56Z",
"instance_name": "<string>",
"linked_alerts": [
{
"passive_health_check_alert_id": "<string>",
"cluster_id": "<string>",
"target_vm": "<string>",
"alert_name": "<string>",
"severity": "PHC_SEVERITY_INFO",
"annotations": {},
"started_at": "2023-11-07T05:31:56Z",
"annotation": {
"title": "<string>",
"description": "<string>",
"summary_line": "<string>",
"xid": {
"events": [
{
"xid_code": "<string>",
"mnemonic": "<string>",
"count": 123
}
]
},
"slurm_node_unavailable": {
"reason": "<string>"
}
},
"instance_id": "<string>",
"resolved_at": "2023-11-07T05:31:56Z",
"node_remediation_intent_id": "<string>"
}
]
},
"slurm_worker_hostname": "<string>",
"marked_for_deletion": true,
"public_ipv4": "<string>",
"ib_hca_type": "<string>",
"ib_hca_count": 123,
"nvswitch_count": 123,
"nvswitch_type": "<string>",
"ephemeral_storage": "<string>",
"auto_remediation_enabled": true,
"deleted_at": "2023-11-07T05:31:56Z"
}
],
"kube_config": "<string>",
"num_gpus": 123,
"cuda_version": "<string>",
"nvidia_driver_version": "<string>",
"project_id": "<string>",
"num_cpu_workers": 123,
"phase_transitions": [
{
"phase": "CLUSTER_PHASE_QUEUED",
"transition_time": "2023-11-07T05:31:56Z"
}
],
"desired_preemptible_gpus": 123,
"allocated_preemptible_gpus": 123,
"billing_type": "RESERVED",
"add_ons": [
{
"name": "<string>",
"add_on_type": "<string>",
"config": {
"dashboard": {
"enabled": true
},
"ingress": {
"enabled": true
},
"torchpass": {
"enabled": true
},
"slurm_web": {
"enabled": true
},
"headlamp": {
"enabled": true
}
},
"state": {
"dashboard": {},
"ingress": {},
"torchpass": {},
"slurm_web": {},
"headlamp": {}
}
}
],
"num_capacity_pool_gpus": 123,
"num_reserved_gpus": 123,
"duration_hours": 123,
"slurm_shm_size_gib": 123,
"capacity_pool_id": "<string>",
"reservation_start_time": "2023-11-07T05:31:56Z",
"reservation_end_time": "2023-11-07T05:31:56Z",
"install_traefik": true,
"created_at": "2023-11-07T05:31:56Z",
"oidc_config": {
"issuer_url": "<string>",
"client_id": "<string>",
"username_claim": "<string>",
"username_prefix": "<string>",
"group_claim": "<string>",
"group_prefix": "<string>",
"ca_cert": "<string>"
},
"cluster_config": {
"load_balancer": "NONE",
"kubernetes_dashboard_enabled": true,
"jumphost_enabled": true,
"slurm_startup_scripts": {
"worker_prolog": "<string>",
"worker_epilog": "<string>",
"controller_prolog": "<string>",
"controller_epilog": "<string>",
"login_init_script": "<string>",
"nodeset_init_script": "<string>",
"extra_slurm_conf": "<string>"
},
"ingress": {
"enabled": true
},
"observability": {
"enabled": true
},
"gpu_operator_version": "<string>",
"network_operator_version": "<string>",
"ssh_ca_enabled": true
},
"machine_cluster_id": "<string>",
"first_ready_at": "2023-11-07T05:31:56Z",
"is_in_substrate": true,
"control_plane_ready": true,
"ums_project_id": "<string>",
"ums_org_id": "<string>",
"os_image": "<string>",
"nvidia_driver_version_id": "<string>",
"deleted_gpu_worker_nodes": [
{
"node_id": "<string>",
"status": "<string>",
"host_name": "<string>",
"num_cpu_cores": 123,
"num_gpus": 123,
"memory_gib": 123,
"networks": [
"<string>"
],
"phase_transitions": [
{
"phase": "NODE_PHASE_PENDING",
"transition_time": "2023-11-07T05:31:56Z"
}
],
"instance_id": "<string>",
"latest_remediation": {
"id": "<string>",
"cluster_id": "<string>",
"instance_id": "<string>",
"mode": "REMEDIATION_MODE_VM_ONLY",
"trigger": "REMEDIATION_TRIGGER_MANUAL",
"state": "PENDING_APPROVAL",
"reason": "<string>",
"active_health_check_run_id": "<string>",
"passive_health_check_event_id": "<string>",
"requested_by": "<string>",
"create_time": "2023-11-07T05:31:56Z",
"reviewed_by": "<string>",
"review_time": "2023-11-07T05:31:56Z",
"review_comment": "<string>",
"start_time": "2023-11-07T05:31:56Z",
"end_time": "2023-11-07T05:31:56Z",
"error_message": "<string>",
"update_time": "2023-11-07T05:31:56Z",
"instance_name": "<string>",
"linked_alerts": [
{
"passive_health_check_alert_id": "<string>",
"cluster_id": "<string>",
"target_vm": "<string>",
"alert_name": "<string>",
"severity": "PHC_SEVERITY_INFO",
"annotations": {},
"started_at": "2023-11-07T05:31:56Z",
"annotation": {
"title": "<string>",
"description": "<string>",
"summary_line": "<string>",
"xid": {
"events": [
{
"xid_code": "<string>",
"mnemonic": "<string>",
"count": 123
}
]
},
"slurm_node_unavailable": {
"reason": "<string>"
}
},
"instance_id": "<string>",
"resolved_at": "2023-11-07T05:31:56Z",
"node_remediation_intent_id": "<string>"
}
]
},
"slurm_worker_hostname": "<string>",
"marked_for_deletion": true,
"public_ipv4": "<string>",
"ib_hca_type": "<string>",
"ib_hca_count": 123,
"nvswitch_count": 123,
"nvswitch_type": "<string>",
"ephemeral_storage": "<string>",
"auto_remediation_enabled": true,
"deleted_at": "2023-11-07T05:31:56Z"
}
],
"node_lifecycle_events": [
{
"node_id": "<string>",
"reason": "<string>",
"message": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The ID of the cluster to update
Body
Type of cluster to update.
KUBERNETES, SLURM Target GPU count for the cluster. When omitted, the server keeps the current GPU count from cluster metadata (use for config-only or decommission-time-only updates).
Timestamp at which the cluster should be decommissioned. Only accepted for prepaid clusters.
Show child attributes
Show child attributes
Number of reserved GPUs to update to. This field is only applicable for clusters with RESERVED billing type.
Updated desired number of preemptible GPUs for the cluster. When omitted, the current value is preserved. Must be a multiple of 8.
Number of GPUs to draw from the cluster's capacity pool. Only valid for clusters created with a capacity_pool_id. Must be a multiple of 8 and not exceed num_gpus. When omitted, the current value is preserved.
Add-ons to update on the cluster. Each entry identifies an existing add-on by name and provides the new external config to merge.
Show child attributes
Show child attributes
Response
OK
Type of cluster.
KUBERNETES, SLURM H100_SXM, H200_SXM, RTX_6000_PCI, L40_PCIE, B200_SXM, H100_SXM_INF, B300_SXM Show child attributes
Show child attributes
Current status of the GPU cluster.
WaitingForControlPlaneNodes, WaitingForDataPlaneNodes, WaitingForSubnet, WaitingForSharedVolume, InstallingDrivers, RunningAcceptanceTests, Paused, OnDemandComputePaused, Ready, Degraded, Deleting Show child attributes
Show child attributes
Show child attributes
Show child attributes
Number of CPU-only worker nodes in the cluster.
Cluster-level phase transition history.
Show child attributes
Show child attributes
Customer's requested number of preemptible GPUs. Set on cluster create or update; persists until changed.
Actual number of preemptible GPUs currently allocated to the cluster. Updated asynchronously by the fulfillment and reclamation workers; may be less than desired_preemptible_gpus when capacity is constrained.
Billing type for the cluster (RESERVED, ON_DEMAND, or SCHEDULED_CAPACITY).
RESERVED, ON_DEMAND, SCHEDULED_CAPACITY Enabled add-ons on this cluster. Only add-ons with enabled=true in their config are returned.
Show child attributes
Show child attributes
Number of GPUs to draw from a capacity pool. A component of the overall num_gpus, alongside num_reserved_gpus.
Number of prepaid reserved GPUs for this cluster. A component of the overall num_gpus, alongside num_capacity_pool_gpus.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
ID of the machine cluster backing this GPU cluster.
Timestamp when the cluster first reached the Ready phase.
Whether the cluster is managed inside a substrate environment.
Whether the control plane is currently ready.
UMS project ID associated with this cluster.
UMS organization ID associated with this cluster.
Data-volume image name for GPU worker nodes.
Internal NVIDIA version ID for this cluster's driver and CUDA combination.
GPU worker nodes retained after they left the live data plane. These are separate from gpu_worker_nodes and must not be counted as live capacity.
Show child attributes
Show child attributes
Recent node lifecycle events such as scale-up, scale-down, and preemption. Combine these with live and deleted node lists to render the cluster timeline.
Show child attributes
Show child attributes
Was this page helpful?