Skip to content

Conversation

@manetherenio
Copy link

Description of changes:
This updates the Github Actions to add ARM64 builds. Currently, only AMD64 is being published to GHCR.

@github-actions
Copy link

Tests

Please note that running unit and e2e tests requires manual approval from a team member.

e2e tests

We use labels to control which e2e tests contexts are run:

Label Behaviour
none Run Generic tests only
e2e/none skip all e2e tests (documentation etc) - overrides all e2e/* labels Do not run any e2e tests
e2e/flatcar run Flatcar e2e tests Add Flatcar tests

ℹ️ Ask a team member to add the requested labels if you don't have enough permissions.

Copy link
Member

@mcbenjemaa mcbenjemaa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Build is failing

@manetherenio
Copy link
Author

manetherenio commented May 26, 2025

It looks like buildx is currently incompatible with both --load and multiple simultaneous platform builds

docker/buildx#59 (comment)

How should we proceed? Remove the load line (currently here ) from the docker/build-push-action invocation?

Alternatively, I could setup a second docker/build-push-action invocation for arm64?

@manetherenio
Copy link
Author

Reading further through the comment chain on the docker/buildx repo, it appears multi-arch builds and --load will work if using the containerd store. Let me try setting that up and see if that works.

@manetherenio
Copy link
Author

So it looks like now with the containerd store enabled, the Trivy scanner is failing to load the new image locally. I'm going to build the arm64 container separately and use the amd64 container for the Trivy scanner.

@manetherenio
Copy link
Author

@mcbenjemaa Builds are succeeding again. Can you please review?

@manetherenio
Copy link
Author

@mcbenjemaa @wikkyk @LukasK32
Would someone be willing to give a review now that the builds are no longer failing?

ignore-unfixed: true
severity: 'HIGH,CRITICAL'

- name: Build and push multiplatform Docker image
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build action is called twice.
Would it be possible to call it just once?

@sonarqubecloud
Copy link

@wikkyk
Copy link
Collaborator

wikkyk commented Jul 4, 2025

This is definitely interesting. However, there are some major issues here:

  1. No official support for arm64 in Proxmox VE
  2. The arm64 builds would go completely untested.
  3. I don't think it's enough to only scan the amd64 image with Trivy.

Is qemu necessary? Go cross-compiles well, there is no need to emulate an arm64. The only issue is tools like controller-gen that get installed at build time. I would rather make cross-compiling work properly (any build tools that are built at build time are built for host arch, everything else gets cross-compiled for target arch) so that e.g. I could do an arm64 build locally like make ARCH=arm64.

@ozhankaraman
Copy link

arm64 container images would be cool, I have an arm64 arch based Clusterapi management cluster and I am manually compiling capi-proxmox image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants