Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supports image used by ARM64 arch #1052

Closed
xichengliudui opened this issue Jun 1, 2022 · 8 comments
Closed

Supports image used by ARM64 arch #1052

xichengliudui opened this issue Jun 1, 2022 · 8 comments
Labels
blocked Waiting on other work or on 3rd party. never-stale Issue or PR marked to never go stale

Comments

@xichengliudui
Copy link

xichengliudui commented Jun 1, 2022

Is your feature request related to a problem? Please describe.

rabbitmq operator does not currently run on ARM64 arch machines, i want to be able to run operator on the ARM64 arch

Describe the solution you'd like

build image for the ARM64 arch
looking forward to any reply, ref: #366

@Zerpet Zerpet self-assigned this Jun 2, 2022
@Zerpet
Copy link
Collaborator

Zerpet commented Jun 2, 2022

Thank you for rising this issue. We do see value in providing an arm64 image. We have to do some exploration on how to achieve this. Our main challenge may be that we don't have arm64 infrastructure to run and validate the OCI. I will have a look at this in the coming days.

@xichengliudui
Copy link
Author

Thank you for rising this issue. We do see value in providing an arm64 image. We have to do some exploration on how to achieve this. Our main challenge may be that we don't have arm64 infrastructure to run and validate the OCI. I will have a look at this in the coming days.

thanks!

@Zerpet
Copy link
Collaborator

Zerpet commented Jun 10, 2022

I've been experimenting on this for a couple of days, here are my conclusions and what to do next:

Building multi platform images is possible thanks to docker buildx. Other container technologies, like containerd and nerdctl, can also leverage buildx via moby/buildkit and produce multi platform images.

It is important to note that multi platform images provide multiple, platform-specific, images under the same name and tag. What does this mean? It means that we can produce a images for amd64 and arm64, both under rabbitmqoperator/cluster-operator:latest, or any other tag. The container runtime does the right thing when you pull and/or run an image, and it pulls the image that matches your platform automagically.

Whilst it is possible to do this locally, we want to incorporate this enhancement in our CI/CD pipelines. We currently use Concourse and concourse/oci-build-task. It looks like this task has a limitation and it is not capable of building multi platform images, as reported in concourse/oci-build-task/issues/85

This limitation is quite tragic, because we will have to either fix the build task in the upstream, or move the image building process somehwere else, like GitHub Action with a supported multi platform image builder.

@Zerpet
Copy link
Collaborator

Zerpet commented Jun 13, 2022

Captured a summary of next steps to move forward this issue in #1067

@Zerpet Zerpet added the blocked Waiting on other work or on 3rd party. label Jun 14, 2022
@Zerpet Zerpet removed their assignment Jun 14, 2022
@github-actions
Copy link

This issue has been marked as stale due to 60 days of inactivity. Stale issues will be closed after a further 30 days of inactivity; please remove the stale label in order to prevent this occurring.

@github-actions github-actions bot added the stale Issue or PR with long period of inactivity label Aug 14, 2022
@MirahImage MirahImage added never-stale Issue or PR marked to never go stale and removed stale Issue or PR with long period of inactivity labels Aug 15, 2022
@ablease
Copy link
Contributor

ablease commented Aug 16, 2022

Closing this since Tanzu Net does not support multi arch images :(

@ablease ablease closed this as completed Aug 16, 2022
@bigbitbus
Copy link

A lot of devs have M1 Arm64 machines now, not having a Arm64 docker image for Rabbitmq shuts them out from Rabbitmq.

@Zerpet
Copy link
Collaborator

Zerpet commented Feb 28, 2023

RabbitMQ official image has support for ARM processors, and the Cluster Operator also has multi-arch support:

- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64, linux/arm64

You can verify this information pulling the latest image and running:

docker buildx imagetools inspect rabbitmqoperator/cluster-operator:latest
# Name:      docker.io/rabbitmqoperator/cluster-operator:latest
# MediaType: application/vnd.docker.distribution.manifest.list.v2+json
# Digest:    sha256:563f230500a3efb1a90ae52b3090cd9f20c5c08d57ff063ec7ce88fbb0b1ab4c
# 
# Manifests:
#   Name:      docker.io/rabbitmqoperator/cluster-operator:latest@sha256:68e4cfb3043a5f4b8cec9df4c482eda7c43995db76082fbdddf3a16969e39eba
#   MediaType: application/vnd.docker.distribution.manifest.v2+json
#   Platform:  linux/amd64
# 
#   Name:      docker.io/rabbitmqoperator/cluster-operator:latest@sha256:71b848a53f2c4f166b26c645286177a59d78da5e26ad13a0f61d11ebb34bf0a5
#   MediaType: application/vnd.docker.distribution.manifest.v2+json
#   Platform:  linux/arm64

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked Waiting on other work or on 3rd party. never-stale Issue or PR marked to never go stale
Projects
None yet
Development

No branches or pull requests

5 participants