devstack icon indicating copy to clipboard operation
devstack copied to clipboard

feat: apple-silicon support

Open johnnagro opened this issue 3 years ago • 2 comments

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 pngquant version 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

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)

johnnagro avatar Apr 13 '22 15:04 johnnagro

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.

jmbowman avatar Apr 13 '22 16:04 jmbowman

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

rgraber avatar Jul 15 '22 14:07 rgraber

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)

johnnagro avatar Sep 13 '22 17:09 johnnagro

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.

johnnagro avatar Sep 15 '22 15:09 johnnagro