Scale a node pool
Sets the pool's node count and answers 202 with the pool. Scaling down removes nodes and whatever runs on them, draining each one first. A cluster that is creating, deleting or failed answers 409 INVALID_CLUSTER_STATE; a failed cluster has no control plane to join. A legacy API key needs clusters:write.
Required permission
Requires the kubernetes.write permission. See Permissions for the roles and API key permissions that include it.
Command line
The orl CLI wraps this endpoint:
orl kube node-pool scale <id> <pool-id> --count <count>apiKeyAuthorizationBearer <token>OpenRelay API key. Send it as Authorization: Bearer or_… (legacy vl_… keys still work).
id*stringpoolId*stringapplication/json- body
count*integerThe pool's new node count. Delete the pool to remove every node.
1 <= value <= 100expectedCount?integerOptional count the caller reviewed. If the current count differs, answers 409 CONCURRENT_UPDATE without scaling. The comparison and write are atomic.
1 <= value <= 100Scaling started
application/json- response
A set of identical whole-host nodes in one cluster.
id*stringclusterId*stringname*stringsku*What every node in a pool is: exactly one of gpuModelId or cpuSku. Nodes are whole hosts, so a GPU node is a host of that model with every GPU passed through to it, and a CPU node is a whole CPU host. A cluster mixes SKUs through several pools.
1 <= properties <= 1count*integerNodes the pool holds once it converges.
readyCount*integerNodes that joined the cluster and are Ready.
status*string"creating""ready""scaling""deleting""failed"createdAt*stringcurl -X POST 'https://api.openrelay.inc/v1/kubernetes/clusters/string/node-pools/string/scale' \ -H 'Content-Type: application/json' \ -d '{ "count": 1}'{ "id": "string", "clusterId": "string", "name": "string", "sku": { "gpuModelId": "string" }, "count": 0, "readyCount": 0, "status": "creating", "createdAt": "string"}Delete a node pool DELETE
Starts draining and removing every node in the pool, then the pool, and answers 202 with the pool as deleting; a pool with no nodes is deleted at once. Poll getKubernetesNodePool, which answers 404 once the pool is removed. A cluster that is deleting answers 409 INVALID_CLUSTER_STATE. A legacy API key needs clusters:write.
List a cluster's nodes GET
Returns a cluster's nodes as a cursor-paginated page, each with its pool, registration state and Ready condition; filter to one pool with nodePoolId. A legacy API key needs clusters:read.