Suggested workarounds for multi-architecture fleets?

Hi,

We are seeking some advice around the best way to handle adding Pi4 devices to a fleet of 32-bit Pi3s (there are currently around 2400 of them).

Based on some previous threads, it looks multi-architecture fleets are not supported yet (“multi-arch-fleets” and
here).

The workarounds mentioned there seem to be simply having one fleet per architecture.

I’ve also seen a thread where users run 32-bit containers on a 64-bit device. Would this be accomplished by adding the Pi4 devices to a Pi3 fleet (in the dashboard it looks like it’s allowed)?

What would be the recommended method for moving forward with using both Pi3 and Pi4s? Thanks!

Hi Jason, welcome to the forums!

You are correct that we do not have multi-arch support yet for fleets, although this is something we are actively working on.

As you also mentioned, it is possible to run 32-bit containers on 64-bit arm devices, as ARMv8-A is backwards compatible with AArch32 architecture. The container image needs to include all relevant 32-bit libraries for this to work. The way to achieve this is to provision a Raspberry PI4 to a 32-bit raspberry pi 3 fleet. If there is any issue running the 32-bit container (we have only seen this a handful of times), you can look at the engine logs by opening an SSH session to the Host OS and running journalctl -u balena -a --no-pager -n 200, which should show more information about the error.

Please let us know how this works for you.

Perfect, thanks for the response Felipe!

I’m also wondering which docker images to use for the containers? For example, our old releases for Pi3 were using balenalib/raspberrypi3-debian, but the Pi4 image would be balenalib/raspberrypi4-64-debian.

Would we need to manage two separate releases in the fleet, one for pi3 with containers using raspberrypi3-debian, and another for pi4 with containers using balenalib/raspberrypi4-64-debian?

Or is there some image that we could use in the containers which would work with both devices?

Thanks!

Glad to help :). There is no way to manage two sets of releases for the fleet, and you should not need it either. If you keep using the balenalib/raspberrypi3-debian images those should work for both your PI3 and PI4 devices.

2 Likes