Skip to content
OpenRelay is in early access, and the /v1 API is stable. New capabilities ship in the changelog.
API ReferenceComputeKubernetes

Add a node pool to a cluster

Adds count whole-host nodes of one SKU, a GPU model or a whole-host CPU SKU, in the cluster's data center, and answers 202 with the new pool as creating. 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 create <id> --count <count> --name <name> --sku <sku>
POST
/v1/kubernetes/clusters/{id}/node-pools

Authorization

apiKey
headerAuthorizationBearer <token>

OpenRelay API key. Send it as Authorization: Bearer or_… (legacy vl_… keys still work).

Path Parameters

id*string

Request Body

application/json
  1. body
name*string
Match^[a-z]([a-z0-9-]*[a-z0-9])?$
Length1 <= length <= 63
sku*

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.

Properties1 <= properties <= 1
count*integer

Number of whole-host nodes.

Range1 <= value <= 100

Response Body

Creation started

application/json
  1. response

A set of identical whole-host nodes in one cluster.

id*string
clusterId*string
name*string
sku*

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.

Properties1 <= properties <= 1
count*integer

Nodes the pool holds once it converges.

readyCount*integer

Nodes that joined the cluster and are Ready.

status*string
Value in"creating""ready""scaling""deleting""failed"
createdAt*string
Example Request
curl -X POST 'https://api.openrelay.inc/v1/kubernetes/clusters/string/node-pools' \  -H 'Content-Type: application/json' \  -d '{  "name": "string",  "sku": {},  "count": 1}'
Example Response
{  "id": "string",  "clusterId": "string",  "name": "string",  "sku": {    "gpuModelId": "string"  },  "count": 0,  "readyCount": 0,  "status": "creating",  "createdAt": "string"}