Preflight a managed cluster
import requests
url = "https://platform.ankra.app/org/clusters/managed/{provider}/preflight"
payload = {
"credential_id": "11111111-2222-4333-8444-555555555555",
"location": "fr-par",
"name": "kapsule-prod",
"node_pools": [
{
"autohealing": True,
"count": 3,
"name": "default",
"public_ip": False,
"root_volume_type": "sbs-5k",
"size": "DEV1-M",
"zone": "fr-par-1"
}
]
}
headers = {
"cookie": "ankra_session=",
"X-Ankra-CSRF": "<x-ankra-csrf>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
cookie: 'ankra_session=',
'X-Ankra-CSRF': '<x-ankra-csrf>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
credential_id: '11111111-2222-4333-8444-555555555555',
location: 'fr-par',
name: 'kapsule-prod',
node_pools: [
{
autohealing: true,
count: 3,
name: 'default',
public_ip: false,
root_volume_type: 'sbs-5k',
size: 'DEV1-M',
zone: 'fr-par-1'
}
]
})
};
fetch('https://platform.ankra.app/org/clusters/managed/{provider}/preflight', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://platform.ankra.app/org/clusters/managed/{provider}/preflight \
--header 'Content-Type: application/json' \
--header 'X-Ankra-CSRF: <x-ankra-csrf>' \
--cookie ankra_session= \
--data '
{
"credential_id": "11111111-2222-4333-8444-555555555555",
"location": "fr-par",
"name": "kapsule-prod",
"node_pools": [
{
"autohealing": true,
"count": 3,
"name": "default",
"public_ip": false,
"root_volume_type": "sbs-5k",
"size": "DEV1-M",
"zone": "fr-par-1"
}
]
}
'{
"can_proceed": true,
"items": [
{
"check": "<string>",
"message": "<string>",
"status": "<string>"
}
]
}{
"detail": "Cluster not found"
}{
"detail": "Cluster not found"
}{
"detail": "Cluster not found"
}{
"detail": "Cluster not found"
}{
"detail": "Cluster not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "Cluster not found"
}Managed Clusters
Preflight a managed cluster
Browser session authentication; RBAC permission clusters.create. For Kapsule, provider_cluster_id is the opaque region-qualified regions/{region}/clusters/{id} reference. CNI is immutable. Imported/unknown provenance is disconnect-only; provider deletion is allowed by default only for created clusters.
POST
/
org
/
clusters
/
managed
/
{provider}
/
preflight
Preflight a managed cluster
import requests
url = "https://platform.ankra.app/org/clusters/managed/{provider}/preflight"
payload = {
"credential_id": "11111111-2222-4333-8444-555555555555",
"location": "fr-par",
"name": "kapsule-prod",
"node_pools": [
{
"autohealing": True,
"count": 3,
"name": "default",
"public_ip": False,
"root_volume_type": "sbs-5k",
"size": "DEV1-M",
"zone": "fr-par-1"
}
]
}
headers = {
"cookie": "ankra_session=",
"X-Ankra-CSRF": "<x-ankra-csrf>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
cookie: 'ankra_session=',
'X-Ankra-CSRF': '<x-ankra-csrf>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
credential_id: '11111111-2222-4333-8444-555555555555',
location: 'fr-par',
name: 'kapsule-prod',
node_pools: [
{
autohealing: true,
count: 3,
name: 'default',
public_ip: false,
root_volume_type: 'sbs-5k',
size: 'DEV1-M',
zone: 'fr-par-1'
}
]
})
};
fetch('https://platform.ankra.app/org/clusters/managed/{provider}/preflight', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://platform.ankra.app/org/clusters/managed/{provider}/preflight \
--header 'Content-Type: application/json' \
--header 'X-Ankra-CSRF: <x-ankra-csrf>' \
--cookie ankra_session= \
--data '
{
"credential_id": "11111111-2222-4333-8444-555555555555",
"location": "fr-par",
"name": "kapsule-prod",
"node_pools": [
{
"autohealing": true,
"count": 3,
"name": "default",
"public_ip": false,
"root_volume_type": "sbs-5k",
"size": "DEV1-M",
"zone": "fr-par-1"
}
]
}
'{
"can_proceed": true,
"items": [
{
"check": "<string>",
"message": "<string>",
"status": "<string>"
}
]
}{
"detail": "Cluster not found"
}{
"detail": "Cluster not found"
}{
"detail": "Cluster not found"
}{
"detail": "Cluster not found"
}{
"detail": "Cluster not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "Cluster not found"
}Authorizations
Browser session. Mutations also require X-Ankra-CSRF.
Headers
Must match the ankra_csrf browser cookie.
Path Parameters
Available options:
doks, uks, gke, ovh_mks, aks, eks, kapsule Example:
"kapsule"
Body
application/json
Minimum array length:
1Show child attributes
Show child attributes
Available options:
cilium, cilium_native, calico Available options:
production, staging, development, disposable Show child attributes
Show child attributes
Required string length:
1 - 50Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes