feat(Backend + SDK): Update kfp backend and kubernetes sdk to support node affinity
Description of your changes: This PR adds support for node affinity to the driver and kubernetes_platform SDK.
It is a follow up to #10671 and #10583, which updated the protobuf and Golang stub.
It follows the excellent example set by https://github.com/kubeflow/pipelines/pull/10427.
Huge thanks to @Tomcli for paving the way and sharing how to validate things end to end. Part of https://github.com/kubeflow/pipelines/issues/9768 and https://github.com/kubeflow/pipelines/issues/9682
Pod (Anti)Affinity will be added in a separate PR
Checklist:
- [x] The title for your pull request (PR) should follow our title convention. Learn more about the pull request title convention used in this repository.
Hi @cjidboon94. Thanks for your PR.
I'm waiting for a kubeflow member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
Hi @cjidboon94! With #10671 already merged, do you think we can unhold this PR?
Hi @cjidboon94! With #10671 already merged, do you think we can unhold this PR?
@rimolive For sure!
/unhold
cc @chensun
As the PR author said it's ready to review, can you remove the WIP tag?
@rimolive Oh, it's not ready yet for review. Sorry, misunderstood what you meant by unhold. What I meant was that I'm going to finish this PR and then will switch it to "Ready for review"
Hi @cjidboon94, do you have an ETA when you plan to finish the PR? Just to say that @droctothorpe is willing to help.
Happy to help. This PR may be a helpful reference.
@droctothorpe Thanks for making some time! Maybe you can get ahead on the podAffinity and podAntiAffinity as this PR will only focus on nodeAffinity. While pod(anti)Affinity does fall under Affinity, I think they're separate enough that you could already work on it. I expect that we might need to merge some things or have a plan on which PR to merge first.
@rimolive I believe what's left is:
- [x] backend tests
- [ ] python sdk implementation
- [ ] python sdk tests
I hope to finish up this week, had some life things going on that kept me off track but those are resolved now.
[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: Once this PR has been reviewed and has the lgtm label, please assign ironpan for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment
Still requires some work, I think (several more python tests to show different cases), but open to feedback/reviews
Any way we can help with this (and pod affinity)? The changes look OK from here.