potiuk commented on issue #15635:
URL: https://github.com/apache/airflow/issues/15635#issuecomment-1000138886


   Thanks @andormarkus  - I understand your CI provides ARM (and I am pretty 
sure those are weeks rather than months that GitHub Actions will provide one - 
ARM is becoming a "highly reguested" thing. So nice try ;) but GitHub Actions 
are not a problem here. This is by far the least (and easy to bypass) of our 
blockers
   
   > As I know this project uses Github actions to build images. Github actions 
only support amd64 runners does not offer arm64 runner like other CI provider. 
You can build arm64 images on amd64 platform with the help on Docker BuildX 
however it will have a 3-4X time penalty compared to a native arm64 runner.
   
   Actually we build our images for CI tests with our self-hosted runners of 
Amazon. So we could set the pipelines on GitHub actions using those. We will 
just need to build a bit of infrastructure for that.
    
   The actual blocker here is native support for ARM for a number of libraries 
and tools we are using. Airflow has 550+ pyhon dependencies, where some of 
those have native c/C++ libraries and need precompiled versions. We have 
complex cross-dependencies which simply make it complex to get the right set 
that will work.
   
   For example one of the things that "blocks us" to hav full ARM support is 
lack of ARM images for MySQL https://bugs.mysql.com/bug.php?id=103462.
   
   However, while we won't be able to get "full" support" for ARM yet for all 
the dependencies I am pretty confident we can get "selective" support. Python 
3.9 + Postgres + subset of providers should actually work.
   
   I am going to take a stab on it after Xmas, however. I even have a new 
MacBook PRO to play a bit with that. This will require a few upgrades to our 
build infrastructure:
   
   * adapt our Dockerfiles to support multi-platform builds
   * changing build infrastructure to use BUILDX and produce multiplatform 
images (including proper caching)
   * adding posibility to select test scope depending on the Architecture
   * adding possibility to select and build constraints that will depend on the 
architecture (I am pretty sure we will have different set of constraints for 
our dependencies for different architectures)
   * converting our self-hosted AMIs to be ARM-based
   
   All that is needed to make it works. The final "result" that you see as an 
image seems like "simple" thing to do. But in order do that a set of 
prerequisites need to be fulfilled.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to