open-horizon / anax

Horizon agent control system
https://open-horizon.github.io/docs/anax/docs/
Apache License 2.0
72 stars 97 forks source link

Architecture : Support for aarch64 RPMs #3255

Open johnwalicki opened 2 years ago

johnwalicki commented 2 years ago

Open a issue in the Anax repo to update the agent-install.sh with the new microprocessor architecture.

Feature Request: update agent-install.sh to support aarch64 RPMs #3250

Open a issue in the Anax repo to update the Makefiles with the new microprocessor architecture.

Feature Request: update anax Makefiles to build aarch64 RPMs #3251

Open a issue in the Anax repo to add the agent binaries to edgeNodeFIles.sh so they publish to CSS

The goal will be to build a bundle of horizon-agent-linux-rpm-aarch64.tar.gz RPMs for Fedora / Red Hat for ARM64 devices.

Feature Request: add agent aarch64 binaries to edgeNodeFiles.sh #3253

Open a issue in the Anax repo to update the Dockerfiles to build on the new microprocessor architecture.

Feature Request: update Dockerfiles to build containers for aarch64 #3252

Open a issue in the Anax repo to add the build pipelines so it arrives in GitHub Releases

Modify the release / build pipelines so the horizon-agent-linux-rpm-aarch64.tar.gz bundle is delivered in the anax GitHub Releases

Feature Request: modify release pipeline to deliver horizon-agent-linux-rpm-aarch64.tar.gz #3254

Open a issue in the Documentation repo to update the docs for this new microprocessor architecture.

Feature Request: Documentation updates for aarch64 edge devices #265

New microprocessor architecture Support Checklist

johnwalicki commented 2 years ago

We will know we are successful when the binaries appear here https://github.com/open-horizon/anax/releases and the agent-install.sh runs on a Fedora based Raspberry Pi

johnwalicki commented 1 year ago

As a proof of concept, on a Raspberry Pi running Fedora, I can generate the aarch64 RPMs. It was straightforward.

  1. I installed the various golang and rpm-build dependencies.
  2. I cloned the anax repo
  3. I checked out the v2.29 branch.
  4. I compiled make anax and make cli/hzn
  5. export BUILD_NUMBER=638
  6. I ran make rpmpkgs

I now have ~/rpmbuild/RPMS/aarch64 packages:

-rw-r--r--. 1 1000 1000 9835153 Nov 29 22:18 horizon-2.29.0-638.aarch64.rpm
-rw-r--r--. 1 1000 1000 7662216 Nov 29 22:19 horizon-cli-2.29.0-638.aarch64.rpm

There should be no inhibitor to adding support for these arch RPM packages. I also built the horizon 2.30 binaries and RPMs.

A few edits to agent-install.sh will be required. I'll talk with @bencourliss next week about extending the jenkins build pipeline to generate the required https://github.com/open-horizon/anax/releases artifacts.