#1539 Add support for Multiple Architecture types
Issue created by
akhurana001
Motivation: Why do you think this is important?
Multiple cloud providers (AWS etc.) have extensive support for ARM based instances now and we want to explore running Flyte workloads on ARM instances due to multiple benefits over x86. In general, the goal is to enable platform admins to configure multiple architecture types as well as Flyte users to select between them based on which one they want to use/image support etc.
Goal: What should the final outcome look like, ideally?
Platform admins be able to configure multiple architecture support within the same flyte installation and users being able to specify which one to execute on.
[Optional] Propose: Link/Inline OR Additional context
The goal is to enable Platform admins to maintain both ARM and x86 ASGs on each Kubernetes cluster and to intelligently route workloads to the right ASG based on which architecture the user image was built/tested/registered for.
This can be done with adding taints to the ASGs and tolerations/node-selector to pods something Flyte already does for Interruptible enabled Tasks. However, for this use-case, it might be easier for users to tag the whole repo/sha with ARM rather than tagging individual tasks/nodes.
I was thinking we can re-use labels support at Launch-Plan level to implement this: Users can set architecture label either at project level via
flyte-config or directly at a launch-plan level which will then be routed correctly to the Flyte backend for those workflow versions/sha and corresponding tolerations and node-selector be added to those pods by FlytePropeller/plugins (similar to how Interruptible works).
Let me know what your thoughts are on this.
flyteorg/flyte