Cedana
Cedana Docs
Cedana
Cedana Docs
  • Welcome to Cedana
  • Get started
    • Authentication
    • Deploying on Kubernetes
    • Deploying locally
    • Supported container runtimes
  • ARTICLES
    • Performance of Cedana's GPU Interception
    • Cedana vs. CRIU CUDA for GPU Checkpoint/Restore
  • Examples
    • GPU Save, Migrate & Resume (SMR) on Kubernetes
    • Redis Save Migrate & Resume (SMR) on Kubernetes
    • LLaMA Inference GPU Save, Migrate & Resume (SMR)
  • References
    • API
      • API reference
    • Cedana Daemon
    • Cedana CLI
    • GitHub
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. References
  2. API

API reference

PreviousAPI

Last updated 6 months ago

Was this helpful?

Cluster Management APIs

Checkpoint APIs

Restore APIs

  • Cluster Management APIs
  • GETList checkpointable containers on all nodes
  • Checkpoint APIs
  • POSTStart checkpoint of a runc container
  • POSTstart a checkpoint of a containerd container's rootfs
  • POSTstart a checkpoint of a crio container's rootfs
  • POSTFull containerd checkpoint request
  • Restore APIs
  • POSTstart a restore of a containerd container's rootfs
  • POSTstart restore of a runc container

List checkpointable containers on all nodes

get

Returns a list of containers across cedana-managed nodes that can be checkpointed given a specific namespace.

Path parameters
namespacestringRequired

Namespace to list containers from

Body
rootstringRequired
Responses
200
OK
400
Bad Request
404
Not Found
500
Internal Server Error
get
GET /list/{namespace} HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 15

{
  "root": "text"
}

No content

Start checkpoint of a runc container

post

Start a synchronous checkpoint of a runc container. Use /list/:namespace to get the required CheckpointData.

Body
Responses
200
OK
400
Bad Request
404
Not Found
500
Internal Server Error
post
POST /checkpoint HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 125

{
  "checkpoint_data": {
    "checkpoint_path": "text",
    "container_name": "text",
    "namespace": "text",
    "root": "text",
    "sandbox_name": "text"
  }
}

No content

start a checkpoint of a containerd container's rootfs

post

rootfs checkpoint endpoint for containerd

Body
addressstringRequired
container_namestringRequired
image_refstringRequired
namespacestringRequired
rootstringOptional
sandbox_namestringRequired
Responses
200
OK
400
Bad Request
404
Not Found
500
Internal Server Error
post
POST /checkpoint/rootfs HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 116

{
  "address": "text",
  "container_name": "text",
  "image_ref": "text",
  "namespace": "text",
  "root": "text",
  "sandbox_name": "text"
}

No content

start a checkpoint of a crio container's rootfs

post

rootfs checkpoint endpoint for crio

Body
container_namestringRequired
image_refstringRequired
namespacestringRequired
new_image_refstringRequired
rootstringOptional
sandbox_namestringRequired
Responses
200
OK
400
Bad Request
404
Not Found
500
Internal Server Error
post
POST /checkpoint/rootfs/crio HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 195

{
  "container_name": "text",
  "image_ref": "text",
  "namespace": "text",
  "new_image_ref": "text",
  "registry_auth_data": {
    "pull_auth_token": "text",
    "push_auth_token": "text"
  },
  "root": "text",
  "sandbox_name": "text"
}

No content

Full containerd checkpoint request

post

Start a synchronous containerd checkpoint, which includes the rootfs.

Body
leave_runningbooleanOptional
rootstringOptional

Root is the path to the runc storage for the host

Responses
200
OK
400
Bad Request
404
Not Found
500
Internal Server Error
post
POST /containerd/checkpoint HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 302

{
  "checkpoint_data": {
    "checkpoint_path": "text",
    "container_name": "text",
    "namespace": "text",
    "root": "text",
    "sandbox_name": "text"
  },
  "leave_running": true,
  "root": "text",
  "rootfs_checkpoint_data": {
    "address": "text",
    "container_name": "text",
    "image_ref": "text",
    "namespace": "text",
    "root": "text",
    "sandbox_name": "text"
  }
}

No content

start a restore of a containerd container's rootfs

post

rootfs restore endpoint for containerd

Body
addressstringRequired
container_namestringRequired
image_refstringRequired
namespacestringRequired
rootstringOptional
sandbox_namestringRequired
Responses
200
OK
400
Bad Request
404
Not Found
500
Internal Server Error
post
POST /restore/rootfs HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 116

{
  "address": "text",
  "container_name": "text",
  "image_ref": "text",
  "namespace": "text",
  "root": "text",
  "sandbox_name": "text"
}

No content

start restore of a runc container

post

Start a restore of a previously checkpointed runc container. Use /list/:namespace to get the required CheckpointData. Requires a target sleeping container to restore into. See documentation for more info.

Body
checkpoint_idstringOptional
Responses
200
OK
400
Bad Request
404
Not Found
500
Internal Server Error
post
POST /restore HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 148

{
  "checkpoint_data": {
    "checkpoint_path": "text",
    "container_name": "text",
    "namespace": "text",
    "root": "text",
    "sandbox_name": "text"
  },
  "checkpoint_id": "text"
}

No content