CreateNodePool
post
/20180222/nodePools
Create a new node pool. Specify the following:
- clusterId - The OCID of the cluster where you want to add this node pool. See ListClusters.
- compartmentId - The OCID of the compartment for the node pool. See ListCompartments.
- name - A name for the node pool.
- cniType - Specify FLANNEL_OVERLAY.
- faultDomains - Specify the name of a fault domain. See ListFaultDomains. Do not specify more than one fault domain. To allow the system to select the best fault domains, do not specify any fault domain.
- subnetId - The OCID of the subnet that has the configuration of the worker subnet described in "Creating an OKE Worker Subnet" (https://docs.oracle.com/en/engineered-systems/private-cloud-appliance/3.0-latest/oke/oke-subnet-worker.html#oke-subnet-worker).
- size - The number of nodes to create in the node pool. See "OKE Service Limits" (https://docs.oracle.com/en/engineered-systems/private-cloud-appliance/3.0-latest/oke/oke-overview.html).
- nodeShape - The name of the shape for the node pool nodes. See ListShapes.
- ocpus - If you specify a flexible shape, then you must specify the number of OCPUs per node. You can optionally specify memoryInGBs. By default, the number of gigabytes of memory is 16 times the number of OCPUs.
- sourceType - Specify IMAGE.
- imageID - The OCID of the image to be used to create the nodes. See ListImages. You must specify an image that has -OKE- in its display name, and its Kubernetes version must not be newer than the Kubernetes version that you specified when you created the cluster. Use ListClusters to find the Kubernetes version of your cluster. In the following example, the Kubernetes version of the image is 1.28.3: uln-pca-Oracle-Linux8-OKE-1.28.3-20240210.oci
- sshPublicKey - Your public SSH key.
- Proxy settings. If your network requires proxy settings to enable worker nodes to reach outside registries or repositories, for example, use nodeMetadata to provide values for crio-proxy and crio-noproxy as key/value pairs.
- nodeEvictionNodePoolSettings - Specify how to handle node deletion when you delete a node pool, delete a specified node, decrement the size of the node pool, or change the node pool nodes placement configuration. Use evictionGraceDuration to specify the number of minutes in ISO 8601 format after which OKE will give up eviction (cordon and drain) of the pods on the node. The default is 60 minutes (PT60M), minimum PT1M, maximum PT60M. The isForceDeleteAfterGraceDuration specifies whether the underlying compute instance should be deleted if you cannot evict all the pods within the grace period. Private Cloud Appliance always deletes the compute instance after the grace period even if some pods are not evicted.
Do not specify any value for the OraclePCA-OKE defined tag or for the ClusterResourceIdentifier free-form tag.
To assign defined or freeform tags to all nodes in the node pool, use nodeConfigDetails > definedTags and nodeConfigDetails > freeformTags. The definedTags and freeformTags options in the top-level request body set tags on the node pool resource, not on the nodes.
You cannot customize the OKE cloud-init scripts.
Request
Supported Media Types
- application/json
Header Parameters
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
-
opc-retry-token: string
Minimum Length:
1
Maximum Length:64
A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours.
The details of the node pool to create.
Root Schema : CreateNodePoolDetails
Type:
object
The properties that define a request to create a node pool.
Show Source
-
clusterId(required):
string
The OCID of the cluster to which this node pool is attached.Example:
ocid1.cluster.unique_ID
-
compartmentId(required):
string
The OCID of the compartment in which the node pool exists.Example:
ocid1.compartment.unique_ID
-
definedTags:
object definedTags
Additional Properties Allowed: additionalPropertiesDefined tags for this resource. Each key is predefined and scoped to a namespace. Example: {"Operations": {"CostCenter": "42"}}
-
freeformTags:
object freeformTags
Additional Properties Allowed: additionalPropertiesFree-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. Example: {"Department": "Finance"}
-
initialNodeLabels:
array initialNodeLabels
Not supported. A list of key/value pairs to add to nodes after they join the Kubernetes cluster.
-
kubernetesVersion:
string
The version of Kubernetes to install on the nodes in the node pool.Example:
1.28.3
-
name(required):
string
The name of the node pool. Avoid entering confidential information.Example:
My Node Pool
-
nodeConfigDetails:
object CreateNodePoolNodeConfigDetails
The size and placement configuration of nodes in the node pool.
-
nodeEvictionNodePoolSettings:
object NodeEvictionNodePoolSettings
Node Eviction Details configuration
-
nodeImageName:
string
Deprecated. Use nodeSourceDetails instead. If you specify values for both, this value is ignored. The name of the image running on the nodes in the node pool.Example:
Oracle-Linux-8
-
nodeMetadata:
object nodeMetadata
Additional Properties Allowed: additionalPropertiesA list of key/value pairs to add to each underlying OCI instance in the node pool on launch.
-
nodeShape(required):
string
The name of the node shape of the nodes in the node pool.Example:
VM.PCAStandard1.4
-
nodeShapeConfig:
object CreateNodeShapeConfigDetails
The shape configuration of the nodes.
-
nodeSourceDetails:
object NodeSourceDetails
Discriminator:
sourceType
The details of the node's source. -
quantityPerSubnet:
integer(int32)
Default Value:
1
Optional, default to 1. The number of nodes to create in each subnet specified in subnetIds property. When used, subnetIds is required. This property is deprecated, use nodeConfigDetails instead.Example:1
-
sshPublicKey:
string
The SSH public key on each node in the node pool on launch.Example:
ssh-rsa remainder_of_your_public_SSH_key
-
subnetIds:
array subnetIds
The OCIDs of the subnets in which to place nodes for this node pool. When used, quantityPerSubnet can be provided. This property is deprecated, use nodeConfigDetails. Exactly one of the subnetIds or nodeConfigDetails properties must be specified.
Nested Schema : definedTags
Type:
object
Additional Properties Allowed
Show Source
-
object additionalProperties
Additional Properties Allowed: additionalPropertiesKey-value pair representing a defined tag key and value, scoped to a namespace. Example: {"CostCenter": "42"}
Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: {"Operations": {"CostCenter": "42"}}
Example:
{
"Operations":{
"CostCenter":"42"
}
}
Nested Schema : freeformTags
Type:
object
Additional Properties Allowed
Show Source
Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. Example: {"Department": "Finance"}
Example:
{
"Department":"Finance"
}
Nested Schema : initialNodeLabels
Type:
array
Not supported. A list of key/value pairs to add to nodes after they join the Kubernetes cluster.
Show Source
-
Array of:
object KeyValue
The properties that define a key value pair.
Nested Schema : CreateNodePoolNodeConfigDetails
Type:
object
The size and placement configuration of nodes in the node pool.
Show Source
-
definedTags:
object definedTags
Additional Properties Allowed: additionalPropertiesDefined tags for each node in the node pool. Each key is predefined and scoped to a namespace. Example: {"Operations": {"CostCenter": "42"}}
-
freeformTags:
object freeformTags
Additional Properties Allowed: additionalPropertiesFree-form tags for each node in the node pool. Each tag is a simple key-value pair with no predefined name, type, or namespace. Example: {"Department": "Finance"}
-
isPvEncryptionInTransitEnabled:
boolean
Default Value:
false
Whether to enable in-transit encryption for the data volume's paravirtualized attachment. This field applies to both block volumes and boot volumes. The default value is false. -
kmsKeyId:
string
The OCID of the Key Management Service key assigned to the boot volume.
-
nodePoolPodNetworkOptionDetails:
object NodePoolPodNetworkOptionDetails
Discriminator:
cniType
The CNI type and network details for the pods of a given node pool. -
nsgIds:
array nsgIds
Maximum Number of Items:
5
Unique Items Required:true
The OCIDs of the Network Security Groups (NSGs) to associate nodes for this node pool with. -
placementConfigs(required):
array placementConfigs
The placement configurations for the node pool. Provide one placement configuration for each availability domain in which you intend to launch a node. To use the node pool with a regional subnet, provide a placement configuration for each availability domain, and include the regional subnet in each placement configuration.
-
size(required):
integer(int32)
The number of nodes that should be in the node pool.
Nested Schema : NodeEvictionNodePoolSettings
Type:
object
Node Eviction Details configuration
Show Source
-
evictionGraceDuration:
string
Number of minutes in ISO 8601 format after which OKE will give up eviction (cordon and drain) of the pods on the node. Default PT60M, minimum PT1M, maximum PT60M.Example:
PT30M
-
isForceDeleteAfterGraceDuration:
boolean
Default Value:
true
Whether the underlying compute instance should be deleted if you cannot evict all the pods within the grace period. Private Cloud Appliance always deletes the compute instance after the grace period even if some pods are not evicted.
Nested Schema : nodeMetadata
Type:
object
Additional Properties Allowed
Show Source
A list of key/value pairs to add to each underlying OCI instance in the node pool on launch.
Nested Schema : CreateNodeShapeConfigDetails
Type:
object
The shape configuration of the nodes.
Match All
Show Source
-
object
NodeShapeConfig
The shape configuration of the nodes.
Nested Schema : NodeSourceDetails
Type:
object
Discriminator:
sourceType
The details of the node's source.
Show Source
-
sourceType(required):
string
Allowed Values:
[ "IMAGE" ]
The source type for the node. Use IMAGE when specifying an OCID of an image.
Nested Schema : subnetIds
Type:
array
The OCIDs of the subnets in which to place nodes for this node pool. When used, quantityPerSubnet can be provided. This property is deprecated, use nodeConfigDetails. Exactly one of the subnetIds or nodeConfigDetails properties must be specified.
Show Source
-
Array of:
string
Minimum Length:
1
Maximum Length:255
Nested Schema : additionalProperties
Type:
object
Additional Properties Allowed
Show Source
-
object additionalProperties
The value of the tag. Only the String type is supported.
Key-value pair representing a defined tag key and value, scoped to a namespace. Example: {"CostCenter": "42"}
Nested Schema : additionalProperties
Type:
object
The value of the tag. Only the String type is supported.
Nested Schema : KeyValue
Type:
object
The properties that define a key value pair.
Show Source
-
key:
string
The key of the pair.Example:
mykey
-
value:
string
The value of the pair.Example:
myvalue
Nested Schema : definedTags
Type:
object
Additional Properties Allowed
Show Source
-
object additionalProperties
Additional Properties Allowed: additionalPropertiesKey-value pair representing a defined tag key and value, scoped to a namespace. Example: {"CostCenter": "42"}
Defined tags for each node in the node pool. Each key is predefined and scoped to a namespace. Example: {"Operations": {"CostCenter": "42"}}
Example:
{
"Operations":{
"CostCenter":"42"
}
}
Nested Schema : freeformTags
Type:
object
Additional Properties Allowed
Show Source
Free-form tags for each node in the node pool. Each tag is a simple key-value pair with no predefined name, type, or namespace. Example: {"Department": "Finance"}
Example:
{
"Department":"Finance"
}
Nested Schema : NodePoolPodNetworkOptionDetails
Type:
object
Discriminator:
cniType
The CNI type and network details for the pods of a given node pool.
Show Source
-
cniType(required):
string
Minimum Length:
1
Maximum Length:255
Allowed Values:[ "FLANNEL_OVERLAY" ]
The CNI plugin used by this node pool.
Nested Schema : nsgIds
Type:
array
Maximum Number of Items:
5
Unique Items Required:
true
The OCIDs of the Network Security Groups (NSGs) to associate nodes for this node pool with.
Show Source
-
Array of:
string
Minimum Length:
1
Maximum Length:255
Nested Schema : placementConfigs
Type:
array
The placement configurations for the node pool. Provide one placement configuration for each availability domain in which you intend to launch a node. To use the node pool with a regional subnet, provide a placement configuration for each availability domain, and include the regional subnet in each placement configuration.
Show Source
-
Array of:
object NodePoolPlacementConfigDetails
The location where a node pool will place nodes.
Nested Schema : additionalProperties
Type:
object
Additional Properties Allowed
Show Source
-
object additionalProperties
The value of the tag. Only the String type is supported.
Key-value pair representing a defined tag key and value, scoped to a namespace. Example: {"CostCenter": "42"}
Nested Schema : additionalProperties
Type:
object
The value of the tag. Only the String type is supported.
Nested Schema : NodePoolPlacementConfigDetails
Type:
object
The location where a node pool will place nodes.
Show Source
-
availabilityDomain(required):
string
Minimum Length:
1
Maximum Length:255
The availability domain in which to place nodes. Example: AD-1 -
capacityReservationId:
string
Minimum Length:
0
Maximum Length:255
The OCID of the compute capacity reservation in which to place the compute instance. -
faultDomains:
array faultDomains
Maximum Number of Items:
3
Unique Items Required:true
A list of fault domains in which to place nodes. -
preemptibleNodeConfig:
object PreemptibleNodeConfigDetails
Configuration options for preemptible nodes.
-
subnetId(required):
string
Minimum Length:
1
Maximum Length:255
The OCID of the subnet in which to place nodes. Specify a subnet that has configuration like the worker subnet described in "Creating an OKE Worker Subnet" (https://docs.oracle.com/en/engineered-systems/private-cloud-appliance/3.0-latest/oke/oke-subnet-worker.html#oke-subnet-worker). The subnet must have rules set to communicate with the control plane endpoint. The subnet must use the private route table and must have a security list like the worker-seclist security list.
Nested Schema : faultDomains
Type:
array
Maximum Number of Items:
3
Unique Items Required:
true
A list of fault domains in which to place nodes.
Show Source
-
Array of:
string
Minimum Length:
0
Maximum Length:255
Nested Schema : PreemptibleNodeConfigDetails
Type:
object
Configuration options for preemptible nodes.
Show Source
-
preemptionAction(required):
object PreemptionAction
Discriminator:
type
The action to run when the preemptible node is interrupted for eviction.
Nested Schema : PreemptionAction
Type:
object
Discriminator:
type
The action to run when the preemptible node is interrupted for eviction.
Show Source
-
type(required):
string
Allowed Values:
[ "TERMINATE" ]
The type of action to run when the instance is interrupted for eviction.
Nested Schema : NodeShapeConfig
Type:
object
The shape configuration of the nodes.
Show Source
-
memoryInGBs:
number(float)
Minimum Value:
0
The total amount of memory available to each node, in gigabytes. -
ocpus:
number(float)
Minimum Value:
0
The total number of OCPUs available to each node in the node pool.
Response
Supported Media Types
- application/json
202 Response
Accepted
Headers
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
-
opc-work-request-id: string
The OCID of the work request handling the operation.
400 Response
Bad Request
Headers
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
Root Schema : Error
Type:
object
The properties that define an error.
Show Source
-
code(required):
string
A short error code that defines the error, meant for programmatic parsing..Example:
UnknownError
-
message(required):
string
A human-readable error string.Example:
error validating payload
401 Response
Unauthorized
Headers
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
Root Schema : Error
Type:
object
The properties that define an error.
Show Source
-
code(required):
string
A short error code that defines the error, meant for programmatic parsing..Example:
UnknownError
-
message(required):
string
A human-readable error string.Example:
error validating payload
404 Response
Not Found
Headers
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
Root Schema : Error
Type:
object
The properties that define an error.
Show Source
-
code(required):
string
A short error code that defines the error, meant for programmatic parsing..Example:
UnknownError
-
message(required):
string
A human-readable error string.Example:
error validating payload
409 Response
Conflict
Headers
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
Root Schema : Error
Type:
object
The properties that define an error.
Show Source
-
code(required):
string
A short error code that defines the error, meant for programmatic parsing..Example:
UnknownError
-
message(required):
string
A human-readable error string.Example:
error validating payload
429 Response
Too Many Requests
Headers
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
Root Schema : Error
Type:
object
The properties that define an error.
Show Source
-
code(required):
string
A short error code that defines the error, meant for programmatic parsing..Example:
UnknownError
-
message(required):
string
A human-readable error string.Example:
error validating payload
500 Response
Internal Server Error
Headers
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
Root Schema : Error
Type:
object
The properties that define an error.
Show Source
-
code(required):
string
A short error code that defines the error, meant for programmatic parsing..Example:
UnknownError
-
message(required):
string
A human-readable error string.Example:
error validating payload
Default Response
An error has occurred.
Headers
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
Root Schema : Error
Type:
object
The properties that define an error.
Show Source
-
code(required):
string
A short error code that defines the error, meant for programmatic parsing..Example:
UnknownError
-
message(required):
string
A human-readable error string.Example:
error validating payload