Add IPvlan L2 driver for Alibaba Cloud HPN nodes#206
Conversation
✅ Deploy Preview for dranet canceled.
|
|
Welcome @Bowser1704! |
|
Hi @Bowser1704. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Regular contributors should join the org to skip this step. Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions 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-sigs/prow repository. |
|
Happy to have you contributing @Bowser1704 This is very interesting as we're also working on a somewhat generic approach towards having IPVLAN as part of #63. @ngcxy is working on a POC at the moment and we can align to make sure it covers your use case too (from the looks of it, I think it would). |
|
/assign |
f529806 to
fbb1e43
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: Bowser1704 The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
bb0eeb9 to
e351900
Compare
|
Thanks @gauravkghildiyal! I've actually implemented a more generic IPvlan driver in this PR — it's not tightly coupled to Alibaba Cloud. The cloud provider hint just signals when to enable it. Would love to align with @ngcxy's POC from #63 — if we can converge on the IPvlan approach, that would let Alibaba Cloud users onboard to dranet right away. Happy to iterate on the design together. |
e351900 to
bb28b7f
Compare
Introduce a configurable IPvlan driver that creates IPvlan slave interfaces in the pod namespace while keeping the parent netdev on the host. The implementation supports L2/L3/L3S modes, bridge/private/ vepa flags, and three addressing strategies (none, static, parentIPv6PrefixPodIPv4). Key changes: - Expand IPVlanConfig API with mode, flag, addressing, and route/ neighbor copy options - Add IPvlan validation in the config validation pipeline - Implement idempotent attach: detect existing target interface in pod netns on retry, tolerate EEXIST on address assignment - Use deterministic temp names (parentName_iv) serialized by mutex - Support user-configured routes with full Scope/Table/Source fields, sorted link-scope-first for gateway reachability - Fail-fast on neighbor resolution errors instead of silently degrading connectivity - Make route/neighbor copy from parent opt-in via config - Decouple RDMA discovery from IPvlan config - Add Alibaba Cloud provider that auto-detects HPN instances and generates the IPvlan preset for bond devices with global IPv6 Signed-off-by: Hongqi Yu <yuhongqi.yhq@alibaba-inc.com>
bb28b7f to
48383e4
Compare
|
Thanks for the context. We'd very much like to get things work with Alibaba Cloud. But the approach that I think we should take with IPVLAN ( or MACVLAN and others) is also having the flexibility to share the parent interface across multiple pods and doing this in a more DRA native way (using things like DRA Consumable Capacity and others) This is something we are actively working towards and I'd highly encourage and request we wait for the work being done for #63. This is slightly opinionated, but it'd be awesome to get the IPVLAN support right from the get-go -- a modeling that allows for future extension like sharing between multiple pods. We'd appreciate your patience with this and would be happy to collaborate together so that all requirements are met. This PR is already a great demonstration of what exactly are the things we should have a solution for (in addition to things like device sharing). |
What type of PR is this?
/kind feature
Introduce a configurable IPvlan driver that creates IPvlan slave
interfaces in the pod namespace while keeping the parent netdev on
the host. The implementation supports L2/L3/L3S modes, bridge/private/
vepa flags, and three addressing strategies (none, static,
parentIPv6PrefixPodIPv4).
What this PR does / why we need it:
Key changes:
neighbor copy options
pod netns on retry, tolerate EEXIST on address assignment
sorted link-scope-first for gateway reachability
degrading connectivity
generates the IPvlan preset for bond devices with global IPv6
Which issue(s) this PR is related to:
N/A
Special notes for your reviewer:
Does this PR introduce a user-facing change?