metis: Implement CNI Mode for Metis and Add Conformance Tests#1046
metis: Implement CNI Mode for Metis and Add Conformance Tests#1046arvindbr8 wants to merge 6 commits intokubernetes:masterfrom
Conversation
|
This issue is currently awaiting triage. If the repository mantainers determine this is a relevant issue, they will accept it by applying the The 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. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: arvindbr8 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 |
|
Hi @arvindbr8. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Tip We noticed you've done this a few times! Consider joining the org to skip this step and gain 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. |
|
/hold for reviews from @YifeiZhuang @gnossen |
|
/ok-to-test |
This PR implements the CNI (Container Network Interface) mode for the metis binary, enabling it to act as a gRPC client that communicates with the Metis daemon for dynamic pod IP allocation and deallocation over a Unix Domain Socket.
It also implements the CNI CHECK command properly by expanding the gRPC API to verify active locks against the SQLite backend.
Changes
cmd/)cmd/cni.go: Implemented cmdAdd, cmdDel, and cmdCheck utilizing the official skel package.cmdCHECKadaptiveipam.proto: Added CheckPodIP RPC endpoint to poll state.daemon_server.go: Implemented the gRPC server handler for CheckPodIP.store.go: Added CheckAllocation to run targeted SQLite queries checking whether an edge still maps perfectly to a living container ID.cmd/cni_test.go:cmd/cni_conformance_test.go: Added a test suite utilizing the upstream CNI libcni package. This compiles our local CNI on-the-fly and acts exactly as containerd/kubelet would do, verifying full payload compliance.Verification Results
Ran tests locally via isolated module workspace tags: GOWORK=off go test -v ./cmd
Output:
All modules pass cleanly, and GitHub CI will automatically pick up these new test files upon pushing!
/hold for reviews from @YifeiZhuang @gnossen
/label tide/merge-method-squash