Create cluster API Reference
POST /tenants/{tenant}/clusters
Create a new managed Kubernetes cluster. The cluster will be provisioned asynchronously —
poll the GET endpoint and check status.phase until it reaches “Running”.
Cluster types:
- shared: Cost-effective, runs on shared infrastructure (vCluster). The only supported value today; also the default when
typeis omitted. - dedicated: Reserved for a future release (isolated compute) — not yet supported; requests with
type: 'dedicated'are rejected with a 400.
Resource fields (cpu, memory, storage) use Kubernetes quantity format (e.g., “4”, “500m”, “16Gi”).
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Tenant name
Request Body
Section titled “Request Body ”Cluster configuration
object
Alert configuration (free-form object)
object
Human-readable display name
Example
Production ClusterHighAvailability enables a 3-replica control plane with HA etcd (chart-managed external etcd StatefulSet), anti-affinity, and encrypted-at-rest etcd. Default false. See pricing docs for the hourly rate; charging starts when the operator confirms 3/3 replicas ready (status.haEnabledAt). Create-time-only in v1 — the PATCH endpoint rejects both directions of the toggle.
Example
trueCluster name (DNS-safe, 2-63 characters)
Example
productionResource allocations using Kubernetes quantity format
object
Example
4Example
16GiExample
100GiCluster type. Only “shared” is currently accepted; “dedicated” is reserved for a future release.
Example
sharedKubernetes version (optional; when omitted the platform default version is used)
Example
1.32Responses
Section titled “ Responses ”Cluster created
object
object
Example
2026-02-01T14:00:00ZExample
Production ClusterExample
trueExample
productionExample
294810object
Example
4Example
16GiExample
100Giobject
object
Example
https://production.acme.clusters.kupe.cloudHAConfigured is true once the operator has confirmed both 3/3 apiserver replicas AND 3/3 deployed-etcd replicas are Ready for the first time. Etcd readiness is required because in the OSS deployed-etcd path etcd runs in its own StatefulSet — quorum loss with healthy apiserver pods would block writes, so HA is not “operationally ready” until both tiers report 3/3.
Example
trueHAEnabledAt is the moment HAConfigured first became true and acts as the billing anchor. Stamped once, never updated, never cleared (v1 has no HA->single transition).
Example
2026-05-25T14:32:11ZHAEtcdReplicasDesired is the target HA etcd replica count (3 when HA is enabled, 0 otherwise).
Example
3HAEtcdReplicasReady is the count of deployed-etcd replicas currently Ready. Exposed separately from HAReplicasReady because in the OSS deployed-etcd path the etcd StatefulSet is independent of the apiserver StatefulSet, and etcd quorum loss with healthy CP can leave the cluster unable to serve writes.
Example
3HAPhase is the consumer-friendly HA rollup. One of pending, ha-healthy, ha-degraded, ha-unavailable. Empty for non-HA clusters.
Example
ha-healthyHAReplicasDesired is the target HA replica count (3 when HA is enabled, 0 otherwise).
Example
3HAReplicasReady is the count of HA control-plane (apiserver) replicas currently Ready.
Example
3Example
v1.32.3object
Example
RunningExample
sharedExample
1.32Warnings is an array of structured advisory messages. Always present (empty array when none). Populated today only by CREATE when a non-blocking advisory applies (e.g. HA_K8S_VERSION_RETIRING when HA is enabled on the oldest supported k8s minor). Each entry shares the same shape as a structured error envelope.
object
Example
HA_K8S_VERSION_RETIRINGExample
spec.highAvailabilityExample
Cluster's Kubernetes version (1.33) is approaching end-of-life on the current vCluster chart. Plan an upgrade before enabling HA.Example
warningHeaders
Section titled “Headers ”Resource version
Validation error
object
Missing or invalid authentication
object
Admin access required
object
Cluster name already exists
object
Rate limit exceeded