---
title: "Change the cluster compute pool. Allowed while no allocation is in use; allocations handed out but never applied move to the new pool."
method: PUT
path: "/settings/cluster-network"
tags: ["Nodes"]
---

# Change the cluster compute pool. Allowed while no allocation is in use; allocations handed out but never applied move to the new pool.

`PUT /settings/cluster-network`

## Request

- Base URL: `/api` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/api/settings/cluster-network`
- Auth: HTTP bearer

## Request body

- UpdateClusterNetworkRequest: Body of `PUT /settings/cluster-network`.
  - `compute_pool_cidr` string, required: New compute pool, an RFC 1918 IPv4 network such as `10.202.0.0/16`.
  - `subnet_prefix_len` integer, nullable: Prefix of each node's subnet; keeps the current one when omitted.

## Response `200`

Pool changed

- ClusterNetworkChangeResponse: `PUT /settings/cluster-network` answer.
  - `reassigned` ClusterNetworkReassignment[], required
    - `from` string, required
    - `node_id` integer, required
    - `node_name` string, required
    - `to` string, required
  - `status` ClusterNetworkStatus, required: `GET /settings/cluster-network`.
    - `can_change` boolean, required: Whether `PUT` can change the pool now.
    - `change_blocked_by` string[], required: Why it cannot: the members using the pool, or a control-plane setup in progress.
    - `compute_pool_cidr` string, required
    - `control_plane` ClusterNetworkControlPlane, required: The control plane's overlay.
      - `compute_cidr` string, nullable
      - `overlay_ready` boolean, required
      - `setup_failure` string, nullable: Why its last overlay setup failed, with the fix, when it did.
    - `default_compute_pool_cidr` string, required: What a new cluster starts with.
    - `mesh_enabled` boolean, required
    - `mesh_pool_cidr` string, required: The WireGuard mesh pool; a compute pool may not overlap it.
    - `nodes` ClusterNetworkNode[], required
      - `compute_cidr` string, nullable: Its subnet of the pool, if allocated.
      - `id` integer, required
      - `in_use` boolean, required: Whether its allocation locks the pool, and why when it does.
      - `in_use_reason` string, nullable
      - `name` string, required
      - `occupied_ranges` OccupiedRangeReport[], required: What the node reported it already uses outside Temps.
        - `cidr` string, required: IPv4 network, e.g. `172.20.0.0/16`.
        - `name` string, required: Device name for a route, network name for a Docker network.
        - `source` string, required: `route` (a host route) or `docker` (a Docker network's subnet).
      - `overlay_last_error` string, nullable: Why the overlay is unavailable: the colliding range, its owner and the fixes.
      - `overlay_remediation` string, nullable: The last automatic move of its allocation, and why.
      - `overlay_status` string, nullable: `ready`, `unavailable`, or `None` when its agent never reported it.
    - `pool_confirmed` boolean, required: Whether an operator has confirmed the pool, or a member already uses it. The console asks for it once before adding the first node.
    - `subnet_prefix_len` integer, required

## Other responses

- `400`: Invalid pool, or it collides with the mesh pool, a node's address or a node's occupied range
- `401`: Unauthorized
- `403`: Insufficient permissions
- `409`: The pool is in use
- `428`: Re-authentication required
- `500`: Internal server error

## Changes

> 98 revisions in range; 1 not diffed.

- **2026-10-22** `d8a717162ef5`: 1 info
  - endpoint added
- **2026-10-22** `06005615b19e`: 1 breaking
  - api path removed without deprecation
- **2026-10-22** `7d41b820a372`: 1 info
  - endpoint added
- **2026-10-22** `add7f7b41ae2`: 1 breaking
  - api path removed without deprecation
- **2026-10-21** `842d42ed4659`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/gotempsh/apis/temps/changes/settings/cluster-network/put.md)

---

[API](https://skmtc.dev/gotempsh/apis/temps.md) - [All operations](https://skmtc.dev/gotempsh/apis/temps/llms.txt) - [OpenAPI document](https://skmtc.dev/gotempsh/apis/temps/revisions/fdfa2df06ae7?raw)
