import requests
url = "https://api.platform.ankra.app/org/clusters/scaleway/preflight"
payload = {
"credential_id": "11111111-2222-4333-8444-555555555555",
"name": "scw-prod",
"region": "fr-par",
"ssh_key_credential_id": "99999999-8888-4777-8666-555555555555",
"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',
name: 'scw-prod',
region: 'fr-par',
ssh_key_credential_id: '99999999-8888-4777-8666-555555555555',
zone: 'fr-par-1'
})
};
fetch('https://api.platform.ankra.app/org/clusters/scaleway/preflight', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://api.platform.ankra.app/org/clusters/scaleway/preflight \
--header 'Content-Type: application/json' \
--header 'X-Ankra-CSRF: <x-ankra-csrf>' \
--cookie ankra_session= \
--data '
{
"credential_id": "11111111-2222-4333-8444-555555555555",
"name": "scw-prod",
"region": "fr-par",
"ssh_key_credential_id": "99999999-8888-4777-8666-555555555555",
"zone": "fr-par-1"
}
'{
"can_proceed": true,
"items": [
{
"check": "<string>",
"message": "<string>",
"status": "pass"
}
]
}{
"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"
}Preflight a Scaleway Instances cluster (browser session)
Browser session authentication; RBAC permission clusters.create. External cloud provider mode is mandatory; kubeadm accepts only Cilium.
import requests
url = "https://api.platform.ankra.app/org/clusters/scaleway/preflight"
payload = {
"credential_id": "11111111-2222-4333-8444-555555555555",
"name": "scw-prod",
"region": "fr-par",
"ssh_key_credential_id": "99999999-8888-4777-8666-555555555555",
"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',
name: 'scw-prod',
region: 'fr-par',
ssh_key_credential_id: '99999999-8888-4777-8666-555555555555',
zone: 'fr-par-1'
})
};
fetch('https://api.platform.ankra.app/org/clusters/scaleway/preflight', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://api.platform.ankra.app/org/clusters/scaleway/preflight \
--header 'Content-Type: application/json' \
--header 'X-Ankra-CSRF: <x-ankra-csrf>' \
--cookie ankra_session= \
--data '
{
"credential_id": "11111111-2222-4333-8444-555555555555",
"name": "scw-prod",
"region": "fr-par",
"ssh_key_credential_id": "99999999-8888-4777-8666-555555555555",
"zone": "fr-par-1"
}
'{
"can_proceed": true,
"items": [
{
"check": "<string>",
"message": "<string>",
"status": "pass"
}
]
}{
"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
Body
Cluster name: 1 to 53 lowercase letters, digits and hyphens, starting with a letter and ending with a letter or digit (an RFC 1035 DNS label). It prefixes every server hostname of the cluster; a create carrying any other name is refused, and nothing is created.
1 - 53^[a-z]([-a-z0-9]*[a-z0-9])?$GitOps provider of the repository the cluster is bootstrapped onto. Omitted is github, where gitops_repository is owner/name. bitbucket_cloud names the repository by gitops_workspace and gitops_repo_slug (or gitops_repository as workspace/repo_slug) and binds it as a Bitbucket Cloud repository.
github, bitbucket_cloud Install the Kubernetes Gateway API beside Traefik's Ingress: the Gateway API standard CRDs, Traefik's Gateway provider with the traefik GatewayClass and a shared traefik-gateway Gateway in the traefik namespace (a plain HTTP listener that accepts routes from every namespace), cert-manager's Gateway support, and external-dns publishing of HTTPRoute hostnames. Ingress keeps working; one Traefik serves both. Requires include_networking.
k3s packaged components to keep disabled (k3s --disable), for example ["traefik"] on a cluster that brings its own ingress. k3s distribution only: the list is rendered into the server config at install and re-asserted by the maintenance pass, so the entries stay off across restarts.
coredns, servicelb, traefik, local-storage, metrics-server, runtimes