ARM-based servers are temporarily not supported. If your cluster already uses ARM-based nodes, follow the [Migrate ARM servers to x86](/docs/hetzner/apalla/servers-and-nodes/provision/migrate-arm-to-x86) guide to switch to x86 nodes. ## Introduction Servers with ARM processors offers cost optimization while retaining competitive performance when compared to x86 architecture servers, with greater efficiency for parallel workloads. Syself provides full ARM support for Kubernetes nodes. If your workload supports the ARM architecture, it can be a great alternative to further improve the scalability and costs of your infrastructure. > [!NOTE] > Currently, only hcloud nodes are supported. If you wish to use ARM in bare-metal servers, please contact our support. ## Step 1: Adding node images ARM servers requires node images specifically built and optimized for their architecture. You need to add them to your HetznerClusterStackReleaseTemplate before using them in your clusters: ```yaml vars apiVersion: infrastructure.clusterstack.x-k8s.io/v1alpha1 kind: HetznerClusterStackReleaseTemplate metadata: name: hetzner-apalla-1-34 spec: template: spec: nodeImages: - controlplaneamd64hcloud - workeramd64hcloud - controlplanearm64hcloud - workerarm64hcloud ``` > [!TIP] > If you want to run a full ARM cluster, you can remove the amd64 node images. ## Step 2: Using ARM nodes Now you can add a new machine deployment with the `workerarm64hcloud` class and an ARM machine type, and set the appropriate variables if you wish to have ARM control planes: ```yaml vars apiVersion: cluster.x-k8s.io/v1beta2 kind: Cluster metadata: name: mycluster spec: clusterNetwork: services: cidrBlocks: ["10.128.0.0/12"] pods: cidrBlocks: ["192.168.0.0/16"] serviceDomain: "cluster.local" topology: classRef: name: hetzner-apalla-1-34-v10 version: v1.34.10 controlPlane: replicas: 3 workers: machineDeployments: - class: workeramd64hcloud name: md-0 replicas: 3 failureDomain: nbg1 variables: overrides: - name: workerMachineTypeHcloud value: cpx42 - class: workerarm64hcloud name: md-0 replicas: 3 failureDomain: nbg1 variables: overrides: - name: workerMachineTypeHcloud value: cax31 variables: - name: region value: nbg1 - name: controlPlaneMachineArchHcloud value: arm64 - name: controlPlaneMachineTypeHcloud value: cax31 ``` Supported ARM machine types are: | Type | | ----- | | CAX21 | | CAX31 | | CAX41 | For more information on Hetzner machine types, please visit the [Hetzner documentation](https://docs.hetzner.com/cloud/servers/overview/).