Skip to main content
POST
For the full lifecycle with polling and retry guidance, follow Automate managed Kubernetes with the Ornn API or Launch and manage Slurm through the API. CLI equivalent, after ornn login:

Authorizations

Authorization
string
header
required

Create an organization API key in Account Settings > Developer. Do not send this key to the Kubernetes API server.

Body

application/json
kind
enum<string>
required

The cluster type to launch.

Available options:
kubernetes,
slurm
reservation_id
string<uuid>
required

An active reservation your organization holds. A repeat request for the same reservation returns the same cluster. Use reservationId from the reservation list, not a listing ID.

network_mode
enum<string>
default:public

public exposes the Kubernetes API or Slurm SSH login on the internet, with authentication. private requires a WireGuard connection to your organization's private network.

Available options:
public,
private
network_id
string<uuid> | null

An existing organization network for private access. Used only when network_mode is private. Omit it to use the shared default network; this does not create a network.

node_ids
string<uuid>[]

Host IDs (node_id from the reservation node list), not GPU IDs. Each host must be in bare-metal status, not in another cluster, and on an active reservation your organization owns. Ornn prepares each host before it joins, which stops its processes, wipes the tenant home directory, and removes any VM on it. If this and virtual_machine_ids are both omitted or empty, every bare-metal host on reservation_id is used.

virtual_machine_ids
string<uuid>[]

Existing VMs on reservations your organization owns to use as workers. A VM must not be deleted, destroyed, or offline. Do not list a VM and its host in node_ids in the same request.

node_count
integer | null

Optional expected host count; it never selects or limits hosts. Kubernetes ignores it. Slurm rejects the launch with 409 cluster_nodes_requested_unavailable when it differs from the number of hosts that resolved. Omit it, or send exactly the number of hosts you list.

ssh_key_ids
string<uuid>[]

Slurm only. Organization SSH key IDs (ssh_keys[].id from GET /v1/organizations/{organization_id}/ssh-keys) to authorize on the login node. Omit to authorize every active key in your organization; with no active key, Slurm launch returns 409 slurm_ssh_key_required. Kubernetes ignores this field.

cluster_name
string | null
deprecated

Accepted for compatibility and ignored.

Response

Launch accepted. node_count and gpu_count count workers attached so far and are usually 0 in this response. Poll listClusters for progress.

id
string<uuid>
required
state
string
required
kind
string
organization_id
string<uuid> | null
access_mode
string
network_mode
string
endpoint
string | null
credential_state
string
namespace
string | null

The namespace Ornn configures for your workloads.

node_count
integer

Workers attached when this response was built; usually 0 right after a launch.

gpu_count
integer

GPUs on the workers counted in node_count.

progress
object | null

Stages of the latest launch or teardown. Launch stages are create_plane, prepare_hosts, join_workers, apply_plane, and issue_access. Teardown stages include workers and the control-plane stage (namespace for Kubernetes, stack for Slurm), plus nodes or storage when those steps fail.

created_at
string<date-time>
updated_at
string<date-time>