change_control_plane
Change the control plane of an Ankra-provisioned self-managed cluster. Provide exactly ONE of: count (1 or 3; additionally 5 on Proxmox VE - etcd quorum needs an odd number) or instance_type (resizes every control plane node). GROWING the count (1 -> 3, 3 -> 5) happens LIVE on a running cluster: the new control planes provision and join etcd without downtime, and the answer carries the operation to follow. REDUCING the count is applied offline: stop the cluster (the stop preserves its state and the start restores it), apply the change, then start_cluster. instance_type changes roll one controller at a time on a running cluster with 3 or more controllers. On a RUNNING cluster with a SINGLE controller (Hetzner), changing instance_type resizes that one server in place and TAKES THE KUBERNETES API DOWN for a few minutes (typically 3 to 8) while it reboots: workloads already running on workers keep running, but kubectl, deployments, controllers and the Ankra agent pause until it is back. That call REQUIRES accept_api_downtime=true and is refused without it; only set it when the user has explicitly accepted the API downtime, and tell them about it first. The alternatives are growing to 3 controllers first (no downtime) or applying the change offline on a stopped cluster. Call list_node_groups first - its control_plane section reports the current count/instance type, whether a change is possible right now, and in which mode.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | New control plane count (1 or 3; also 5 on Proxmox VE). Exactly one aspect per call. | |
| cluster_id | No | UUID of the target cluster. Optional when a cluster is selected. | |
| cluster_name | No | Exact name of the target cluster. Optional when a cluster is selected. | |
| instance_type | No | New provider instance type for every control plane node. Exactly one aspect per call. | |
| accept_api_downtime | No | Required (true) to change instance_type of a RUNNING cluster that has only ONE control plane: the user accepts that the Kubernetes API is down for a few minutes while that server reboots on the new type. Ignored otherwise. Never set it without the user's explicit acceptance of the downtime. |