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

Multiarch support in upstream #559

Closed
sleshchenko opened this issue Aug 25, 2021 · 6 comments
Closed

Multiarch support in upstream #559

sleshchenko opened this issue Aug 25, 2021 · 6 comments
Assignees
Milestone

Comments

@sleshchenko
Copy link
Member

Since CRW depends on DevWorkspace Operator it's needed to make sure it supports multiarch.

I assume it does not, since controller dockerfile does not have GO_ARCH, and project clone's one hardcodes amd64.

@sleshchenko sleshchenko added this to the v0.10.0 milestone Aug 25, 2021
@amisevsk amisevsk changed the title Multiarch support Multiarch support in upstream Jun 23, 2022
@AObuchow
Copy link
Collaborator

@nickboldt Are we aiming to support only the following platforms amd64, arm64, ppc64le, s390x (i.e. are those the only officially supported platforms for Che & DevSpaces) ?

It'd be nice to also support darwin/arm64 for apple silicon, but this might be a bit tricky: The ubi8/go-toolset that we're using to build DWO does not have an image available for darwin/arm64, unfortunately.

@nickboldt
Copy link
Collaborator

nickboldt commented Oct 19, 2023

upstream: amd64 only, though some Mac users have also requested arm64 so they can run on their local M1 macs (@l0rd for example). A handful of Che containers are built for ppc64le and arm64, but as we don't have a complete set yet, only ONE arch can actually be deployed.

downstream: amd64, s390x, ppc64le - check the release notes https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.8/html-single/release_notes_and_known_issues/index#supported-platforms

re: go-toolset, I think you'll see arm64 IS supported:

image

@l0rd
Copy link
Collaborator

l0rd commented Oct 20, 2023

For the record I don't have a M1 Mac 😀

@AObuchow AObuchow self-assigned this Oct 20, 2023
@AObuchow
Copy link
Collaborator

Just wanted to clarify some requirements for this:

  1. We need the devworkspace-controller and project-clone images built for all platforms (this is the bare minimum)
  2. We need the DWO index, bundle and digest images built for all platforms.
  3. We don't need multi-arch builds to work with both Docker and podman. From my understanding, podman can't do multi-arch builds, and buildah is required instead. IMO, since multi-arch builds will generally be done by our GH workflows (which use docker), it's fine to only have multi-arch builds working when using Docker.

Point 2. is slightly complicated by the fact that opm serve binds to a port. When doing a multi-arch build with Docker buildx, each platform image is built in parallel, which leads to port-already-in-use conflicts since we're using the default port. An easy but inefficient workaround is to disable parallelism for these builds (it's not the biggest deal if builds take a bit longer on main). A better solution may be to specify a port (with opm serve -p ...) and try another port if it is already in use.

If any of my assumed requirements are incorrect, please correct me.

AObuchow added a commit to AObuchow/devworkspace-operator that referenced this issue Dec 1, 2023
AObuchow added a commit to AObuchow/devworkspace-operator that referenced this issue Dec 1, 2023
@AObuchow AObuchow modified the milestones: v0.10.x, v0.25.x Jan 15, 2024
@deerskindoll
Copy link

RN status: upstream only

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

No branches or pull requests

5 participants