Migrate ARM servers to x86 in your cluster

This guide explains how to replace ARM-based (CAX) nodes in your cluster with x86 nodes.

Step 1: Add x86 worker machine deployments and scale down ARM ones

Do not change the class of an existing machine deployment in-place. Instead, add a new machine deployment with the workeramd64hcloud class and set the replicas of the ARM machine deployment to 0 .

workerMachineTypeHcloud can be set at the cluster level under spec.topology.variables as well as inside a machine deployment's variables.overrides . Check both and update them wherever a CAX type appears:

Under spec.topology.variables :

cluster.yaml yaml

In the machine deployments — scale down the ARM deployment, add a new x86 one:

cluster.yaml yaml

Wait for the new x86 nodes to become ready and for the ARM nodes to be fully removed before continuing.

Step 2: Remove the ARM machine deployment

Once the ARM machine deployment has no nodes remaining, remove it from your Cluster resource:

cluster.yaml yaml

Step 3: Update control plane nodes (if applicable)

If your control plane runs on ARM servers, your cluster variables will include controlPlaneMachineArchHcloud: arm64 and a CAX server type for controlPlaneMachineTypeHcloud .

note

If you do not have controlPlaneMachineArchHcloud in your cluster variables, your control plane is already using x86 and no changes are needed here.

warning

Do not change the number of control plane replicas while any control plane nodes are running on ARM. Our recommendation is to not touch replicas at all until the migration is complete.

Check your current control plane count

Before making any changes, verify that the number of control plane nodes currently running matches the number defined in your Cluster resource.

In your workload cluster, count the ready control plane nodes:

In the management cluster, check the defined replica count:

If the counts match, you can proceed with the change below.

If the counts do not match, it means some ARM control plane nodes were already removed by the health check and could not be replaced due to unavailable ARM servers. Please contact support and still proceed with the change as switching to x86 will allow the missing nodes to be provisioned.

Apply the change

Change the architecture to amd64 and the server type to an x86 type. Do not change replicas .

These variables can be set in two locations in your Cluster resource. Check both and update them wherever they appear:

Under spec.topology.variables :

cluster.yaml yaml

Under spec.topology.controlPlane.variables.overrides :

cluster.yaml yaml

Verifying the migration

After applying all changes, verify that no CAX server types remain by checking the spec.type field of the HCloudMachine objects:

Once no CAX server types appear in the output, the migration is complete and you can proceed with your cluster update.

Previous
Taints