{"id":42964217,"url":"https://github.com/logingood/bagpipe-cni","last_synced_at":"2026-01-30T23:44:45.407Z","repository":{"id":64304460,"uuid":"56475038","full_name":"logingood/bagpipe-cni","owner":"logingood","description":"CNI plugin for BaGPipe BGP","archived":false,"fork":false,"pushed_at":"2016-05-26T06:17:31.000Z","size":314,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-20T12:07:25.907Z","etag":null,"topics":["bgp","cni-plugin","docker","evpn","kubernetes","vxlan"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/logingood.png","metadata":{"files":{"readme":"README.md","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}},"created_at":"2016-04-18T03:45:38.000Z","updated_at":"2024-02-05T03:49:59.000Z","dependencies_parsed_at":"2023-01-15T10:15:20.383Z","dependency_job_id":null,"html_url":"https://github.com/logingood/bagpipe-cni","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/logingood/bagpipe-cni","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logingood%2Fbagpipe-cni","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logingood%2Fbagpipe-cni/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logingood%2Fbagpipe-cni/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logingood%2Fbagpipe-cni/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/logingood","download_url":"https://codeload.github.com/logingood/bagpipe-cni/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logingood%2Fbagpipe-cni/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28923730,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T22:32:35.345Z","status":"ssl_error","status_checked_at":"2026-01-30T22:32:31.927Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bgp","cni-plugin","docker","evpn","kubernetes","vxlan"],"created_at":"2026-01-30T23:44:44.699Z","updated_at":"2026-01-30T23:44:45.402Z","avatar_url":"https://github.com/logingood.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BaGPipe BGP CNI plugin\n## Overview\n\nThis plugins allows to confiure container networking with VXLAN and advertise container's network as VXLAN + IP + Mac object using EVPN BGP route. \nYou must have bagpipe-bgp installed on the host machine:\n\n[BaGPipe BGP](https://github.com/Orange-OpenSource/bagpipe-bgp)\n\nProbably have a route reflector (BGP router that supports AFI=25 SAFI=70) because bagpipe-bgp allows only to run two nodes without RR.\n\nNice example of go-based RR: [GoBGP](http://osrg.github.io/gobgp/) and EVPN lab example can be found here [EVPN with BaGPipe BGP and GoBGP RR](https://github.com/osrg/gobgp/blob/master/docs/sources/evpn.md)\n\n## Install\n\n### Option 1\n\nUse go get:\n````\ngo get github.com/murat1985/bagpipe-cni\n````\npackage would be installed into your $GOBIN path, e.g.: \n```\n/usr/local/go/bin\n```\nBare in mind if you are going to use it with Kubernetes plugin should reside in ```/opt/cni/bin```\n\n### Option 2\nThe second way to install plugin altogether with other CNI plugins and IPAM plugins. Clone CNI repositority: [CNI](https://github.com/containernetworking/cni)\n\nMake sure that GOPATH environment variable is set\n\n```\ncd $GOPATH\ngit clone https://github.com/containernetworking/cni\ncd cni/plugins/main\n```\n\nClone bagpipe CNI plugin into plugins/main/bagpipe\n\n```\ngit clone https://github.com/murat1985/bagpipe-bgp bagpipe\ncd ../../\n```\n\nBuild plugins\n\n```\n./build\n```\n\n## Example configuration\n\nSupported IP manager plugins:\n\n* [host-local IP address manager](https://github.com/containernetworking/cni/tree/master/plugins/ipam/host-local)\n* [consul IP address manager](https://github.com/murat1985/cni-ipam-consul)\n\nJust put the example below in file /etc/cni/net.d/10-mynet.conf \n\n```\n{\n  \"name\": \"mynet\",\n  \"type\": \"bagpipe\",\n  \"importrt\": \"64512:90\",\n  \"exportrt\": \"64512:90\",\n  \"isGateway\": false,\n  \"ipMasq\": false,\n  \"mtu\": \"1500\", \n    \"ipam\": {\n      \"type\": \"host-local\",\n      \"subnet\": \"10.1.2.0/24\",\n      \"routes\": [\n        { \"dst\": \"0.0.0.0/0\" }\n      ]\n    }\n}\n```\n\n## Network configuration reference\n\n* `name` (string, required): the name of the network.\n* `type` (string, required): \"bagpipe\".\n* `importrt` (string, required): import community\n* `exportrt` (string, required): export community\n* `mtu` (integer, optional): explicitly set MTU to the specified value. Defaults to the value chosen by the kernel.\n\n## Usage with Kubernetes\n\nI have published a blog post, where described [PoC: BaGPipe CNI and Kubernetes](http://murat1985.github.io/kubernetes/cni/2016/05/15/kubernetes.html)\n\n## Usage with Docker\n\nAssuming that cni installed in the $GOPATH/cni and bagpipe CNI plugin is installed in plugins/main/bagpipe\ndocker-run.sh script could be found in scripts directory of [CNI](https://github.com/containernetworking/cni/blob/master/scripts/docker-run.sh) repository\n\n```\ncd $GOPATH/cni\nCNI_PATH=`pwd`/bin\n./build; cd scripts; CNI_PATH=$CNI_PATH ./docker-run.sh busybox ifconfig eth0 ; cd ..\n```\n\nAdding and Deleting of bagpipe tunnels along with container links fully implemented.\n\n## Diagram \n\n![alt text](https://github.com/murat1985/bagpipe-cni/blob/master/diagrams/CNI-Bagpipe.png \"BaGPipe BGP CNI plugin\")\n\n## TODO\n1. GW allocation (relying on BaGPipe BGP as it is responsible to create a bridge and vxlan interfaces)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogingood%2Fbagpipe-cni","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flogingood%2Fbagpipe-cni","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogingood%2Fbagpipe-cni/lists"}