-
Notifications
You must be signed in to change notification settings - Fork 0
Ensure Tutor works on ARM64 via an easy-to-use plugin #35
Comments
@kdmccormick: So there are at least a few possible pieces of work here, right?
|
Thanks @ormsbee ; I factored your comment into the ticket description. |
@regisb Please take a look at the Context, Open Issues, and Acceptance criteria above, and let me know:
Some ideas I've heard so far:
|
@kdmccormick: As a heads up that per @jmbowman, the plan is for edx-platform to be MySQL 8.0 compatible in time for Nutmeg, though it will likely also support 5.7 during that release, with 5.7 support dropped for Olive. |
edx-platform now has a passing MySQL 8 migrations check: openedx/edx-platform#29784 . The rest of the services haven't been thoroughly checked yet, but I think that resolves all the MySQL 8 compatibility issues that have been identified so far. |
That is good to know! It sounds to me like the best workaround for the MySQL issue is to have ARM64 users upgrade early to MySQL 8. |
There are two items which are especially difficult to me:
For these reasons, I'm not sure what's the best course of action here :-/ Maybe that we should identify the issues that arm64 users face when they follow the tutorial?https://docs.tutor.overhang.io/tutorials/arm64.html |
That makes sense. Thinking out loud: maybe 2U or tCRIL could publish a set of ARM64 images that users could opt into. As I understand it, that wouldn't require any changes on your end or in Tutor. Users would just opt-in to the alternate images by changing the
I have been running Nightly using the official nightly images instead of building my own. Is that the wrong way to do it?
I agree: this would need to be fixed upstream. I did link a potential upstream solution above. |
OK you know what? I had forgotten that these images existed 😅 this is indeed the "right" way to do it. These images are updated nightly by a cron job, which means that it should be fairly easy to make that cron job also build the arm64 "openedx" images. The 3 hour delay is not such a big deal in that situation. Note however that this cron job does not build images for plugins. For instance, the "openedx-discovery" plugin does not have any "nightly" image: https://hub.docker.com/r/overhangio/openedx-discovery/tags This changes my perspective completely. Currently, my CI builds images on Kubernetes, but honestly it's kind of a pain to build docker-in-docker. I would be interested in setting up a build cluster with both linux/amd64 and linux/arm64 platforms (Hetzner provides Mac Mini hosting, for instance). This would resolve the question of building the Docker images. The MySQL issue is an easy fix. Provided the MFE issue is also resolved, we should be able to improve the arm64 user experience. |
Hey guys, I really like this initiative and I'm wondering if I could help. I just wanted to point out some weird things that I ran into along the way:
This is my repo and most of the magic happens in the GitHub Actions section: I'm aware that @regisb is highly against GitHub Actions due to vendor lock-in but it should be relatively easy to create a working example on GitHub Actions and switch over to a more open platform (Do you have something in mind? Does GitLab CI/CD platform good enough?) Thank you! |
BTW I managed to run tutor on ARM64 in AWS (Sadly with MariaDB), it requires some tweaking to the current Dockerfiles and images (see bugs 590 and 591 on tutor's repo). Changing the dockerize tarball to the right architecture and fixing the permissions docker (building it with If you need any further assistance I'd love to help. |
Wow, thank you @yarons! I will take a closer look next week, but it first glance I think what you have will be really helpful. Did you end up trying to run Tutor with your custom MySQL 5.7 ARM64 image before switching to MariaDB? |
Not yet but thanks for the idea, I did it for @regisb , I'll try to use it for my implementation as well. |
@kdmccormick I'm not sure it's still relevant but I ran it with my own MySQL 5.7 Docker and it worked great. Thanks. |
Can someone with a Mac please confirm that we can close this issue? All images should build properly on the master/nightly branches. |
@regisb This is highly important as all the build process was done on Ubuntu ARM64 and never tested with an M1 CPU before. |
@regisb I can confirm that with the current tutor nightly + edx-platform master, the base and dev images build properly :) Edit: since the images built OK this must be some issue with my bind-mounted copy of edx-platform, which takes effect after the image gets built. So I assume the image is fine. |
My read on the status of this issue is:
Before we can say "ARM64 works out-of-the box", though, we'll want to make sure that:
These issues are discussed a bit in this PR: overhangio/tutor#650 |
@kdmccormick Did people try out my plugin at the conference? I haven't heard any feedback so don't have a sense of how helpful it has been. |
@bradenmacdonald Yes, a few people used it and it seemed to work great! |
First time trying to run Tutor, and I own an M1 Mac. I tried the plugin just now. Works great! |
I'm closing this to capture the fact that we now have Tutor working on ARM via an easy-to-use plugin 💯 As I mentioned in this comment we have some more work to do, which I'm splitting out into a new issue: #81 |
The original title was Ensure Tutor works out-of-the-box on ARM64. We reduced the scope to "via an easy-to-use plugin" for now. We'll follow up with making this an official part of the base installation in : #81
Context
There are a few issues circulating around Open edX development on machines under the ARM64 architecture, notably the new M1 Macs. While many/all of these issues are not caused by Tutor itself, they affect the Tutor dev experience nonetheless. To make it maximally likely that 2U (largely Mac users) fully adopts Tutor, it's important that the tools feels like an "out of the box" experience as much as possible. While ideally this will involve merging fixes to upstream repos, it may also involve workarounds or doc additions in Tutor core or plugins.
Open issues
platform:
to enable emulation.platform:
to enable emulation.Acceptance
Ensure that it's nearly as easy (1-2 extras steps max) to set up Tutor on an ARM64 machine as it as on x86-64 machine in all of these configurations:
and using all of these plugins:
The text was updated successfully, but these errors were encountered: