CreateCluster
/20180222/clusters
Create a new OKE cluster. The Network Load Balancer and public IP address are created and assigned as part of cluster creation.
Before you create a cluster, use ListTagNamespaces and ListTags to ensure that the OraclePCA-OKE.cluster_id
defined tag exists.
To configure the network, see "Creating Network Resources" (https://docs.oracle.com/en/engineered-systems/private-cloud-appliance/3.0-latest/oke/oke-network.html) in Oracle Private Cloud Appliance Container Engine for Kubernetes.
Specify the following:
- clusterPodNetworkOptions > cniType - Specify FLANNEL_OVERLAY.
- compartmentId - The OCID of the compartment for the cluster. See ListCompartments.
- endpointConfig > isPublicIpEnabled - Set this to true.
- endpointConfig > subnetId - The OCID of the subnet that has the configuration of the control-plane-endpoint subnet described in "Creating an OKE Control Plane Load Balancer Subnet" (https://docs.oracle.com/en/engineered-systems/private-cloud-appliance/3.0-latest/oke/oke-subnet-controlplanelb.html#oke-subnet-controlplanelb).
- kubernetesVersion - The version of Kubernetes to run on the control plane nodes. Supported versions of Kubernetes are 1.28.x, 1.27.x, and 1.26.x.
- name - A name for the cluster.
- options > podsCidr - The default value is 10.244.0.0/16.
- options > servicesCidr - The default value is 10.96.0.0/16.
- options > serviceLbSubnetIds - The OCID of the subnet that has the configuration of the service-lb subnet described in "Creating an OKE Worker Load Balancer Subnet" (https://docs.oracle.com/en/engineered-systems/private-cloud-appliance/3.0-latest/oke/oke-subnet-workerlb.html#oke-subnet-workerlb). Do not specify more than one subnet.
- vcnId - The OCID of the VCN that has the configuration of the oke_vcn VCN described in "Creating an OKE VCN" (https://docs.oracle.com/en/engineered-systems/private-cloud-appliance/3.0-latest/oke/oke-vcn.html#oke-vcn).
Use defined tags to provide the following information for control plane nodes. The tag namespace for all of these tags is OraclePCA. For more information about these parameters, see "Creating an OKE Cluster" (https://docs.oracle.com/en/engineered-systems/private-cloud-appliance/3.0-latest/oke/oke-cluster-create.html#oke-cluster-create).
- sshkey - Your public SSH key.
- cpNodeCount - 1, 3, or 5.
- cpNodeShape - The shape of the control plane nodes.
- cpNodeShapeConfig - The configuration of the node shape if you specified a flexible shape: number of OCPUs and gigabytes of memory.
Do not specify values for the OraclePCA-OKE defined tag or for the ClusterResourceIdentifier free-form tag.
Request
- application/json
-
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.
object
-
clusterPodNetworkOptions:
array clusterPodNetworkOptions
Maximum Number of Items:
255
Unique Items Required:true
Available CNIs and network options for existing and new node pools of the cluster. -
compartmentId(required):
string
The OCID of the compartment in which to create the cluster.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: {"OraclePCA": {"sshkey": "ssh-rsa remainder_of_your_public_SSH_key", "cpNodeCount": 1, "cpNodeShape": "VM.PCAStandard1.Flex", "cpNodeShapeConfig": {"ocpus": 2, "memoryInGBs": 24}}}
-
endpointConfig:
object CreateClusterEndpointConfigDetails
The properties that define the network configuration for the Cluster endpoint.
-
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"}
-
governancePolicyConfig:
object CreateGovernancePolicyConfigDetails
The properties that define policy governance.
-
imagePolicyConfig:
object CreateImagePolicyConfigDetails
The properties that define an image verification policy.
-
kmsKeyId:
string
Minimum Length:
1
Maximum Length:255
The OCID of the KMS key to be used as the master encryption key for Kubernetes secret encryption. -
kubernetesVersion(required):
string
The version of Kubernetes to install on the control plane nodes.Example:
1.28.3
-
name(required):
string
The name of the cluster. Avoid entering confidential information.Example:
My Cluster
-
options:
object ClusterCreateOptions
The properties that define extra options for a cluster.
-
vcnId(required):
string
The OCID of the VCN that has the configuration of the oke_vcn VCN described in "Creating an OKE VCN" (https://docs.oracle.com/en/engineered-systems/private-cloud-appliance/3.0-latest/oke/oke-vcn.html#oke-vcn).Example:
ocid1.vcn.unique_ID
array
255
true
-
Array of:
object ClusterPodNetworkOptionDetails
Discriminator:
cniType
The CNI type and network details applicable to the node pools of the cluster.
object
-
object additionalProperties
Additional Properties Allowed: additionalPropertiesKey-value pair representing a defined tag key and value, scoped to a namespace. Example: {"sshkey": "ssh-rsa remainder_of_your_public_SSH_key"}
{
"OraclePCA":{
"sshkey":"ssh-rsa remainder_of_your_public_SSH_key",
"cpNodeCount":"1",
"cpNodeShape":"VM.PCAStandard1.Flex",
"cpNodeShapeConfig":{
"ocpus":"2",
"memoryInGBs":"24"
}
}
}
object
-
object
ClusterEndpointConfig
The properties that define the network configuration for the Cluster endpoint.
object
{
"Department":"Finance"
}
object
-
object
GovernancePolicyConfig
The properties that define whether policy governance is enabled.
object
-
object
ImagePolicyConfig
The properties that define a image verification policy.
object
-
addOns:
object AddOnOptions
The properties that define options for supported add-ons.
-
admissionControllerOptions:
object AdmissionControllerOptions
The properties that define supported admission controllers.
-
kubernetesNetworkConfig:
object KubernetesNetworkConfig
The properties that define the network configuration for Kubernetes.
-
persistentVolumeConfig:
object PersistentVolumeConfigDetails
Configuration to be applied to block volumes created by Kubernetes Persistent Volume Claims (PVC)
-
serviceLbConfig:
object ServiceLbConfigDetails
Configuration to be applied to load balancers created by Kubernetes services
-
serviceLbSubnetIds:
array serviceLbSubnetIds
The subnet that is configured to host the load balancer in an OKE cluster. Specify the OCID of the subnet that has the configuration of the service-lb subnet described in "Creating an OKE Worker Load Balancer Subnet" (https://docs.oracle.com/en/engineered-systems/private-cloud-appliance/3.0-latest/oke/oke-subnet-workerlb.html#oke-subnet-workerlb). Do not specify more than one subnet.
object
cniType
-
cniType(required):
string
Minimum Length:
1
Maximum Length:255
Allowed Values:[ "FLANNEL_OVERLAY" ]
The CNI used by the node pools of this cluster.
object
-
object additionalProperties
The value of the tag. Only the String type is supported.
object
object
-
isPublicIpEnabled:
boolean
Default Value:
false
Whether the cluster should be assigned a public IP address. Defaults to false. Set this to true. -
nsgIds:
array nsgIds
Maximum Number of Items:
5
Unique Items Required:true
A list of the OCIDs of the network security groups (NSGs) to apply to the cluster endpoint. -
subnetId:
string
The regional subnet in which to place the cluster endpoint. Select the subnet that has configuration like the control-plane-endpoint subnet described in "Creating an OKE Control Plane Load Balancer Subnet" (https://docs.oracle.com/en/engineered-systems/private-cloud-appliance/3.0-latest/oke/oke-subnet-controlplanelb.html#oke-subnet-controlplanelb).
array
5
true
-
Array of:
string
Minimum Length:
1
Maximum Length:255
object
-
isPolicyEnabled:
boolean
Default Value:
false
Whether the policy governance is enabled. Defaults to false. -
policyId:
string
Minimum Length:
1
Maximum Length:255
Unique policy identifier.
object
-
isPolicyEnabled:
boolean
Default Value:
false
Whether the image verification policy is enabled. Defaults to false. If set to true, the images will be verified against the policy at runtime. -
keyDetails:
array keyDetails
A list of KMS key details.
array
-
Array of:
object KeyDetails
The properties that define the kms keys used by OKE for Image Signature verification.
object
-
kmsKeyId:
string
Minimum Length:
1
Maximum Length:255
The OCIDs of the KMS key that will be used to verify whether the images are signed by an approved source.
object
-
isKubernetesDashboardEnabled:
boolean
Whether or not to enable the Kubernetes Dashboard add-on.Example:
true
-
isTillerEnabled:
boolean
Whether or not to enable the Tiller add-on.Example:
true
object
-
isPodSecurityPolicyEnabled:
boolean
Default Value:
false
Whether or not to enable the Pod Security Policy admission controller.Example:false
object
-
podsCidr:
string
Default Value:
10.244.0.0/16
The CIDR block for Kubernetes pods. Optional, defaults to 10.244.0.0/16.Example:10.244.0.0/16
-
servicesCidr:
string
Default Value:
10.96.0.0/16
The CIDR block for Kubernetes services. Optional, defaults to 10.96.0.0/16.Example:10.96.0.0/16
object
-
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"}
object
-
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"}
array
-
Array of:
string
Example:
ocid1.subnet.unique_ID
object
-
object additionalProperties
Additional Properties Allowed: additionalPropertiesKey-value pair representing a defined tag key and value, scoped to a namespace. Example: {"CostCenter": "42"}
{
"Operations":{
"CostCenter":"42"
}
}
object
{
"Department":"Finance"
}
object
-
object additionalProperties
The value of the tag. Only the String type is supported.
object
object
-
object additionalProperties
Additional Properties Allowed: additionalPropertiesKey-value pair representing a defined tag key and value, scoped to a namespace. Example: {"CostCenter": "42"}
{
"Operations":{
"CostCenter":"42"
}
}
object
{
"Department":"Finance"
}
object
-
object additionalProperties
The value of the tag. Only the String type is supported.
object
Response
- application/json
202 Response
-
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
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
object
-
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
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
object
-
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
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
object
-
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
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
object
-
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
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
object
-
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
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
object
-
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
-
opc-request-id: string
Unique Oracle-assigned identifier for the request. Provide this request OCID if you need to contact Oracle about this request.
object
-
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