import requests
url = "https://platform.ankra.app/api/v1/clusters/digitalocean/{cluster_id}/node-groups/{group_name}/scale"
payload = { "count": 123 }
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({count: 123})
};
fetch('https://platform.ankra.app/api/v1/clusters/digitalocean/{cluster_id}/node-groups/{group_name}/scale', 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/digitalocean/{cluster_id}/node-groups/{group_name}/scale \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"count": 123
}'{
"dispatch": "started",
"group_name": "<string>",
"new_count": 123,
"operation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"previous_count": 123,
"dispatch_reason": "<string>"
}{
"detail": "Cluster not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Scale node group
Sets the node group’s node count to count. A scale-down drains the removed workers through their PodDisruptionBudgets; force_drain bypasses them for this request. By default the change runs in the background and the call answers 202 {"status": "accepted"} (409 if the same change is already in flight); pass wait=true to run it in the request and receive the result.
import requests
url = "https://platform.ankra.app/api/v1/clusters/digitalocean/{cluster_id}/node-groups/{group_name}/scale"
payload = { "count": 123 }
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({count: 123})
};
fetch('https://platform.ankra.app/api/v1/clusters/digitalocean/{cluster_id}/node-groups/{group_name}/scale', 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/digitalocean/{cluster_id}/node-groups/{group_name}/scale \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"count": 123
}'{
"dispatch": "started",
"group_name": "<string>",
"new_count": 123,
"operation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"previous_count": 123,
"dispatch_reason": "<string>"
}{
"detail": "Cluster not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Body
Scale-down only. Remove the workers this request takes away without honouring PodDisruptionBudgets: each is drained the way a cluster teardown drains it and removed even when its drain is refused or its node cannot be reached. Off by default: a scale-down drains the removed workers one at a time through their budgets and keeps a worker whose drain is refused.
Response
Successful Response
- ScaleNodeGroupResult
- AsyncWriteAcceptedResponse
What the write did about the operation that applies it. started: operation_id names it, created in the same transaction as the write. deferred: the change is stored but no operation was started for it now; dispatch_reason says why and what applies it instead (the reconcile loop once a running operation has finished, or the cluster's next start). none: the write left nothing for an operation to apply (a scale to the group's current count, a removal on a stopped cluster, which the write applies to the group's records itself).
started, deferred, none