skupperproject / skupper

Skupper is an implementation of a Virtual Application Network, enabling rich hybrid cloud communication.
http://skupper.io
Apache License 2.0
579 stars 70 forks source link

Skupper on Raspberry Pi fails to install #979

Open pumoica opened 1 year ago

pumoica commented 1 year ago

Hello,

I am trying to install skupper on a k3s cluster running on a Raspberry Pi board 4 model B (with Raspberry Pi Os Lite (64-bit)) and have run into a problem.

The skupper init command successfully executed and I can see a couple of skupper pods in the cluster - skupper-service-controller and skupper-router.

However, both pods keep restarting and checking their logs reveals the following:

skupper-router, container router: exec /home/skrouterd/bin/launch.sh: exec format error skupper-router, container config-sync: exec /app/config-sync: exec format error skupper-service-controller: exec /app/service-controller: exec format error

It seems that there are some compatibility issues between the skupper containers used in both pods and the raspberry OS?

Any suggestions what could cause the issue and how to tackle it?

pumoica commented 1 year ago

After sipping through the source code it looks like the skupper command constructs k8s resource files with "hard-coded" references to container images for both the router and the service controllers and neither of these images is compatible with the arm64 architecture (that the mentioned Raspberry Pi board is based on).

As an experiment, I built all 3 images (router, controller, config-sync) on the board, pushed them to my container registry, and then updated the deployment k8s resource files for both the router and the controller to pull the images from my registry. This took care of the problem. At least all 3 containers have successfully started and initialized themselves and I was able to link the cluster to my other one.

Apparently, that is not a long-term solution. Any suggestions on how better to address the raised issue?