[Core feature] Refactor flytepropeller
Motivation: Why do you think this is important?
The current flytepropeller mixes client-go and controller-runtime, not only making the code harder to read, but also requiring tracing through two libraries' code when issues arise, and possibly bypassing some cache and consistency mechanisms unintentionally.
Goal: What should the final outcome look like, ideally?
Refactor flytepropeller, using either
- Pure
client-go - Pure
controller-runtime - Operator framework such as operator-sdk or kubebuilder.
Describe alternatives you've considered
Wherever there is mixed usage of client-go and controller-runtime, clearly comment on why the mixed usage of both libraries is needed. Also, prevent force type-casting from one type to another type in the other library.
Propose: Link/Inline OR Additional context
No response
Are you sure this issue hasn't been raised already?
- [X] Yes
Have you read the Code of Conduct?
- [X] Yes
It's great to see your enthusiasm for improving the flytepropeller component of the Flyte project! Your proposed solutions and attention to maintainability and reliability are commendable. Refactoring the codebase to use a consistent approach with either client-go, controller-runtime, or an operator framework could indeed simplify the code and enhance its readability.
Your thorough approach and consideration of potential reasons for the mixed usage demonstrate a thoughtful approach to addressing the issue. Your proposed solutions and alternative approach are valuable contributions to the project.
If you decide to move forward with implementing these changes, creating a pull request with your proposed solution would be a fantastic way to contribute to the project. Thank you for your dedication to improving the Flyte project!
About Dosu
This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.
Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.
If you want to continue the conversation, start your reply with @dosu-bot.
@MortalHappiness , the implications of such refactor are far and wide as this has the potential to break multiple currently scenarios. In other words, this is going to require multiple rounds of testing and unfortunately we don't have the resources yet to dedicate to this endeavor.