envoyproxy / envoy

Cloud-native high-performance edge/middle/service proxy
https://www.envoyproxy.io
Apache License 2.0
24.75k stars 4.75k forks source link

Support Windows+arm64 #17572

Open codefromthecrypt opened 3 years ago

codefromthecrypt commented 3 years ago

Title: Support Windows+arm64

Description: Similar to Apple Silicon (#16482), we should also support, or at least track desire for Surface Pro X or similar windows+arm64 builds of Envoy

davinci26 commented 3 years ago

Is this for a production environment that is using arm builds or for developers?

cc @envoyproxy/windows-dev

codefromthecrypt commented 3 years ago

While rumors exist for cloud offerings, I don't see any windows+arm64 right now. I would say "only dev" until someone else pipes in about an IoT or server-side configuration that's possible.

Gut feeling is that this will be about devs using a 2-in-1 running Qualcomm Snapdragon processors (SQ1 and SQ2). Besides me though, it is just a hunch, so take it for what it's worth. I mentioned the surface x pro (SQ2) as likely that's what I would use to verify arm works on windows, not just here but other projects.

I found some tip that says certain emulation exists, but not sure it works for envoy or not.

codefromthecrypt commented 3 years ago

I know some of our toolset requires golang, so supporting this would likely become dependent on those tools building with go 1.17 or be go run here with 1.17.

codefromthecrypt commented 3 years ago

I've analyzed this docker issue on the same topic for more context. I'm mentioning this mainly as knowing that our windows support is currently limited to docker packaging of it.

Users here mention windows configurations beyond the Surface Pro X: Samsung Galaxy Book S, HP Elite Folio, and a server-side config, Ampere Altra.

It clarifies that emulation only works for x86 apps, not 64bit. However, WSL2 may work albeit complicated and people struggle with it when installing manually.

codefromthecrypt commented 3 years ago

related this could be easier if envoy didn't depend on go https://github.com/envoyproxy/envoy/issues/17886