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

ARM64 (Linux), Apple Silicon (M1, M2) support #1314

Closed
danieljurek opened this issue Jan 4, 2023 · 9 comments
Closed

ARM64 (Linux), Apple Silicon (M1, M2) support #1314

danieljurek opened this issue Jan 4, 2023 · 9 comments

Comments

@danieljurek
Copy link
Member

General issue to track addition support for AMR64 (Linux) and Apple Silicon (M1, M2, etc.) support.

Current discussions involve our bar being:

  • Build client
  • azd test suite passes
  • Template tests pass

Current status:

  • We have access to a DevOps pool of ARM64 Linux machines but those machines are missing a lot of the software/tools needed for a successful build and run of test scenarios. Some can be installed successfully with a script
  • ARM64 support in some tooling may not presently available so some services azd supports in x86_64 environments today will not work until support is added for those tools
@ghost ghost added the needs-triage For new issues label Jan 4, 2023
@rajeshkamal5050 rajeshkamal5050 added this to the Backlog milestone Jan 9, 2023
@ghost ghost removed the needs-triage For new issues label Jan 9, 2023
@pamelafox
Copy link
Member

FYI, I've discovered that the docker-in-docker feature is not compatible with the --platform emulation flag: devcontainers/features#219

So I believe that for local VS Code development, I can either have docker-in-docker support in my dev container, or azd support, but not both. Fortunately I think both should work in Codespaces since that's not running on an M1.

Additional motivation to have better ARM64 support.

@rajeshkamal5050
Copy link
Contributor

rajeshkamal5050 commented Feb 7, 2023

@danieljurek has already,

@danieljurek
Copy link
Member Author

Setting confidence to Low on this because automated validation scenarios like the ones we use for other binaries are not well covered at this time:

  • Little support in DevOps for Linux ARM scenarios
  • No support for Apple Silicon in DevOps

If we just cross-compile then the process should be pretty simple to implement though we'd need to work on signing and installers. I'm not sure if signing macOS binaries compiled for ARM64 is supported.

@rajeshkamal5050
Copy link
Contributor

rajeshkamal5050 commented Feb 13, 2023

@danieljurek agreed on trying to build, validate and test it natively on Linux ARM64 and Apple Silicon is a huge lift. Since ARM64 support and the ecosystem is not completely vetted and rolled out internally yet. It is definitely going to take sometime and might not be worth while to do the heavy lifting and custom building ourselves(azd and engsys) now.

Instead, as you said let us try to cross compile with our already existing pipelines/vm images. For now, this seems to be the best approach we should take and try things out,

  • Let us start to internally build and release ARM64 bits.
  • Get some manual testing going(vendor, dev, CDA, internal users).
  • Once, we feel confident with our testing and flush out signing of bits.
  • We can release it.

cc: @savannahostrowski @Petermarcu @ellismg @weshaggard

@weshaggard
Copy link
Member

Yes I think cross-compiling will be a reasonable starting point. I'll add that GitHub is targeting support for images in Q3 this year https://github.com/orgs/github/projects/4247?pane=issue&itemId=5944419 and which point we can hopefully leverage those to do building and testing on.

@Petermarcu
Copy link
Member

I made this PR to update the docs to mention installing the emulator. MicrosoftDocs/azure-dev-docs#1087

@rajeshkamal5050
Copy link
Contributor

rajeshkamal5050 commented Mar 7, 2023

Moving this out to Gallium due to dependencies with external teams in getting native pipelines and required infra setup.

cc: @savannahostrowski

@pamelafox
Copy link
Member

You probably already know this, but FYI that I'm unable to run the playwright tests for the TODO samples on my M1. There's a qemu error when it tries to start up Chromium. Just noting here as something affected by M1 usage.

@savannahostrowski savannahostrowski modified the milestones: Gallium, Backlog Apr 7, 2023
@danieljurek
Copy link
Member Author

This was released on 2023-10-05.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants