{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/scaleway.k8s.v1.CreateClusterRequest.PoolConfig", "title": "scaleway.k8s.v1.CreateClusterRequest.PoolConfig", "type": "object", "properties": { "name": { "type": "string", "description": "Name of the pool." }, "node_type": { "type": "string", "description": "Node type is the type of Scaleway Instance wanted for the pool. Nodes with insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST). 'external' is a special node type used to provision instances from other cloud providers in a Kosmos Cluster." }, "placement_group_id": { "type": "string", "description": "Placement group ID in which all the nodes of the pool will be created, placement groups are limited to 20 instances.", "nullable": true }, "autoscaling": { "type": "boolean", "description": "Defines whether the autoscaling feature is enabled for the pool." }, "size": { "type": "integer", "description": "Size (number of nodes) of the pool.", "format": "uint32" }, "min_size": { "type": "integer", "description": "Defines the minimum size of the pool. Note that this field is only used when autoscaling is enabled on the pool.", "format": "uint32", "nullable": true }, "max_size": { "type": "integer", "description": "Defines the maximum size of the pool. Note that this field is only used when autoscaling is enabled on the pool.", "format": "uint32", "nullable": true }, "container_runtime": { "type": "string", "description": "Customization of the container runtime is available for each pool.", "enum": [ "unknown_runtime", "docker", "containerd", "crio" ], "x-enum-descriptions": { "values": { "containerd": "Containerd Runtime will be configured (https://github.com/containerd/containerd)" } }, "default": "unknown_runtime" }, "autohealing": { "type": "boolean", "description": "Defines whether the autohealing feature is enabled for the pool." }, "tags": { "type": "array", "description": "Tags associated with the pool, see [managing tags](https://www.scaleway.com/en/docs/kubernetes/api-cli/managing-tags).", "items": { "type": "string" } }, "kubelet_args": { "type": "object", "description": "Kubelet arguments to be used by this pool. Note that this feature is experimental.", "properties": { "": { "type": "string", "description": "Kubelet arguments to be used by this pool. Note that this feature is experimental." } }, "additionalProperties": true }, "upgrade_policy": { "type": "object", "description": "Pool upgrade policy.", "properties": { "max_unavailable": { "type": "integer", "description": "The maximum number of nodes that can be not ready at the same time.", "format": "uint32", "nullable": true }, "max_surge": { "type": "integer", "description": "The maximum number of nodes to be created during the upgrade.", "format": "uint32", "nullable": true } }, "x-properties-order": [ "max_unavailable", "max_surge" ] }, "zone": { "type": "string", "description": "Zone in which the pool's nodes will be spawned." }, "root_volume_type": { "type": "string", "description": "Defines the system volume disk type. Several types of volume (`volume_type`) are provided:.\n* `l_ssd` is a local block storage which means your system is stored locally on your node's hypervisor. This type is not available for all node types\n* `sbs_5k` is a remote block storage which means your system is stored on a centralized and resilient cluster with 5k IOPS limits\n* `sbs_15k` is a faster remote block storage which means your system is stored on a centralized and resilient cluster with 15k IOPS limits\n* `b_ssd` is the legacy remote block storage which means your system is stored on a centralized and resilient cluster. Not available for new pools, use `sbs_5k` or `sbs_15k` instead.", "enum": [ "default_volume_type", "l_ssd", "b_ssd", "sbs_5k", "sbs_15k" ], "x-enum-descriptions": { "values": { "l_ssd": "Local Block Storage: your system is stored locally on your node hypervisor", "b_ssd": "Remote Block Storage: your system is stored on a centralized and resilient cluster (deprecated: will use sbs_5k instead)", "sbs_5k": "Remote Block Storage: your system is stored on a centralized and resilient cluster with up to 5k IOPS", "sbs_15k": "Remote Block Storage: your system is stored on a centralized and resilient cluster with up to 15k IOPS" } }, "default": "default_volume_type" }, "root_volume_size": { "type": "integer", "description": "System volume disk size. (in bytes)", "format": "uint64", "nullable": true }, "public_ip_disabled": { "type": "boolean", "description": "Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway." }, "security_group_id": { "type": "string", "description": "Security group ID in which all the nodes of the pool will be created. If unset, the pool will use default Kapsule security group in current zone." }, "labels": { "type": "object", "description": "Kubernetes labels applied and reconciled on the nodes.", "properties": { "": { "type": "string", "description": "Kubernetes labels applied and reconciled on the nodes." } }, "additionalProperties": true }, "taints": { "type": "array", "description": "Kubernetes taints applied and reconciled on the nodes.", "items": { "$ref": "#/components/schemas/scaleway.k8s.v1.CoreV1Taint" } }, "startup_taints": { "type": "array", "description": "Kubernetes taints applied at node creation but not reconciled afterwards.", "items": { "$ref": "#/components/schemas/scaleway.k8s.v1.CoreV1Taint" } } }, "required": [ "name", "node_type", "size" ], "x-properties-order": [ "name", "node_type", "placement_group_id", "autoscaling", "size", "min_size", "max_size", "container_runtime", "autohealing", "tags", "kubelet_args", "upgrade_policy", "zone", "root_volume_type", "root_volume_size", "public_ip_disabled", "security_group_id", "labels", "taints", "startup_taints" ] }