import requests
url = "https://platform.ankra.app/api/v1/clusters/ankracloud/{cluster_id}/control-plane/instance-type"
payload = {
"abandon_pending_resize": False,
"force_drain": False,
"instance_type": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({abandon_pending_resize: false, force_drain: false, instance_type: '<string>'})
};
fetch('https://platform.ankra.app/api/v1/clusters/ankracloud/{cluster_id}/control-plane/instance-type', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request PUT \
--url https://platform.ankra.app/api/v1/clusters/ankracloud/{cluster_id}/control-plane/instance-type \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"abandon_pending_resize": false,
"force_drain": false,
"instance_type": "<string>"
}
'{
"mode": "offline",
"new_instance_type": "<string>",
"previous_instance_type": "<string>",
"updated": 123,
"operation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"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"
}Resize control-plane nodes
Bearer PAT authentication; RBAC permission clusters.write. PAT mutations support wait=false where implemented; browser mutations require CSRF. Answers 404 while the organisation’s aws_provider feature flag is off.
import requests
url = "https://platform.ankra.app/api/v1/clusters/ankracloud/{cluster_id}/control-plane/instance-type"
payload = {
"abandon_pending_resize": False,
"force_drain": False,
"instance_type": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({abandon_pending_resize: false, force_drain: false, instance_type: '<string>'})
};
fetch('https://platform.ankra.app/api/v1/clusters/ankracloud/{cluster_id}/control-plane/instance-type', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request PUT \
--url https://platform.ankra.app/api/v1/clusters/ankracloud/{cluster_id}/control-plane/instance-type \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"abandon_pending_resize": false,
"force_drain": false,
"instance_type": "<string>"
}
'{
"mode": "offline",
"new_instance_type": "<string>",
"previous_instance_type": "<string>",
"updated": 123,
"operation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"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
Abandon the resize the group has pending instead of asking for one: each server's definition goes back to the type it actually runs and its resize markers are cleared, with nothing drained or powered off. Use it for a resize that cannot land (a drain the PodDisruptionBudgets block, a disk the provider will not shrink). instance_type is not needed when this is true; a group with no pending resize answers 409.
Response
Successful response
Which lane the request took: 'offline' rewrote a stopped cluster's plan, 'rolling' is the live one-controller-at-a-time path on a running cluster, 'live_with_api_downtime' resizes a running cluster's only controller in place with the Kubernetes API down while it reboots. It describes the lane, not whether work was dispatched - read operation_id for that.
offline, rolling, live_with_api_downtime The operation to poll, when the request dispatched one. Null whenever nothing was dispatched: on the offline lane, which applies the new size at the next cluster start (its own operation), and on either lane when the control planes already run the requested type (updated is 0). Decide whether to poll by testing operation_id for null, not by reading mode.