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

Add support for arm64 arch in che container builds #22007

Open
2 of 11 tasks
nickboldt opened this issue Feb 16, 2023 · 8 comments
Open
2 of 11 tasks

Add support for arm64 arch in che container builds #22007

nickboldt opened this issue Feb 16, 2023 · 8 comments
Labels
area/ci/multi-arch Issues and PRs related to the release of images targeting architectures other than amd64 help wanted Community, we are fully engaged on other issues. Feel free to take this one. We'll help you! kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. kind/task Internal things, technical debt, and to-do tasks to be performed. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. severity/P3 Lower priority than a P2. Optional work that might get done, or not. See also help wanted issues.

Comments

@nickboldt
Copy link
Contributor

nickboldt commented Feb 16, 2023

Is your task related to a problem? Please describe

Today, we have builds that use docker buildx to create containers for the following arches:

  • che-code: amd64 
  • che-dashboard: amd64, arm64
  • che-devfile-registry: amd64 
  • che-docs: amd64 
  • che-e2e: amd64 
  • kubernetes-image-puller: amd64
  • che-machine-exec: amd64, arm64
  • che-operator: amd64
  • che-plugin-registry: amd64 
  • configbump: amd64, arm64
  • developer-images (UDI): amd64 

We also have other builds that are simple single arch:

  • devworkspace-operator
  • che-server
  • che-theia

And we have chectl, which is built for many arches, including Mac and Windows:

  • chectl: linux-arm,linux-x64,linux-s390x,linux-ppc64le,darwin-x64,darwin-arm64,win32-x64,win32-x86

Plan after discussions with @l0rd:

Additional context

Question also sent to https://www.eclipse.org/lists/che-dev/msg04456.html for consideration.

See also:

@nickboldt nickboldt added the kind/task Internal things, technical debt, and to-do tasks to be performed. label Feb 16, 2023
@che-bot che-bot added the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label Feb 16, 2023
@nickboldt nickboldt changed the title Add support for arm64 for all Che containers Add support for arm64 arch in che container builds Feb 16, 2023
@nickboldt nickboldt added status/in-progress This issue has been taken by an engineer and is under active development. severity/P2 Has a minor but important impact to the usage or development of the system. severity/P3 Lower priority than a P2. Optional work that might get done, or not. See also help wanted issues. kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. area/ci/multi-arch Issues and PRs related to the release of images targeting architectures other than amd64 and removed severity/P2 Has a minor but important impact to the usage or development of the system. status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. labels Feb 16, 2023
@sgandon
Copy link

sgandon commented Feb 17, 2023

I guess my issue is related to this, I try to install Eclipse Che on my mac M1 arm chip and it fails because the Che-operator image does not have the arm64 flavour.

 Deploy Eclipse Che operator
    ✔ Install Dev Workspace operator
      ✔ Create Namespace devworkspace-controller...[Created]
      ✔ Create Dev Workspace operator resources...[Created]
      ✔ Wait for Dev Workspace operator ready...[OK]
    ✔ Create ServiceAccount che-operator...[Created]
    ✔ Create RBAC
      ✔ Create Role che-operator-leader-election...[Created]
      ✔ Create Role che-operator...[Created]
      ✔ Create RoleBinding che-operator-leader-election...[Created]
      ✔ Create RoleBinding che-operator...[Created]
      ✔ Create RoleBinding eclipse-che-che-operator...[Created]
      ✔ Create RoleBinding eclipse-che-che-operator...[Created]
    ✔ Wait for Cert Manager pods ready...[OK]
    ✔ Create Certificate che-operator-serving-cert...[Created]
    ✔ Create Issuer che-operator-selfsigned-issuer...[Created]
    ✔ Create Service che-operator-service...[Created]
    ✔ Create CRD checlusters.org.eclipse.che...[Created]
    ✔ Waiting...[OK]
    ✔ Create Deployment che-operator...[Created]
    ❯ Eclipse Che Operator pod bootstrap
      ✔ Scheduling...[OK]
      ✖ Downloading images
        → Failed to download image, reason: ErrImagePull, message: rpc error: code = NotFound desc = failed to pull and unpack image "quay.io/eclipse/che-operator:7.60.1": no match for platform in manifest: not f
…
        Starting
      Create ValidatingWebhookConfiguration org.eclipse.che
      Create MutatingWebhookConfiguration org.eclipse.che
      Create CheCluster Custom Resource
    Error: Command server:deploy failed with the error: Failed to download image, reason: ErrImagePull, message: rpc error: code = NotFound desc = failed to pull and unpack image
    "quay.io/eclipse/che-operator:7.60.1": no match for platform in manifest: not found.

@che-bot
Copy link
Contributor

che-bot commented Aug 16, 2023

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

@che-bot che-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Aug 16, 2023
@che-bot che-bot closed this as completed Aug 23, 2023
@l0rd l0rd reopened this Dec 18, 2023
@l0rd l0rd removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 18, 2023
@che-bot
Copy link
Contributor

che-bot commented Jun 15, 2024

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

@che-bot che-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jun 15, 2024
@SDAdham
Copy link

SDAdham commented Aug 22, 2024

Hello @nickboldt , any progress on this please? almost a week of investigation, it seems that this is a blocker for #23103

@ibuziuk ibuziuk added help wanted Community, we are fully engaged on other issues. Feel free to take this one. We'll help you! and removed status/in-progress This issue has been taken by an engineer and is under active development. labels Aug 22, 2024
@nickboldt
Copy link
Contributor Author

I'm no longer an active contributor to the Che team, or downstream RH OS Dev Spaces team.

If you'd like to contribute aarch64/arm64 builds, please don't hesitate to do so. AFAIU Che is only supported on amd64 hosts, while Dev Spaces can be run on amd64, s390x, and ppc64le hosts.

cc: @ibuziuk

@AObuchow
Copy link

FWIW: We implemented arm64 upstream builds of DWO in devfile/devworkspace-operator#1212.

@SDAdham for #23103, maybe we could start with trying to build CheCode for arm64? Since that's where you're encountering an issue when trying to deploy a workspace.

@SDAdham
Copy link

SDAdham commented Aug 23, 2024

I'm not familiar or experienced enough around Che's architecture. I saw things related to Java and other languages. That's going to be beyond my scope of focus at the moment. I think I'll just give Che a miss... Thanks everyone for the great help. 👍

@nickboldt
Copy link
Contributor Author

Che (and Dev Spaces) is basically just VSCode or IntelliJ running in a cluster environment so you can preconfigure a development env (including runtimes / build requirements) from a declarative yaml file (devfile). This lets you reuse a project config across multiple developers, so that the "works on my machine" problem goes away and onboarding a new developer can be done in minutes instead of days.

Learn more at https://developers.redhat.com/products/openshift-dev-spaces/overview
Try it free at https://developers.redhat.com/developer-sandbox

You don't need to know the architecture to benefit from it, as long as you're an existing VS Code user...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/ci/multi-arch Issues and PRs related to the release of images targeting architectures other than amd64 help wanted Community, we are fully engaged on other issues. Feel free to take this one. We'll help you! kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. kind/task Internal things, technical debt, and to-do tasks to be performed. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. severity/P3 Lower priority than a P2. Optional work that might get done, or not. See also help wanted issues.
Projects
None yet
Development

No branches or pull requests

7 participants