v1

latestSwagger 2.02026-08-04232286653.5 KB
Kubernetes Node Pools

Creates a Kubernetes node pool in the project and returns the async operation.

post/projects/{project_id}/kubernetes/nodepools

Path parameters

project_idstring required

ID of the project to create the node pool in.

Request body

cluster_idstring required

ID of the cluster the new node pool belongs to.

countinteger required

Number of nodes to create.

ephemeral_storage_for_containerdboolean

Whether the first local ephemeral NVMe disk is used for containerd storage.

ib_partition_idstring

Deprecated: Use transport_partition_id instead.

namestring required

Name of the Kubernetes node pool.

node_labelsobject

Labels to assign to nodes in the new node pool.

node_pool_versionstring

Version of the Kubernetes node pool.

nvlink_domain_idstring

NVLink domain ID to assign to nodes in the new node pool.

placement_policy'spread' | 'unspecified'

Placement policy for VMs in the node pool: spread or unspecified. Ignored for GPU node types (one VM per host is already enforced for GPUs).

product_namestring required

Product name of the VM type to create within the new node pool.

public_ip_typestring

Public IP type for the node pool's nodes: dynamic, static, or none.

ssh_public_keystring

SSH public key to use for all VMs created from the new node pool.

subnet_idstring

ID of the subnet to create the node pool in. Must be in the location of the cluster if specified. If not provided, the default subnet for the location is used, if there is one.

transport_partition_idstring

ID of the InfiniBand or RoCE partition to create the node pool in. Must be in the location of the cluster if specified.

Example request

{
  "cluster_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  "count": 4,
  "ephemeral_storage_for_containerd": true,
  "name": "my-kubernetes-node-pool",
  "node_labels": {
    "label": "my_node"
  },
  "node_pool_version": "1.30",
  "node_taints": [
    {
      "effect": "NoSchedule",
      "key": "gpu-type",
      "value": "h100"
    }
  ],
  "nvlink_domain_id": "550e8400-e29b-41d4-a716-446655440000",
  "placement_policy": "spread",
  "product_name": "a100.2x",
  "public_ip_type": "dynamic",
  "reservation_specification": {
    "id": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8",
    "selection_strategy": "lowest_cost"
  },
  "ssh_public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8",
  "subnet_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  "transport_partition_id": "b1f86d1b-42d2-490d-adb0-cc1029abf653"
}

Response

Example response

{
  "operation": {
    "completed_at": "2021-12-03T19:59:34Z",
    "metadata": "{}",
    "operation_id": "F6EF489C-086E-458D-B812-7962964A28C9",
    "result": "{}",
    "started_at": "2021-12-03T19:58:34Z",
    "state": "IN_PROGRESS"
  }
}