Skip to content

Create a cluster

POST
/api/v1/organizations/{orgID}/clusters
curl --request POST \
--url https://api.aetherplatform.cloud/api/v1/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/clusters \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "region": "example", "k8s_version": "example" }'

Creates a cluster and begins asynchronous provisioning. Returns 202 with the cluster record in provisioning status.

orgID
required
string format: uuid

Organization UUID.

Media type application/json
object
name
required
string
region
required
string
k8s_version
required

A supported Kubernetes version as MAJOR.MINOR (e.g. “1.33”) or full MAJOR.MINOR.PATCH. Bare minors resolve to the latest available patch.

string
Example generated
{
"name": "example",
"region": "example",
"k8s_version": "example"
}

Cluster accepted for provisioning.

Media type application/json
object
id
required
string format: uuid
org_id
required
string format: uuid
name
required
string
region
required
string
k8s_version
required
string
status
required
string
Allowed values: provisioning running upgrading degraded deleting failed
status_message
string | null
endpoint
string | null
observed_kubernetes_version

The version aether-operator reports once a rollout settles.

string | null
capi_cluster_name
string | null
keycloak_realm
string | null
harbor_project
string | null
ceph_pool
string | null
lb_subnet
string | null
worker_subnet

The per-cluster worker /24 (read-only; allocated at create time).

string | null
created_at
required
string format: date-time
updated_at
required
string format: date-time
Example
{
"status": "provisioning"
}

Missing or invalid credentials.

Media type application/json
object
error
required
object
code
required

A stable, machine-readable error code.

string
message
required
string
details
Array<object>
object
field
required
string
code
required
string
message
required
string
Example generated
{
"error": {
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}
}

The resource already exists or conflicts with current state.

Media type application/json
object
error
required
object
code
required

A stable, machine-readable error code.

string
message
required
string
details
Array<object>
object
field
required
string
code
required
string
message
required
string
Example generated
{
"error": {
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}
}

Request validation failed.

Media type application/json
object
error
required
object
code
required

A stable, machine-readable error code.

string
message
required
string
details
Array<object>
object
field
required
string
code
required
string
message
required
string
Example generated
{
"error": {
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}
}

A required backend dependency is unavailable.

Media type application/json
object
error
required
object
code
required

A stable, machine-readable error code.

string
message
required
string
details
Array<object>
object
field
required
string
code
required
string
message
required
string
Example generated
{
"error": {
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}
}