## 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](/features/arm-support-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. {% callout type="note" %} Currently, only hcloud nodes are supported. If you wish to use ARM in bare-metal servers, please contact our support. {% /callout %} ## 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 apiVersion: infrastructure.clusterstack.x-k8s.io/v1alpha1 kind: HetznerClusterStackReleaseTemplate metadata: name: hetzner-apalla-1-34 spec: template: spec: nodeImages: - controlplaneamd64hcloud - workeramd64hcloud - controlplanearm64hcloud - workerarm64hcloud ``` {% callout type="tip" %} If you want to run a full ARM cluster, you can remove the amd64 node images. {% /callout %} ## 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 apiVersion: cluster.x-k8s.io/v1beta1 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: class: hetzner-apalla-1-34-v6 version: v1.34.6 controlPlane: replicas: 3 workers: machineDeployments: - class: workeramd64hcloud name: md-0 replicas: 3 failureDomain: nbg1 variables: overrides: - name: workerMachineTypeHcloud value: cpx42 - class: workerarm64hcloud // [!code ++] name: md-0 // [!code ++] replicas: 3 // [!code ++] failureDomain: nbg1 // [!code ++] variables: // [!code ++] overrides: // [!code ++] - name: workerMachineTypeHcloud // [!code ++] value: cax31 // [!code ++] variables: - name: region value: nbg1 - name: controlPlaneMachineArchHcloud // [!code ++] value: arm64 // [!code ++] - name: controlPlaneMachineTypeHcloud // [!code ++] value: cax31 // [!code ++] ``` 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/).