---
title: Créer un pool de nœuds Kubernetes
slug: creer-un-pool-de-noeuds-kubernetes
docTags: 
createdAt: 2026-06-04T15:50:56.155Z
---

{
  "id": "om4XIdNxZoB-vhLvLE7OF",
  "type": "api-oas-v2",
  "data": {
    "method": "POST",
    "url": "https://api.ionos.com/cloudapi/v6/k8s/{k8sClusterId}/nodepools",
    "servers": [
      {
        "url": "https://api.ionos.com/cloudapi/v6/k8s/{k8sClusterId}/nodepools"
      }
    ],
    "name": "Create a Kubernetes Node Pool",
    "description": "Creates a node pool inside the specified K8s cluster.",
    "contentType": "application/json",
    "request": {
      "pathParameters": [
        {
          "kind": "required",
          "name": "k8sClusterId",
          "type": "string",
          "description": "The unique ID of the Kubernetes cluster."
        }
      ],
      "headerParameters": [
        {
          "name": "accept",
          "type": "string",
          "kind": "optional",
          "description": "Generated from available response content types",
          "enum": [
            "application/json"
          ],
          "default": "application/json"
        },
        {
          "kind": "optional",
          "name": "X-Contract-Number",
          "type": "integer<int32>",
          "description": "<p>Users with multiple contracts must provide the contract number, for which all API requests are to be executed.</p>",
          "format": "int32"
        }
      ],
      "queryParameters": [
        {
          "kind": "optional",
          "name": "pretty",
          "type": "boolean",
          "description": "<p>Controls whether the response is pretty-printed (with indentations and new lines).</p>",
          "default": true
        },
        {
          "kind": "optional",
          "name": "depth",
          "type": "integer<int32>",
          "description": "<p>Controls the detail depth of the response objects.\nGET /datacenters/[ID]\n- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n- depth=1: Direct properties and children references are included.\n- depth=2: Direct properties and children properties are included.\n- depth=3: Direct properties and children properties and children's children are included.\n- depth=... and so on</p>",
          "default": 0,
          "format": "int32",
          "minimum": 0,
          "maximum": 10
        }
      ],
      "bodyDataParameters": [
        {
          "kind": "required",
          "name": "body",
          "type": "object",
          "description": "The Kubernetes node pool to create.",
          "customType": "KubernetesNodePoolForPost",
          "schema": [
            {
              "name": "metadata",
              "kind": "optional",
              "type": "object",
              "description": "",
              "modelRef": "#/components/schemas/DatacenterElementMetadata",
              "customType": "DatacenterElementMetadata",
              "schema": [
                {
                  "name": "etag",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "<p>Resource's Entity Tag as defined in <a href=\"http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11\" target=\"_blank\">http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11</a>  Entity Tag is also added as an 'ETag response header to requests which don't use 'depth' parameter.</p>",
                  "example": "45480eb3fbfc31f1d916c1eaa4abdcc3"
                },
                {
                  "name": "createdDate",
                  "kind": "optional",
                  "type": "string<date-time>",
                  "readOnly": true,
                  "description": "The last time the resource was created.",
                  "example": "2015-12-04T14:34:09.809Z",
                  "format": "date-time"
                },
                {
                  "name": "createdBy",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "The user who created the resource.",
                  "example": "user@example.com"
                },
                {
                  "name": "createdByUserId",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "The unique ID of the user who created the resource.",
                  "example": "user@example.com"
                },
                {
                  "name": "lastModifiedDate",
                  "kind": "optional",
                  "type": "string<date-time>",
                  "readOnly": true,
                  "description": "The last time the resource was modified.",
                  "example": "2015-12-04T14:34:09.809Z",
                  "format": "date-time"
                },
                {
                  "name": "lastModifiedBy",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "The user who last modified the resource.",
                  "example": "user@example.com"
                },
                {
                  "name": "lastModifiedByUserId",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "The unique ID of the user who last modified the resource.",
                  "example": "63cef532-26fe-4a64-a4e0-de7c8a506c90"
                },
                {
                  "name": "state",
                  "kind": "optional",
                  "type": "string<AVAILABLE | INACTIVE | BUSY | DEPLOYING | ACTIVE | FAILED | SUSPENDED | FAILED_SUSPENDED | UPDATING | FAILED_UPDATING | DESTROYING | FAILED_DESTROYING | TERMINATED | HIBERNATING | FAILED_HIBERNATING | MAINTENANCE | FAILED_MAINTENANCE | UNKNOWN>",
                  "readOnly": true,
                  "description": "<p>State of the resource. <em>AVAILABLE</em> There are no pending modification requests for this item; <em>BUSY</em> There is at least one modification request pending and all following requests will be queued; <em>INACTIVE</em> Resource has been de-provisioned; <em>DEPLOYING</em> Resource state DEPLOYING - relevant for Kubernetes cluster/nodepool; <em>ACTIVE</em> Resource state ACTIVE - relevant for Kubernetes cluster/nodepool; <em>FAILED</em> Resource state FAILED - relevant for Kubernetes cluster/nodepool; <em>SUSPENDED</em> Resource state SUSPENDED - relevant for Kubernetes cluster/nodepool; <em>FAILED_SUSPENDED</em> Resource state FAILED_SUSPENDED - relevant for Kubernetes cluster; <em>UPDATING</em> Resource state UPDATING - relevant for Kubernetes cluster/nodepool; <em>FAILED_UPDATING</em> Resource state FAILED_UPDATING - relevant for Kubernetes cluster/nodepool; <em>DESTROYING</em> Resource state DESTROYING - relevant for Kubernetes cluster; <em>FAILED_DESTROYING</em> Resource state FAILED_DESTROYING - relevant for Kubernetes cluster/nodepool; <em>TERMINATED</em> Resource state TERMINATED - relevant for Kubernetes cluster/nodepool; <em>HIBERNATING</em> Resource state HIBERNATING - relevant for Kubernetes cluster/nodepool; <em>FAILED_HIBERNATING</em> Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool; <em>MAINTENANCE</em> Resource state MAINTENANCE - relevant for Kubernetes cluster/nodepool; <em>FAILED_HIBERNATING</em> Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool.</p>",
                  "example": "AVAILABLE",
                  "enum": [
                    "AVAILABLE",
                    "INACTIVE",
                    "BUSY",
                    "DEPLOYING",
                    "ACTIVE",
                    "FAILED",
                    "SUSPENDED",
                    "FAILED_SUSPENDED",
                    "UPDATING",
                    "FAILED_UPDATING",
                    "DESTROYING",
                    "FAILED_DESTROYING",
                    "TERMINATED",
                    "HIBERNATING",
                    "FAILED_HIBERNATING",
                    "MAINTENANCE",
                    "FAILED_MAINTENANCE",
                    "UNKNOWN"
                  ]
                }
              ]
            },
            {
              "name": "properties",
              "kind": "required",
              "type": "object",
              "description": "",
              "modelRef": "#/components/schemas/KubernetesNodePoolPropertiesForPost",
              "customType": "KubernetesNodePoolPropertiesForPost",
              "schema": [
                {
                  "name": "name",
                  "kind": "required",
                  "type": "string",
                  "description": "<p>A Kubernetes node pool name. Valid Kubernetes node pool name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.</p>",
                  "example": "K8s-node-pool"
                },
                {
                  "name": "datacenterId",
                  "kind": "required",
                  "type": "string",
                  "description": "<p>The unique identifier of the data center where the worker nodes of the node pool are provisioned. Note that the data center must be located in the same location as the cluster of the node pool or in one of its associated locations. For private Kubernetes, the data centers of all node pools must be placed at the same location.</p>",
                  "example": "1e072e52-2ed3-492f-b6b6-c6b116907521"
                },
                {
                  "name": "nodeCount",
                  "kind": "required",
                  "type": "integer",
                  "description": "The number of worker nodes of the node pool.",
                  "example": 2
                },
                {
                  "name": "serverType",
                  "kind": "optional",
                  "type": "string",
                  "description": "<p>The type of server for the Kubernetes node pool can be either 'DedicatedCore' (nodes with dedicated CPU cores) or 'VCPU' (nodes with shared CPU cores). This selection corresponds to the server type for the compute engine.</p>",
                  "default": "DedicatedCore",
                  "modelRef": "#/components/schemas/KubernetesNodePoolServerType",
                  "customType": "KubernetesNodePoolServerType",
                  "schema": []
                },
                {
                  "name": "cpuFamily",
                  "kind": "optional",
                  "type": "string",
                  "deprecated": true,
                  "description": "Warning: Deprecated\n<p>The CPU type for the nodes. If this field is null or omitted from the request, an available CPU architecture will be automatically selected. Supplying an empty string is not accepted. | <strong>Deprecated</strong>: This property has been deprecated. For a specific use of a CPU type, use \"serverType\" instead.</p>",
                  "example": "INTEL_ICELAKE"
                },
                {
                  "name": "coresCount",
                  "kind": "required",
                  "type": "integer",
                  "description": "The total number of cores for the nodes.",
                  "example": 4
                },
                {
                  "name": "ramSize",
                  "kind": "required",
                  "type": "integer",
                  "description": "<p>The RAM size for the nodes. Must be specified in multiples of 1024 MB, with a minimum size of 2048 MB.</p>",
                  "example": 2048
                },
                {
                  "name": "availabilityZone",
                  "kind": "required",
                  "type": "string<AUTO | ZONE_1 | ZONE_2>",
                  "description": "The availability zone in which the target VM should be provisioned.",
                  "example": "AUTO",
                  "enum": [
                    "AUTO",
                    "ZONE_1",
                    "ZONE_2"
                  ]
                },
                {
                  "name": "storageType",
                  "kind": "required",
                  "type": "string<HDD | SSD>",
                  "description": "The storage type for the nodes.",
                  "example": "HDD",
                  "enum": [
                    "HDD",
                    "SSD"
                  ]
                },
                {
                  "name": "storageSize",
                  "kind": "required",
                  "type": "integer",
                  "description": "<p>The allocated volume size in GB. The allocated volume size in GB. To achieve good performance, we recommend a size greater than 100GB for SSD.</p>",
                  "example": 100
                },
                {
                  "name": "k8sVersion",
                  "kind": "optional",
                  "type": "string",
                  "description": "<p>The Kubernetes version running in the node pool. Note that this imposes restrictions on which Kubernetes versions can run in the node pools of a cluster. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions.</p>",
                  "example": "1.15.4"
                },
                {
                  "name": "maintenanceWindow",
                  "kind": "optional",
                  "type": "object",
                  "description": "",
                  "modelRef": "#/components/schemas/KubernetesMaintenanceWindow",
                  "customType": "KubernetesMaintenanceWindow",
                  "schema": [
                    {
                      "name": "dayOfTheWeek",
                      "kind": "required",
                      "type": "string<Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday>",
                      "description": "The weekday for a maintenance window.",
                      "example": "Monday",
                      "enum": [
                        "Monday",
                        "Tuesday",
                        "Wednesday",
                        "Thursday",
                        "Friday",
                        "Saturday",
                        "Sunday"
                      ]
                    },
                    {
                      "name": "time",
                      "kind": "required",
                      "type": "string",
                      "description": "<p>The time to use for a maintenance window. Accepted formats are: HH:mm</p><div></div>; HH:mm<div></div>\"Z\"; HH:mm<div></div>. This time may vary by 15 minutes.<p></p>",
                      "example": "13:00:00"
                    }
                  ]
                },
                {
                  "name": "autoScaling",
                  "kind": "optional",
                  "type": "object",
                  "description": "",
                  "modelRef": "#/components/schemas/KubernetesAutoScaling",
                  "customType": "KubernetesAutoScaling",
                  "schema": [
                    {
                      "name": "minNodeCount",
                      "kind": "required",
                      "type": "integer<int32>",
                      "description": "<p>The minimum number of working nodes that the managed node pool can scale must be >= 1 and >= nodeCount. Required if autoScaling is specified.</p>",
                      "example": 1,
                      "format": "int32"
                    },
                    {
                      "name": "maxNodeCount",
                      "kind": "required",
                      "type": "integer<int32>",
                      "description": "<p>The maximum number of worker nodes that the managed node pool can scale in. Must be >= minNodeCount and must be >= nodeCount. Required if autoScaling is specified.</p>",
                      "example": 3,
                      "format": "int32"
                    }
                  ]
                },
                {
                  "name": "lans",
                  "kind": "optional",
                  "type": "array",
                  "description": "The array of existing private LANs to attach to worker nodes.",
                  "modelRef": "#/components/schemas/KubernetesNodePoolLan",
                  "customType": "KubernetesNodePoolLan[]",
                  "schema": [
                    {
                      "name": "datacenterId",
                      "kind": "optional",
                      "type": "string",
                      "description": "<p>The datacenter ID, requires system privileges, for internal usage only</p>",
                      "example": "00000000-0000-0000-0000-000000000000"
                    },
                    {
                      "name": "id",
                      "kind": "required",
                      "type": "integer<int32>",
                      "description": "The LAN ID of an existing LAN at the related data center",
                      "example": 3,
                      "format": "int32"
                    },
                    {
                      "name": "dhcp",
                      "kind": "optional",
                      "type": "boolean",
                      "description": "Specifies whether the Kubernetes node pool LAN reserves an IP with DHCP.",
                      "example": true
                    },
                    {
                      "name": "routes",
                      "kind": "optional",
                      "type": "array",
                      "description": "The array of additional LANs attached to worker nodes.",
                      "modelRef": "#/components/schemas/KubernetesNodePoolLanRoutes",
                      "customType": "KubernetesNodePoolLanRoutes[]",
                      "schema": [
                        {
                          "name": "network",
                          "kind": "optional",
                          "type": "string",
                          "description": "IPv4 or IPv6 CIDR to be routed via the interface.",
                          "example": "1.2.3.4/24"
                        },
                        {
                          "name": "gatewayIp",
                          "kind": "optional",
                          "type": "string",
                          "description": "IPv4 or IPv6 Gateway IP for the route.",
                          "example": "10.1.5.16"
                        }
                      ]
                    }
                  ]
                },
                {
                  "name": "labels",
                  "kind": "optional",
                  "type": "object",
                  "description": "The labels attached to the node pool.",
                  "modelRef": "#/components/schemas/KubernetesNodePoolLabel",
                  "customType": "KubernetesNodePoolLabel",
                  "schema": []
                },
                {
                  "name": "annotations",
                  "kind": "optional",
                  "type": "object",
                  "description": "The annotations attached to the node pool.",
                  "modelRef": "#/components/schemas/KubernetesNodePoolAnnotation",
                  "customType": "KubernetesNodePoolAnnotation",
                  "schema": []
                },
                {
                  "name": "taints",
                  "kind": "optional",
                  "type": "array",
                  "description": "Taints applied to nodes in this pool. A taint repels pods that do not have a matching toleration. Maximum 50 taints per node pool.",
                  "modelRef": "#/components/schemas/KubernetesNodePoolTaint",
                  "customType": "KubernetesNodePoolTaint[]",
                  "schema": [
                    {
                      "name": "key",
                      "kind": "required",
                      "type": "string",
                      "description": "<p>Taint key. Must be a valid Kubernetes label key format. May include an optional prefix (DNS subdomain) followed by a slash.</p>",
                      "example": "dedicated",
                      "maxLength": 317,
                      "pattern": "^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\\/)?([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"
                    },
                    {
                      "name": "value",
                      "kind": "optional",
                      "type": "string",
                      "description": "Optional taint value. Must be a valid Kubernetes label value format.",
                      "example": "gpu-workloads",
                      "maxLength": 63,
                      "pattern": "^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"
                    },
                    {
                      "name": "effect",
                      "kind": "required",
                      "type": "string",
                      "description": "<p>Taint effect determines how a taint repels pods: * NoSchedule: Pods without matching toleration will not be scheduled on the node. * NoExecute: Pods without matching toleration will be evicted from the node. * PreferNoSchedule: Kubernetes will try to avoid scheduling pods without matching toleration.</p>",
                      "example": "NoSchedule",
                      "modelRef": "#/components/schemas/TaintEffect",
                      "customType": "TaintEffect",
                      "schema": []
                    }
                  ]
                },
                {
                  "name": "publicIps",
                  "kind": "optional",
                  "type": "array",
                  "description": "<p>Optional array of reserved public IP addresses to be used by the nodes. The IPs must be from the exact location of the node pool's data center. If autoscaling is used, the array must contain one more IP than the maximum possible number of nodes (nodeCount+1 for a fixed number of nodes or maxNodeCount+1). The extra IP is used when the nodes are rebuilt.</p>",
                  "example": "[\"81.173.1.2\",\"82.231.2.5\",\"92.221.2.4\"]",
                  "itemType": "string",
                  "customType": "string[]",
                  "itemExample": "",
                  "itemDefault": ""
                }
              ]
            }
          ],
          "modelRef": "#/components/schemas/KubernetesNodePoolForPost",
          "isExpanded": true
        }
      ],
      "formDataParameters": [],
      "oAuthParameters": [
        {
          "id": "BasicAuthentication",
          "name": "BasicAuthentication",
          "kind": "optional",
          "type": "http",
          "description": "<p>You will need to base64 encode the string containing your credentials. \nNote:\n\n</p>",
          "scheme": "basic"
        },
        {
          "id": "TokenAuthentication",
          "name": "Authorization",
          "kind": "optional",
          "type": "apiKey",
          "description": "<p>Please provide header value as 'Bearer ' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.</p>",
          "in": "header"
        }
      ],
      "cookieParameters": []
    },
    "responses": [
      {
        "statusCode": "202",
        "description": "Successful operation",
        "jsonExample": "",
        "isExpanded": true,
        "headers": [
          {
            "kind": "optional",
            "name": "X-RateLimit-Remaining",
            "type": "integer<int32>",
            "description": "The number of requests that can still be made without triggering a failure response.",
            "format": "int32"
          },
          {
            "kind": "optional",
            "name": "X-RateLimit-Limit",
            "type": "integer<int32>",
            "description": "The average number of requests per minute allowed.",
            "format": "int32"
          },
          {
            "kind": "optional",
            "name": "X-RateLimit-Burst",
            "type": "integer<int32>",
            "description": "The maximum number of concurrent API requests allowed.",
            "format": "int32"
          }
        ],
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "KubernetesNodePool",
            "schema": [
              {
                "name": "id",
                "kind": "optional",
                "type": "string",
                "readOnly": true,
                "description": "The resource's unique identifier.",
                "example": "1e072e52-2ed3-492f-b6b6-c6b116907527"
              },
              {
                "name": "type",
                "kind": "optional",
                "type": "string<nodepool>",
                "readOnly": true,
                "description": "The object type.",
                "enum": [
                  "nodepool"
                ]
              },
              {
                "name": "href",
                "kind": "optional",
                "type": "string<uri>",
                "readOnly": true,
                "description": "<p>The URL to the object representation (absolute path).</p>",
                "example": "https://api.ionos.com/cloudapi/v6/k8s/30f8a4f6-6515-4c34-b49d-dea807453b90/nodepools/4735f530-4279-42f3-9562-386143098038",
                "format": "uri"
              },
              {
                "name": "metadata",
                "kind": "optional",
                "type": "object",
                "description": "",
                "modelRef": "#/components/schemas/DatacenterElementMetadata",
                "customType": "DatacenterElementMetadata",
                "schema": [
                  {
                    "name": "etag",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "<p>Resource's Entity Tag as defined in <a href=\"http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11\" target=\"_blank\">http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11</a>  Entity Tag is also added as an 'ETag response header to requests which don't use 'depth' parameter.</p>",
                    "example": "45480eb3fbfc31f1d916c1eaa4abdcc3"
                  },
                  {
                    "name": "createdDate",
                    "kind": "optional",
                    "type": "string<date-time>",
                    "readOnly": true,
                    "description": "The last time the resource was created.",
                    "example": "2015-12-04T14:34:09.809Z",
                    "format": "date-time"
                  },
                  {
                    "name": "createdBy",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "The user who created the resource.",
                    "example": "user@example.com"
                  },
                  {
                    "name": "createdByUserId",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "The unique ID of the user who created the resource.",
                    "example": "user@example.com"
                  },
                  {
                    "name": "lastModifiedDate",
                    "kind": "optional",
                    "type": "string<date-time>",
                    "readOnly": true,
                    "description": "The last time the resource was modified.",
                    "example": "2015-12-04T14:34:09.809Z",
                    "format": "date-time"
                  },
                  {
                    "name": "lastModifiedBy",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "The user who last modified the resource.",
                    "example": "user@example.com"
                  },
                  {
                    "name": "lastModifiedByUserId",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "The unique ID of the user who last modified the resource.",
                    "example": "63cef532-26fe-4a64-a4e0-de7c8a506c90"
                  },
                  {
                    "name": "state",
                    "kind": "optional",
                    "type": "string<AVAILABLE | INACTIVE | BUSY | DEPLOYING | ACTIVE | FAILED | SUSPENDED | FAILED_SUSPENDED | UPDATING | FAILED_UPDATING | DESTROYING | FAILED_DESTROYING | TERMINATED | HIBERNATING | FAILED_HIBERNATING | MAINTENANCE | FAILED_MAINTENANCE | UNKNOWN>",
                    "readOnly": true,
                    "description": "<p>State of the resource. <em>AVAILABLE</em> There are no pending modification requests for this item; <em>BUSY</em> There is at least one modification request pending and all following requests will be queued; <em>INACTIVE</em> Resource has been de-provisioned; <em>DEPLOYING</em> Resource state DEPLOYING - relevant for Kubernetes cluster/nodepool; <em>ACTIVE</em> Resource state ACTIVE - relevant for Kubernetes cluster/nodepool; <em>FAILED</em> Resource state FAILED - relevant for Kubernetes cluster/nodepool; <em>SUSPENDED</em> Resource state SUSPENDED - relevant for Kubernetes cluster/nodepool; <em>FAILED_SUSPENDED</em> Resource state FAILED_SUSPENDED - relevant for Kubernetes cluster; <em>UPDATING</em> Resource state UPDATING - relevant for Kubernetes cluster/nodepool; <em>FAILED_UPDATING</em> Resource state FAILED_UPDATING - relevant for Kubernetes cluster/nodepool; <em>DESTROYING</em> Resource state DESTROYING - relevant for Kubernetes cluster; <em>FAILED_DESTROYING</em> Resource state FAILED_DESTROYING - relevant for Kubernetes cluster/nodepool; <em>TERMINATED</em> Resource state TERMINATED - relevant for Kubernetes cluster/nodepool; <em>HIBERNATING</em> Resource state HIBERNATING - relevant for Kubernetes cluster/nodepool; <em>FAILED_HIBERNATING</em> Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool; <em>MAINTENANCE</em> Resource state MAINTENANCE - relevant for Kubernetes cluster/nodepool; <em>FAILED_HIBERNATING</em> Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool.</p>",
                    "example": "AVAILABLE",
                    "enum": [
                      "AVAILABLE",
                      "INACTIVE",
                      "BUSY",
                      "DEPLOYING",
                      "ACTIVE",
                      "FAILED",
                      "SUSPENDED",
                      "FAILED_SUSPENDED",
                      "UPDATING",
                      "FAILED_UPDATING",
                      "DESTROYING",
                      "FAILED_DESTROYING",
                      "TERMINATED",
                      "HIBERNATING",
                      "FAILED_HIBERNATING",
                      "MAINTENANCE",
                      "FAILED_MAINTENANCE",
                      "UNKNOWN"
                    ]
                  }
                ]
              },
              {
                "name": "properties",
                "kind": "required",
                "type": "object",
                "description": "",
                "modelRef": "#/components/schemas/KubernetesNodePoolProperties",
                "customType": "KubernetesNodePoolProperties",
                "schema": [
                  {
                    "name": "name",
                    "kind": "required",
                    "type": "string",
                    "description": "<p>A Kubernetes node pool name. Valid Kubernetes node pool name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.</p>",
                    "example": "K8s-node-pool"
                  },
                  {
                    "name": "datacenterId",
                    "kind": "required",
                    "type": "string",
                    "description": "<p>The unique identifier of the data center where the worker nodes of the node pool are provisioned. Note that the data center must be located in the same location as the cluster of the node pool or in one of its associated locations. For private Kubernetes, the data centers of all node pools must be placed at the same location.</p>",
                    "example": "1e072e52-2ed3-492f-b6b6-c6b116907521"
                  },
                  {
                    "name": "nodeCount",
                    "kind": "required",
                    "type": "integer",
                    "description": "The number of worker nodes of the node pool.",
                    "example": 2
                  },
                  {
                    "name": "serverType",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>The type of server for the Kubernetes node pool can be either 'DedicatedCore' (nodes with dedicated CPU cores) or 'VCPU' (nodes with shared CPU cores). This selection corresponds to the server type for the compute engine.</p>",
                    "default": "DedicatedCore",
                    "modelRef": "#/components/schemas/KubernetesNodePoolServerType",
                    "customType": "KubernetesNodePoolServerType",
                    "schema": []
                  },
                  {
                    "name": "cpuFamily",
                    "kind": "optional",
                    "type": "string",
                    "deprecated": true,
                    "description": "Warning: Deprecated\n<p>The CPU type for the nodes.</p>\n<p><strong>Deprecated</strong>: This property has been deprecated. For a specific CPU type, use \"serverType\" instead.</p>",
                    "example": "INTEL_ICELAKE"
                  },
                  {
                    "name": "coresCount",
                    "kind": "required",
                    "type": "integer",
                    "description": "The total number of cores for the nodes.",
                    "example": 4
                  },
                  {
                    "name": "ramSize",
                    "kind": "required",
                    "type": "integer",
                    "description": "<p>The RAM size for the nodes. Must be specified in multiples of 1024 MB, with a minimum size of 2048 MB.</p>",
                    "example": 2048
                  },
                  {
                    "name": "availabilityZone",
                    "kind": "required",
                    "type": "string<AUTO | ZONE_1 | ZONE_2>",
                    "description": "The availability zone in which the target VM should be provisioned.",
                    "example": "AUTO",
                    "enum": [
                      "AUTO",
                      "ZONE_1",
                      "ZONE_2"
                    ]
                  },
                  {
                    "name": "storageType",
                    "kind": "required",
                    "type": "string<HDD | SSD>",
                    "description": "The storage type for the nodes.",
                    "example": "HDD",
                    "enum": [
                      "HDD",
                      "SSD"
                    ]
                  },
                  {
                    "name": "storageSize",
                    "kind": "required",
                    "type": "integer",
                    "description": "<p>The allocated volume size in GB. The allocated volume size in GB. To achieve good performance, we recommend a size greater than 100GB for SSD.</p>",
                    "example": 100
                  },
                  {
                    "name": "k8sVersion",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>The Kubernetes version running in the node pool. Note that this imposes restrictions on which Kubernetes versions can run in the node pools of a cluster. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions.</p>",
                    "example": "1.15.4"
                  },
                  {
                    "name": "maintenanceWindow",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/KubernetesMaintenanceWindow",
                    "customType": "KubernetesMaintenanceWindow",
                    "schema": [
                      {
                        "name": "dayOfTheWeek",
                        "kind": "required",
                        "type": "string<Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday>",
                        "description": "The weekday for a maintenance window.",
                        "example": "Monday",
                        "enum": [
                          "Monday",
                          "Tuesday",
                          "Wednesday",
                          "Thursday",
                          "Friday",
                          "Saturday",
                          "Sunday"
                        ]
                      },
                      {
                        "name": "time",
                        "kind": "required",
                        "type": "string",
                        "description": "<p>The time to use for a maintenance window. Accepted formats are: HH:mm</p><div></div>; HH:mm<div></div>\"Z\"; HH:mm<div></div>. This time may vary by 15 minutes.<p></p>",
                        "example": "13:00:00"
                      }
                    ]
                  },
                  {
                    "name": "autoScaling",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/KubernetesAutoScaling",
                    "customType": "KubernetesAutoScaling",
                    "schema": [
                      {
                        "name": "minNodeCount",
                        "kind": "required",
                        "type": "integer<int32>",
                        "description": "<p>The minimum number of working nodes that the managed node pool can scale must be >= 1 and >= nodeCount. Required if autoScaling is specified.</p>",
                        "example": 1,
                        "format": "int32"
                      },
                      {
                        "name": "maxNodeCount",
                        "kind": "required",
                        "type": "integer<int32>",
                        "description": "<p>The maximum number of worker nodes that the managed node pool can scale in. Must be >= minNodeCount and must be >= nodeCount. Required if autoScaling is specified.</p>",
                        "example": 3,
                        "format": "int32"
                      }
                    ]
                  },
                  {
                    "name": "lans",
                    "kind": "optional",
                    "type": "array",
                    "description": "The array of existing private LANs to attach to worker nodes.",
                    "modelRef": "#/components/schemas/KubernetesNodePoolLan",
                    "customType": "KubernetesNodePoolLan[]",
                    "schema": [
                      {
                        "name": "datacenterId",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>The datacenter ID, requires system privileges, for internal usage only</p>",
                        "example": "00000000-0000-0000-0000-000000000000"
                      },
                      {
                        "name": "id",
                        "kind": "required",
                        "type": "integer<int32>",
                        "description": "The LAN ID of an existing LAN at the related data center",
                        "example": 3,
                        "format": "int32"
                      },
                      {
                        "name": "dhcp",
                        "kind": "optional",
                        "type": "boolean",
                        "description": "Specifies whether the Kubernetes node pool LAN reserves an IP with DHCP.",
                        "example": true
                      },
                      {
                        "name": "routes",
                        "kind": "optional",
                        "type": "array",
                        "description": "The array of additional LANs attached to worker nodes.",
                        "modelRef": "#/components/schemas/KubernetesNodePoolLanRoutes",
                        "customType": "KubernetesNodePoolLanRoutes[]",
                        "schema": [
                          {
                            "name": "network",
                            "kind": "optional",
                            "type": "string",
                            "description": "IPv4 or IPv6 CIDR to be routed via the interface.",
                            "example": "1.2.3.4/24"
                          },
                          {
                            "name": "gatewayIp",
                            "kind": "optional",
                            "type": "string",
                            "description": "IPv4 or IPv6 Gateway IP for the route.",
                            "example": "10.1.5.16"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "name": "labels",
                    "kind": "optional",
                    "type": "object",
                    "description": "The labels attached to the node pool.",
                    "modelRef": "#/components/schemas/KubernetesNodePoolLabel",
                    "customType": "KubernetesNodePoolLabel",
                    "schema": []
                  },
                  {
                    "name": "annotations",
                    "kind": "optional",
                    "type": "object",
                    "description": "The annotations attached to the node pool.",
                    "modelRef": "#/components/schemas/KubernetesNodePoolAnnotation",
                    "customType": "KubernetesNodePoolAnnotation",
                    "schema": []
                  },
                  {
                    "name": "taints",
                    "kind": "optional",
                    "type": "array",
                    "description": "Taints applied to nodes in this pool. A taint repels pods that do not have a matching toleration. Maximum 50 taints per node pool.",
                    "modelRef": "#/components/schemas/KubernetesNodePoolTaint",
                    "customType": "KubernetesNodePoolTaint[]",
                    "schema": [
                      {
                        "name": "key",
                        "kind": "required",
                        "type": "string",
                        "description": "<p>Taint key. Must be a valid Kubernetes label key format. May include an optional prefix (DNS subdomain) followed by a slash.</p>",
                        "example": "dedicated",
                        "maxLength": 317,
                        "pattern": "^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\\/)?([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"
                      },
                      {
                        "name": "value",
                        "kind": "optional",
                        "type": "string",
                        "description": "Optional taint value. Must be a valid Kubernetes label value format.",
                        "example": "gpu-workloads",
                        "maxLength": 63,
                        "pattern": "^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"
                      },
                      {
                        "name": "effect",
                        "kind": "required",
                        "type": "string",
                        "description": "<p>Taint effect determines how a taint repels pods: * NoSchedule: Pods without matching toleration will not be scheduled on the node. * NoExecute: Pods without matching toleration will be evicted from the node. * PreferNoSchedule: Kubernetes will try to avoid scheduling pods without matching toleration.</p>",
                        "example": "NoSchedule",
                        "modelRef": "#/components/schemas/TaintEffect",
                        "customType": "TaintEffect",
                        "schema": []
                      }
                    ]
                  },
                  {
                    "name": "publicIps",
                    "kind": "optional",
                    "type": "array",
                    "description": "<p>Optional array of reserved public IP addresses to be used by the nodes. The IPs must be from the exact location of the node pool's data center. If autoscaling is used, the array must contain one more IP than the maximum possible number of nodes (nodeCount+1 for a fixed number of nodes or maxNodeCount+1). The extra IP is used when the nodes are rebuilt.</p>",
                    "example": "[\"81.173.1.2\",\"82.231.2.5\",\"92.221.2.4\"]",
                    "itemType": "string",
                    "customType": "string[]",
                    "itemExample": "",
                    "itemDefault": ""
                  },
                  {
                    "name": "availableUpgradeVersions",
                    "kind": "optional",
                    "type": "array",
                    "description": "The list of available versions for upgrading the node pool.",
                    "example": "[\"1.16.4\",\"1.17.7\"]",
                    "itemType": "string",
                    "customType": "string[]",
                    "itemExample": "",
                    "itemDefault": ""
                  }
                ]
              }
            ],
            "modelRef": "#/components/schemas/KubernetesNodePool",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "default",
        "description": "<p>Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).</p>",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "Error",
            "schema": [
              {
                "name": "httpStatus",
                "kind": "optional",
                "type": "integer<int32>",
                "readOnly": true,
                "description": "HTTP status code of the operation.",
                "example": 400,
                "format": "int32"
              },
              {
                "name": "messages",
                "kind": "optional",
                "type": "array",
                "description": "",
                "modelRef": "#/components/schemas/ErrorMessage",
                "customType": "ErrorMessage[]",
                "schema": [
                  {
                    "name": "errorCode",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "Application internal error code.",
                    "example": "123"
                  },
                  {
                    "name": "message",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "<p>A human-readable message.</p>",
                    "example": "Error message example."
                  }
                ]
              }
            ],
            "modelRef": "#/components/schemas/Error",
            "isExpanded": true
          }
        ]
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "eduK1zCziLhiKOAwDIYqz",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request POST \\\n     --url 'https://api.ionos.com/cloudapi/v6/k8s/{k8sClusterId}/nodepools?pretty=true&depth=integer%3Cint32%3E' \\\n     --header 'accept: application/json' \\\n     --header 'content-type: application/json' \\\n     --data '{\n     \"properties\": {\n     \"name\": \"K8s-node-pool\",\n     \"datacenterId\": \"1e072e52-2ed3-492f-b6b6-c6b116907521\",\n     \"nodeCount\": 2,\n     \"serverType\": \"DedicatedCore\",\n     \"coresCount\": 4,\n     \"ramSize\": 2048,\n     \"availabilityZone\": \"AUTO\",\n     \"storageType\": \"HDD\",\n     \"storageSize\": 100,\n     \"maintenanceWindow\": {\n     \"dayOfTheWeek\": \"Monday\",\n     \"time\": \"13:00:00\"\n     },\n     \"autoScaling\": {\n     \"minNodeCount\": 1,\n     \"maxNodeCount\": 3\n     },\n     \"lans\": [\n     {\n     \"id\": 3\n     }\n     ],\n     \"taints\": [\n     {\n     \"key\": \"dedicated\",\n     \"effect\": \"NoSchedule\"\n     }\n     ]\n     }\n     }'"
        },
        {
          "id": "oMBlXpO5FVDP8TyxNrJEy",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"content-type\", \"application/json\");\n\nvar raw = JSON.stringify({\n   \"properties\": {\n      \"name\": \"K8s-node-pool\",\n      \"datacenterId\": \"1e072e52-2ed3-492f-b6b6-c6b116907521\",\n      \"nodeCount\": 2,\n      \"serverType\": \"DedicatedCore\",\n      \"coresCount\": 4,\n      \"ramSize\": 2048,\n      \"availabilityZone\": \"AUTO\",\n      \"storageType\": \"HDD\",\n      \"storageSize\": 100,\n      \"maintenanceWindow\": {\n         \"dayOfTheWeek\": \"Monday\",\n         \"time\": \"13:00:00\"\n      },\n      \"autoScaling\": {\n         \"minNodeCount\": 1,\n         \"maxNodeCount\": 3\n      },\n      \"lans\": [\n         {\n            \"id\": 3\n         }\n      ],\n      \"taints\": [\n         {\n            \"key\": \"dedicated\",\n            \"effect\": \"NoSchedule\"\n         }\n      ]\n   }\n});\n\nvar requestOptions = {\n   method: 'POST',\n   headers: myHeaders,\n   body: raw,\n   redirect: 'follow'\n};\n\nfetch(\"https://api.ionos.com/cloudapi/v6/k8s/{k8sClusterId}/nodepools?pretty=true&depth=integer<int32>\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "icuuky5Er0We3udAoadVY",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://api.ionos.com/cloudapi/v6/k8s/{k8sClusterId}/nodepools?pretty=true&depth=integer<int32>\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"content-type\"] = \"application/json\"\nrequest.body = JSON.dump({\n   \"properties\": {\n      \"name\": \"K8s-node-pool\",\n      \"datacenterId\": \"1e072e52-2ed3-492f-b6b6-c6b116907521\",\n      \"nodeCount\": 2,\n      \"serverType\": \"DedicatedCore\",\n      \"coresCount\": 4,\n      \"ramSize\": 2048,\n      \"availabilityZone\": \"AUTO\",\n      \"storageType\": \"HDD\",\n      \"storageSize\": 100,\n      \"maintenanceWindow\": {\n         \"dayOfTheWeek\": \"Monday\",\n         \"time\": \"13:00:00\"\n      },\n      \"autoScaling\": {\n         \"minNodeCount\": 1,\n         \"maxNodeCount\": 3\n      },\n      \"lans\": [\n         {\n            \"id\": 3\n         }\n      ],\n      \"taints\": [\n         {\n            \"key\": \"dedicated\",\n            \"effect\": \"NoSchedule\"\n         }\n      ]\n   }\n})\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "Ypt30YRgEQnWfgF1g8Viq",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://api.ionos.com/cloudapi/v6/k8s/{k8sClusterId}/nodepools?pretty=true&depth=integer<int32>\"\n\npayload = json.dumps({\n   \"properties\": {\n      \"name\": \"K8s-node-pool\",\n      \"datacenterId\": \"1e072e52-2ed3-492f-b6b6-c6b116907521\",\n      \"nodeCount\": 2,\n      \"serverType\": \"DedicatedCore\",\n      \"coresCount\": 4,\n      \"ramSize\": 2048,\n      \"availabilityZone\": \"AUTO\",\n      \"storageType\": \"HDD\",\n      \"storageSize\": 100,\n      \"maintenanceWindow\": {\n         \"dayOfTheWeek\": \"Monday\",\n         \"time\": \"13:00:00\"\n      },\n      \"autoScaling\": {\n         \"minNodeCount\": 1,\n         \"maxNodeCount\": 3\n      },\n      \"lans\": [\n         {\n            \"id\": 3\n         }\n      ],\n      \"taints\": [\n         {\n            \"key\": \"dedicated\",\n            \"effect\": \"NoSchedule\"\n         }\n      ]\n   }\n})\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json'\n}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "eduK1zCziLhiKOAwDIYqz"
    },
    "results": {
      "languages": [
        {
          "id": "U5fpISZ2R4kjQaaD19uVQ",
          "language": "202",
          "code": "// Successful operation\n{\n  \"id\": \"1e072e52-2ed3-492f-b6b6-c6b116907527\",\n  \"type\": \"\",\n  \"href\": \"https://api.ionos.com/cloudapi/v6/k8s/30f8a4f6-6515-4c34-b49d-dea807453b90/nodepools/4735f530-4279-42f3-9562-386143098038\",\n  \"metadata\": {\n    \"etag\": \"45480eb3fbfc31f1d916c1eaa4abdcc3\",\n    \"createdDate\": \"2015-12-04T14:34:09.809Z\",\n    \"createdBy\": \"user@example.com\",\n    \"createdByUserId\": \"user@example.com\",\n    \"lastModifiedDate\": \"2015-12-04T14:34:09.809Z\",\n    \"lastModifiedBy\": \"user@example.com\",\n    \"lastModifiedByUserId\": \"63cef532-26fe-4a64-a4e0-de7c8a506c90\",\n    \"state\": \"AVAILABLE\"\n  },\n  \"properties\": {\n    \"name\": \"K8s-node-pool\",\n    \"datacenterId\": \"1e072e52-2ed3-492f-b6b6-c6b116907521\",\n    \"nodeCount\": 2,\n    \"serverType\": \"\",\n    \"cpuFamily\": \"INTEL_ICELAKE\",\n    \"coresCount\": 4,\n    \"ramSize\": 2048,\n    \"availabilityZone\": \"AUTO\",\n    \"storageType\": \"HDD\",\n    \"storageSize\": 100,\n    \"k8sVersion\": \"1.15.4\",\n    \"maintenanceWindow\": {\n      \"dayOfTheWeek\": \"Monday\",\n      \"time\": \"13:00:00\"\n    },\n    \"autoScaling\": {\n      \"minNodeCount\": 1,\n      \"maxNodeCount\": 3\n    },\n    \"lans\": [\n      {\n        \"datacenterId\": \"00000000-0000-0000-0000-000000000000\",\n        \"id\": 3,\n        \"dhcp\": true,\n        \"routes\": [\n          {\n            \"network\": \"1.2.3.4/24\",\n            \"gatewayIp\": \"10.1.5.16\"\n          }\n        ]\n      }\n    ],\n    \"labels\": {},\n    \"annotations\": {},\n    \"taints\": [\n      {\n        \"key\": \"dedicated\",\n        \"value\": \"gpu-workloads\",\n        \"effect\": \"NoSchedule\"\n      }\n    ],\n    \"publicIps\": [\n      \"\"\n    ],\n    \"availableUpgradeVersions\": [\n      \"\"\n    ]\n  }\n}"
        },
        {
          "id": "mz-Y6j3NZ121l4MTQjupX",
          "language": "default",
          "code": "// Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).\n{\n  \"httpStatus\": 400,\n  \"messages\": [\n    {\n      \"errorCode\": \"123\",\n      \"message\": \"Error message example.\"\n    }\n  ]\n}"
        }
      ],
      "selectedLanguageId": "U5fpISZ2R4kjQaaD19uVQ"
    }
  },
  "children": [
    {
      "text": "",
      "id": "LODIWe3fZFBR06kVYcfPp"
    }
  ]
}