Skip to content

Scale Up a High Availability Cluster (beta)

This guide walks through adding a node to an existing Ella Core high-availability cluster. For background on quorum, voter counts, and failover, see High Availability. To bring up the initial cluster, see Deploy a High Availability Cluster.

Beta feature

High availability is currently in beta. It is available for testing and feedback in the main branch but not recommended for production use yet. Expect breaking changes as we iterate on the design and implementation.

Prerequisites

Add a node

  1. On any existing node, open the Ella Core UI and navigate to the Cluster page.
  2. Click Add Node, select the next free node ID (for example 4), click Mint Token, and copy the token.
  3. On the new host, create core.yaml using the same shape as the other nodes. List every node — including the new one — in peers, and paste the token into join-token:

    core.yaml (new node)
    cluster:
      enabled: true
      node-id: 4
      bind-address: "10.0.0.4:7000"
      peers:
        - "10.0.0.1:7000"
        - "10.0.0.2:7000"
        - "10.0.0.3:7000"
        - "10.0.0.4:7000"
      join-token: "ejYM..."
    
  4. Start Ella Core on the new host:

    sudo snap start --enable ella-core.cored
    
  5. On the Cluster page, verify the new node appears and is shown as Healthy. Autopilot promotes it to voter automatically after a short stabilization window.

Verify the new cluster size

On the Cluster page, confirm:

  • The expected number of voters is listed.
  • Exactly one node is Leader.
  • Every listed node is Healthy.
  • Failure tolerance matches the expected value (1 for 3 voters, 2 for 5 voters).

Keep peer configs in sync

On every existing node, add the new node's host:port to cluster.peers in core.yaml. The change takes effect at the next restart; no immediate restart is required.

Note

All steps in this guide can also be performed via the REST API. See the Cluster API reference for details.