{"id":26917147,"url":"https://github.com/svinota/pyroute2-cni","last_synced_at":"2025-07-04T09:08:12.933Z","repository":{"id":283900958,"uuid":"940018655","full_name":"svinota/pyroute2-cni","owner":"svinota","description":"pyroute2 based CNI plugin","archived":false,"fork":false,"pushed_at":"2025-05-15T18:32:18.000Z","size":166,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-15T19:38:27.391Z","etag":null,"topics":["9p2000","cni","cni-plugin","kubernetes","netlink","netns","plan9","srv6","vrf"],"latest_commit_sha":null,"homepage":"https://pyroute2.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/svinota.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-27T13:37:15.000Z","updated_at":"2025-05-15T18:32:22.000Z","dependencies_parsed_at":"2025-03-22T23:19:19.060Z","dependency_job_id":"70318b10-a05b-4276-85c1-6fe5af698949","html_url":"https://github.com/svinota/pyroute2-cni","commit_stats":null,"previous_names":["svinota/pyroute2-cni"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/svinota/pyroute2-cni","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svinota%2Fpyroute2-cni","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svinota%2Fpyroute2-cni/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svinota%2Fpyroute2-cni/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svinota%2Fpyroute2-cni/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/svinota","download_url":"https://codeload.github.com/svinota/pyroute2-cni/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svinota%2Fpyroute2-cni/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263480902,"owners_count":23473165,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["9p2000","cni","cni-plugin","kubernetes","netlink","netns","plan9","srv6","vrf"],"created_at":"2025-04-01T19:54:03.618Z","updated_at":"2025-07-04T09:08:12.921Z","avatar_url":"https://github.com/svinota.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"pyroute2-cni\n------------\n\nA lab code to test Kubernetes integration with SRv6 / VRF\n\nrequirements\n============\n\n* kubernetes 1.31\n* VMs: Ubuntu 24.04, one NIC\n* vrf kernel module\n\ninstall\n=======\n\n.. code::\n\n    kubectl apply -f https://raw.githubusercontent.com/svinota/pyroute2-cni/refs/heads/main/kubernetes/pyroute2-cni.yaml\n\nmaintenance info\n================\n\nsee also ``config['plan9']['port']``\n\nany node can be used, all the info is replicated\n\n.. warning::\n   No recovery is pushed in the repo at the moment!\n\n.. code::\n\n   9p -a {node_ip}:8149 read allocated          # → allocated addresses\n   9p -a {node_ip}:8149 read graph | display    # → topology map as SVG\n\nconfiguration\n=============\n\n.. warning::\n   Please notice that at the lab stage configuration options format\n   may change daily.\n\n**Namespace labels**\n\n.. code::\n\n    apiVersion: v1\n    kind: Namespace\n    metadata:\n      labels:\n        kubernetes.io/metadata.name: test\n        pyroute2.org/prefix: \"10.1.0.0\"\n        pyroute2.org/prefixlen: \"16\"\n        pyroute2.org/vrf: \"1000\"\n        pyroute2.org/vxlan: \"200\"\n      name: test\n\n* prefix: the prefix to use in the namespace\n* prefixlen: the network mask bits\n* vrf: the VRF to use for the namespace; see also ``End.DT4 vrftable``;\n  → creates interface ``vrf-{int}`` in the host netns\n* vxlan: VXLAN id of the transport between nodes;\n  → creates interface ``vxlan-{int}`` in the host netns\n\n\n**Pod labels**\n\nTo be delivered soon\n\n**ConfigMap**\n\n.. code::\n\n    apiVersion: v1\n    kind: ConfigMap\n    metadata:\n      name: server-config\n      namespace: pyroute2-cni\n    data:\n      server.ini: |\n        [api]\n        socket_path_api = /var/run/pyroute2/api\n        socket_path_fd = /var/run/pyroute2/fdpass\n\n        [network]\n        host_if = enp1s0\n\n        [default]\n        prefix = 10.244.0.0\n        prefixlen = 16\n        vxlan = 42\n        vrf = 42\n\n        [plan9]\n        port = 8149\n\n        [mdns]\n        service = _9p2r._tcp.local.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvinota%2Fpyroute2-cni","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsvinota%2Fpyroute2-cni","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvinota%2Fpyroute2-cni/lists"}