feat: apple-silicon support
Description
Putting together a branch that supports Apple M1 macs. So far it is backwards compatible with Intel macs but reserving the right to make breaking changes.
Unresolved Issues
- some node/npm
pngquantversion incompatibilities
Notes
- M1 platform is
arm64v8, although we haven't had to specify that anywhere (yet) - MySQL volumes are renamed to preserve old data and avoid data incompatibilities for Intel users who are upgrading
Changes
- platform supported mysql image
- mysql volumes and images are renamed
- updated user/grant syntax for mysql8
- redis server workaround
Testing
- so far mostly local testing on volunteer laptops
- we have a request into AWS for access to M1 hardware (in preview) for a CI setup
Related Work
- https://github.com/openedx/devstack/pull/852
- https://github.com/openedx/license-manager/pull/416
- https://github.com/edx/enterprise-access/pull/55
- https://github.com/openedx/enterprise-catalog/pull/438
- https://github.com/openedx/license-manager/pull/417
- https://github.com/openedx/license-manager/pull/421
- https://github.com/openedx/enterprise-catalog/pull/447
- https://github.com/edx/enterprise-access/pull/59
I've completed each of the following or determined they are not applicable:
- [ ] Made a plan to communicate any major developer interface changes (or N/A)
There's a previous effort towards this in https://github.com/openedx/devstack/pull/852 that was abandoned after hitting a couple of blockers, it may be useful for reference.
Just double checking before I approve: developers who are using devstack right now will not lose any data when they update their devstack from this PR, right? Will they need to do anything else (make dev.pull, I imagine?)? @johnnagro
The PR #968 seems to work and would negate the need for this apple-silicon branch. It also provides a possible solution for other incompatible images (use buildx ourselves to create compatible versions of public Dockerfiles)
We've been able to build/use a cross-platform-compatible Mysql5.7 image via https://github.com/openedx/devstack/pull/968 and no longer need this apple-silicon branch / Mysql8.0 attempt to get around the M1 incompatibility. I can work with individual users if they want to move data back into mainline devstack - just reach out to me.