ERROR: release image arch amd64 does not match host arch arm64

Well, so I tried installing a new ARM-based OpenShift Container Platform cluster on AWS. To prepare, I created an install-config.yaml file and changed the controlPlane.architecture and the compute.architecture field to “arm64” and then launched the installer. That did not work, it still complains about the architecture:

$ ./openshift-install create cluster --dir=.
INFO Credentials loaded from the "default" profile in file "/home/simon/.aws/credentials" 
INFO Consuming Install Config from target directory 
INFO Creating infrastructure resources...         
INFO Waiting up to 20m0s (until 11:07AM) for the Kubernetes API at https://api.skrenger-arm.lab.example.com:6443... 
INFO Pulling VM console logs                      
INFO Pulling debug logs from the bootstrap machine 
ERROR Attempted to gather ClusterOperator status after installation failure: listing ClusterOperator objects: Get "https://api.skrenger-arm.lab.example.com:6443/apis/config.openshift.io/v1/clusteroperators": dial tcp 3.64.25.143:6443: connect: connection refused 
ERROR Bootstrap failed to complete: Get "https://api.skrenger-arm.lab.example.com:6443/version": dial tcp 3.68.144.150:6443: connect: connection refused 
ERROR Failed waiting for Kubernetes API. This error usually happens when there is a problem on the bootstrap host that prevents creating a temporary control plane. 
ERROR The bootstrap machine failed to download the release image 
INFO Pulling quay.io/openshift-release-dev/ocp-release@sha256:9ffb17b909a4fdef5324ba45ec6dd282985dd49d25b933ea401873183ef20bf8... 
INFO cfce1ab124f59e93a0f67d7e85283d524ddfd73a27d0535319d69d1dce746488 
INFO ERROR: release image arch amd64 does not match host arch arm64 
INFO Bootstrap gather logs captured here "/home/simon/Downloads/arm/log-bundle-20221124110737.tar.gz" 

So the root cause for the issue seems to be that “release image arch amd64 does not match host arch arm64“. Huh, but I changed the architecture in the install-config.yaml?

It turns out that to install an OpenShift Container Platform ARM cluster, you will need to use the “aarch64” installer and not the “amd64” installer (note the different URLs). The OpenShift Installer contains a hardcoded reference to a certain release image, which in turn is “amd64” or “arm64”. If you use the wrong installer, then you’ll encounter the above error.

You can check which architecture your installer is for using openshift-install version:

$ ./openshift-install version
./openshift-install 4.11.16
built from commit e1f339946aa61dbad58e1c3549355ccda67aa8a1
release image quay.io/openshift-release-dev/ocp-release@sha256:e4bb06fe2b63bf2776e529d97202ae7615bdee9811ce10a737052c11d8cd7e83
release architecture arm64

So make sure that you download the correct installer for ARM to install an ARM-based OpenShift cluster. The easiest way is to follow the guidance on console.redhat.com, which will point you to the correct installer.

Hello world

My name is Simon Krenger, I am a Technical Account Manager (TAM) at Red Hat. I advise our customers in using Kubernetes, Containers, Linux and Open Source.

Elsewhere

  1. GitHub
  2. LinkedIn
  3. GitLab