Orka API Server

Download OpenAPI specification:

An API Server that serves as an efficient gateway for managing VMs, Nodes, Images, and more within Orka clusters.

Configuration

Expose the underlying Kubernetes cluster information

Responses

Response samples

Content type
application/json
{
  • "apiDomain": "string",
  • "apiEndpoint": "string",
  • "appClientId": "string",
  • "baseOauthEndpoint": "string",
  • "certData": "string",
  • "gpuPassthroughEnabled": true
}

Custom TLS Certificate upload

Authorizations:
BearerTokenAuth
Request Body schema: multipart/form-data
required
certPath
required
string <binary>

The certificate body in PEM format.

keyPath
required
string <binary>

The key body in PEM format.

Responses

Response samples

Content type
application/json
"string"

Namespaces

List Orka namespaces

Authorizations:
BearerTokenAuth

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Create an Orka namespace

Authorizations:
BearerTokenAuth
Request Body schema: application/json
required

body

enableCustomPods
boolean
name
required
string

Responses

Request samples

Content type
application/json
{
  • "enableCustomPods": true,
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "apiVersion": "string",
  • "code": 0,
  • "details": {
    },
  • "kind": "string",
  • "message": "string",
  • "metadata": {
    },
  • "reason": "",
  • "status": "string"
}

Get Orka namespace

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

Responses

Response samples

Content type
application/json
{
  • "customPods": true,
  • "name": "string"
}

Delete an Orka namespace

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

Orka namespace to delete

Responses

Response samples

Content type
application/json
{
  • "apiVersion": "string",
  • "code": 0,
  • "details": {
    },
  • "kind": "string",
  • "message": "string",
  • "metadata": {
    },
  • "reason": "",
  • "status": "string"
}

Image Cache

List cached images

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Add image to cache on specified node(s)

The status code for each node the image is being cached on is returned. 202 is returned when the caching is started on the node. 500 is returned along with the error if the caching job cannot start on the node.

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

Request Body schema: application/json
required

body

all
boolean
image
required
string
nodes
Array of strings
tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "all": true,
  • "image": "sonoma-90gb-orka3-arm",
  • "nodes": [
    ],
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get cached image status

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

image
required
string

image name

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Images

List images

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Generate an image

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the generated Image

Request Body schema: application/json
required

body

description
string
name
required
string
size
required
string

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "name": "string",
  • "size": "string"
}

Response samples

Content type
application/json
{
  • "statusUrl": "string"
}

Get an image

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

image
required
string

image

Responses

Response samples

Content type
application/json
{
  • "description": "string",
  • "error": "string",
  • "name": "string",
  • "size": "string",
  • "spaceUsed": "string",
  • "state": "Ready",
  • "type": "amd64"
}

Delete an image

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

image
required
string

image

Responses

Copy an image

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the Image

image
required
string

name of the Image

Request Body schema: application/json
required

body

description
string
destination
required
string

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "destination": "string"
}

Response samples

Content type
application/json
{
  • "statusUrl": "string"
}

Set image description

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

image
required
string

image

Request Body schema: application/json
required

body

description
required
string

Responses

Request samples

Content type
application/json
{
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "statusUrl": "string"
}

Download an image

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the Image

image
required
string

name of the Image

Responses

Response samples

Content type
application/json
"string"

Upload an image

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

The namespace of the image

query Parameters
name
required
string

The name of the image

description
string

The description of the image

Request Body schema: multipart/form-data
required
file
required
string <binary>

The image file

Responses

ISOs

List ISOs

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get an ISO

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

iso
required
string

iso

Responses

Response samples

Content type
application/json
{
  • "description": "string",
  • "error": "string",
  • "name": "string",
  • "size": "string",
  • "state": "Ready"
}

Delete an ISO

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

iso
required
string

iso

Responses

Response samples

Content type
application/json
{
  • "apiVersion": "string",
  • "code": 0,
  • "details": {
    },
  • "kind": "string",
  • "message": "string",
  • "metadata": {
    },
  • "reason": "",
  • "status": "string"
}

Copy an ISO

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the ISO

iso
required
string

name of the ISO

Request Body schema: application/json
required

body

description
string
destination
required
string

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "destination": "string"
}

Response samples

Content type
application/json
{
  • "statusUrl": "string"
}

Set ISO description

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

iso
required
string

iso

Request Body schema: application/json
required

body

description
required
string

Responses

Request samples

Content type
application/json
{
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "statusUrl": "string"
}

Download an ISO

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the Iso

iso
required
string

name of the Iso

Responses

Response samples

Content type
application/json
"string"

Upload an ISO

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

The namespace of the image

query Parameters
name
required
string

The name of the iso

description
string

The description of the iso

Request Body schema: multipart/form-data
required
file
required
string <binary>

The ISO file

Responses

Nodes

List nodes

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Set the namespace of a node

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

current namespace of the node

name
required
string

name of the node

Request Body schema: application/json
required

body

namespace
required
string

Responses

Request samples

Content type
application/json
{
  • "namespace": "string"
}

Response samples

Content type
application/json
{
  • "apiVersion": "string",
  • "code": 0,
  • "details": {
    },
  • "kind": "string",
  • "message": "string",
  • "metadata": {
    },
  • "reason": "",
  • "status": "string"
}

Tag a node

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

name
required
string

name

Request Body schema: application/json
required

body

value
required
string

Responses

Request samples

Content type
application/json
{
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "namespace": "string",
  • "operation": "string",
  • "tags": [
    ]
}

Untag a node

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

name
required
string

name

Request Body schema: application/json
required

body

value
required
string

Responses

Request samples

Content type
application/json
{
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "namespace": "string",
  • "operation": "string",
  • "tags": [
    ]
}

Remote Images

List remote images

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get a remote image

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

remoteimage
required
string

remote image name

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "size": "string",
  • "type": "amd64"
}

Pull a remote image

path Parameters
namespace
required
string

namespace

remoteimage
required
string

name of the RemoteImage

Request Body schema: application/json
required

body

description
string
destination
string

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "destination": "string"
}

Response samples

Content type
application/json
{
  • "statusUrl": "string"
}

Remote ISOs

List remote ISOs

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get a remote ISO

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

remoteiso
required
string

remoteiso

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "size": "string"
}

Pull a remote ISO

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

remoteiso
required
string

remote iso name

Request Body schema: application/json

body

description
string
destination
string

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "destination": "string"
}

Response samples

Content type
application/json
{
  • "statusUrl": "string"
}

Role Bindings

List role binding subjects

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Add subjects to a role binding

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

Request Body schema: application/json
required

subjects

Array of objects (v1.ServiceAccountRequestModel)
users
Array of strings

Responses

Request samples

Content type
application/json
{
  • "serviceaccounts": [
    ],
  • "users": [
    ]
}

Remove subjects from a role binding

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the rolebinding

Request Body schema: application/json
required

subjects

Array of objects (v1.ServiceAccountRequestModel)
users
Array of strings

Responses

Request samples

Content type
application/json
{
  • "serviceaccounts": [
    ],
  • "users": [
    ]
}

Secrets

List registry server names

Get the list of registry server names from the credentials store.

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the secret

Responses

Response samples

Content type
application/json

Add registry credentials

Add registry authentication details to the credentials store. Registry credentials are required to push and pull OCI-compatible ARM Orka images to or from private repositories. The server name must include the scheme, hostname and (optionally) port. For example, https://ghcr.io or https://10.221.188.5:30080. If insecure communication is allowed, requests to the registry server will fallback to HTTP when HTTPS is unavailable (disabled by default). To replace credentials for a given server name, set the replace parameter to true.

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the secret

Request Body schema: application/json
required

body

allowInsecure
boolean
password
required
string
replace
boolean
server
required
string
username
required
string

Responses

Request samples

Content type
application/json
{
  • "allowInsecure": true,
  • "password": "p@ssw0rd",
  • "replace": true,
  • "server": "https://ghcr.io",
  • "username": "admin"
}

Response samples

Content type
application/json
{
  • "apiVersion": "string",
  • "code": 0,
  • "details": {
    },
  • "kind": "string",
  • "message": "string",
  • "metadata": {
    },
  • "reason": "",
  • "status": "string"
}

Remove registry credentials

Remove registry authentication details from the credentials store. The server name must include the scheme, hostname and (optionally) port. For example, https://ghcr.io or https://10.221.188.5:30080.

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the secret

Request Body schema: application/json
required

body

server
required
string

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "apiVersion": "string",
  • "code": 0,
  • "details": {
    },
  • "kind": "string",
  • "message": "string",
  • "metadata": {
    },
  • "reason": "",
  • "status": "string"
}

Service Accounts

List service accounts

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get a service account

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

serviceaccount
required
string

name of the service account

Responses

Create a service account

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the service account

serviceaccount
required
string

name of the service account

Responses

Response samples

Content type
application/json
{
  • "apiVersion": "string",
  • "code": 0,
  • "details": {
    },
  • "kind": "string",
  • "message": "string",
  • "metadata": {
    },
  • "reason": "",
  • "status": "string"
}

Delete a service account

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the service account

serviceaccount
required
string

name of the service account

Responses

Response samples

Content type
application/json
{
  • "apiVersion": "string",
  • "code": 0,
  • "details": {
    },
  • "kind": "string",
  • "message": "string",
  • "metadata": {
    },
  • "reason": "",
  • "status": "string"
}

Request a service account token

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the service account

serviceaccount
required
string

name of the service account

Request Body schema: application/json
required

body

duration
string
noExpiration
boolean

Responses

Request samples

Content type
application/json
{
  • "duration": "string",
  • "noExpiration": true
}

Response samples

Content type
application/json
{
  • "token": "string"
}

VM Configs

List VM configs

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Create a VM config

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

Request Body schema: application/json
required

vmconfig

cpu
integer
displayDPI
integer
displayHeight
integer
displayWidth
integer
gpuPassthrough
boolean
image
string
iso
string
legacyIO
boolean
Default: false
memory
number
name
string
netBoost
boolean
nodeName
string
scheduler
string
systemSerial
string
tag
string
tagRequired
boolean
vncConsole
boolean

Responses

Request samples

Content type
application/json
{
  • "cpu": 0,
  • "displayDPI": 0,
  • "displayHeight": 0,
  • "displayWidth": 0,
  • "gpuPassthrough": true,
  • "image": "string",
  • "iso": "string",
  • "legacyIO": false,
  • "memory": 0,
  • "name": "string",
  • "netBoost": true,
  • "nodeName": "string",
  • "scheduler": "string",
  • "systemSerial": "string",
  • "tag": "string",
  • "tagRequired": true,
  • "vncConsole": true
}

Response samples

Content type
application/json
{
  • "cpu": 0,
  • "displayDPI": 0,
  • "displayHeight": 0,
  • "displayWidth": 0,
  • "gpuPassthrough": true,
  • "image": "string",
  • "iso": "string",
  • "legacyIO": true,
  • "memory": 0,
  • "name": "string",
  • "netBoost": true,
  • "nodeName": "string",
  • "scheduler": "string",
  • "systemSerial": "string",
  • "tag": "string",
  • "tagRequired": true,
  • "type": "string",
  • "vncConsole": true
}

Get a VM Config

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

vmconfig
required
string

name of the VirtualMachineConfig

Responses

Response samples

Content type
application/json
{
  • "cpu": 0,
  • "displayDPI": 0,
  • "displayHeight": 0,
  • "displayWidth": 0,
  • "gpuPassthrough": true,
  • "image": "string",
  • "iso": "string",
  • "legacyIO": true,
  • "memory": 0,
  • "name": "string",
  • "netBoost": true,
  • "nodeName": "string",
  • "scheduler": "string",
  • "systemSerial": "string",
  • "tag": "string",
  • "tagRequired": true,
  • "type": "string",
  • "vncConsole": true
}

Delete a VM config

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the VirtualMachineConfig

vmconfig
required
string

name of the VirtualMachineConfig

Responses

Response samples

Content type
application/json
{
  • "apiVersion": "string",
  • "code": 0,
  • "details": {
    },
  • "kind": "string",
  • "message": "string",
  • "metadata": {
    },
  • "reason": "",
  • "status": "string"
}

VMs

List VMs

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the VirtualMachineInstances

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Deploy a VM

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

the namespace where the VirtualMachineInstance will be deployed

Request Body schema: application/json
required

body (vmConfig or image field is required)

cpu
integer
object
displayDPI
integer
displayHeight
integer
displayWidth
integer
gpuPassthrough
boolean
image
string
iso
string
legacyIO
boolean
Default: false
memory
number
name
string
netBoost
boolean
node
string
reservedPorts
string
scheduler
string
shouldGenerateName
boolean
systemSerial
string
tag
string
tagRequired
boolean
timeout
integer
vmConfig
string
vnc
boolean

Responses

Request samples

Content type
application/json
{
  • "cpu": 0,
  • "customMetadata": {
    },
  • "displayDPI": 0,
  • "displayHeight": 0,
  • "displayWidth": 0,
  • "gpuPassthrough": true,
  • "image": "string",
  • "iso": "string",
  • "legacyIO": false,
  • "memory": 0,
  • "name": "string",
  • "netBoost": true,
  • "node": "string",
  • "reservedPorts": "string",
  • "scheduler": "string",
  • "shouldGenerateName": true,
  • "systemSerial": "string",
  • "tag": "string",
  • "tagRequired": true,
  • "timeout": 0,
  • "vmConfig": "string",
  • "vnc": true
}

Response samples

Content type
application/json
{
  • "ip": "string",
  • "memory": "string",
  • "name": "string",
  • "node": "string",
  • "portWarnings": "string",
  • "screenshare": 0,
  • "ssh": 0,
  • "status": "Running",
  • "vnc": 0
}

Get a VM

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the VirtualMachineInstance

vm
required
string

name of the VirtualMachineInstance

Responses

Response samples

Content type
application/json
{
  • "cpu": 0,
  • "deployDate": "string",
  • "displayDPI": 0,
  • "displayHeight": 0,
  • "displayWidth": 0,
  • "gpuPassthrough": true,
  • "image": "string",
  • "ip": "string",
  • "iso": "string",
  • "memory": "string",
  • "name": "string",
  • "node": "string",
  • "owner": "string",
  • "reservedPorts": "string",
  • "screenshare": 0,
  • "ssh": 0,
  • "status": "string",
  • "type": "string",
  • "vnc": 0
}

Delete a VM

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the VirtualMachineInstance

vm
required
string

name of the VirtualMachineInstance

Responses

Response samples

Content type
application/json
{
  • "apiVersion": "string",
  • "code": 0,
  • "details": {
    },
  • "kind": "string",
  • "message": "string",
  • "metadata": {
    },
  • "reason": "",
  • "status": "string"
}

Commit an image

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the VirtualMachineInstance

vm
required
string

name of the VirtualMachineInstance

Request Body schema: application/json
required

body

description
string

Responses

Request samples

Content type
application/json
{
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "statusUrl": "string"
}

Execute a VM command

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the VirtualMachineInstance

vm
required
string

name of the VirtualMachineInstance

Request Body schema: application/json
required

body

command
required
string (vmiexec.VMCommand)
Enum: "start" "stop" "resume" "suspend" "revert"

Responses

Request samples

Content type
application/json
{
  • "command": "start"
}

Response samples

Content type
application/json
{
  • "apiVersion": "string",
  • "code": 0,
  • "details": {
    },
  • "kind": "string",
  • "message": "string",
  • "metadata": {
    },
  • "reason": "",
  • "status": "string"
}

Push an image from a running VM to an OCI-compatible registry

The state of a running VM is saved on the host and pushed to an OCI-compatible registry, e.g. GitHub Packages. Registry credentials are required to authenticate to the registry for the push operation. See registrycredentials for more information. The response body contains the name of the Kubernetes job running the push operation.

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace

vm
required
string

vm

Request Body schema: application/json
required

body

imageReference
required
string

Responses

Request samples

Content type
application/json
{
  • "imageReference": "ghcr.io/organization-name/orka-images/base:latest"
}

Response samples

Content type
application/json
{
  • "jobName": "string"
}

Resize a VM disk

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the VirtualMachineInstance

vm
required
string

name of the VirtualMachineInstance

Request Body schema: application/json
required

body

size
required
integer
vmPassword
string
vmUser
string

Responses

Request samples

Content type
application/json
{
  • "size": 0,
  • "vmPassword": "string",
  • "vmUser": "string"
}

Response samples

Content type
application/json
{
  • "apiVersion": "string",
  • "code": 0,
  • "details": {
    },
  • "kind": "string",
  • "message": "string",
  • "metadata": {
    },
  • "reason": "",
  • "status": "string"
}

Save a new image from a running VM

Authorizations:
BearerTokenAuth
path Parameters
namespace
required
string

namespace of the VirtualMachineInstance

vm
required
string

name of the VirtualMachineInstance

Request Body schema: application/json
required

body

description
string
imageName
required
string

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "imageName": "string"
}

Response samples

Content type
application/json
{
  • "statusUrl": "string"
}

Version

Get Version

Responses

Response samples

Content type
application/json
{
  • "apiVersion": "string",
  • "operatorVersion": "string"
}