Container networking for various use cases
Switch branches/tags
v1.0.0-alpha-01-28-2017.10-23-11.UTC v1.0.0-alpha-01-21-2017.20-19-23.UTC v0.1-12-23-2016.19-44-42.UTC v0.1-11-30-2016.20-08-20.UTC v0.1-11-22-2016.20-13-05.UTC v0.1-11-18-2016.20-38-27.UTC v0.1-11-16-2016.20-15-18.UTC v0.1-11-08-2016.19-35-13.UTC v0.1-11-03-2016.18-28-09.UTC v0.1-11-01-2016.18-27-43.UTC v0.1-10-21-2016.18-16-53.UTC v0.1-10-18-2016.15-54-28.UTC v0.1-10-05-2016.17-46-20.UTC v0.1-09-22-2016.17-21-42.UTC v0.1-09-14-2016.17-34-27.UTC v0.1-09-08-2016.20-56-40.UTC v0.1-08-17-2016.09-11-39.UTC v0.1-08-15-2016.23-49-19.UTC v0.1-08-14-2016.09-15-07.UTC v0.1-08-10-2016.10-55-19.UTC v0.1-08-06-2016.07-13-09.UTC v0.1-07-14-2016.07-06-17.UTC v0.1-06-30-2016.20-09-48.UTC v0.1-06-29-2016.09-15-33.UTC v0.1-06-24-2016.09-18-56.UTC v0.1-06-23-2016.09-10-57.UTC v0.1-06-17-2016.08-42-14.UTC v0.1-06-16-2016.08-43-53.UTC v0.1-06-14-2016.05-56-38.UTC v0.1-06-02-2016.19-39-04.UTC v0.1-05-25-2016.09-07-25.UTC v0.1-05-24-2016.05-32-00.UTC v0.1-05-22-2016.17-46-35.UTC v0.1-05-19-2016.08-34-56.UTC v0.1-05-17-2016.08-30-10.UTC v0.1-05-16-2016.08-29-25.UTC v0.1-05-14-2016.08-30-44.UTC v0.1-05-08-2016.20-28-46.UTC v0.1-05-07-2016.08-39-27.UTC v0.1-05-05-2016.18-38-56.UTC v0.1-05-04-2016.22-46-43.UTC v0.1-05-02-2016.23-10-27.UTC v0.1-04-29-2016.17-41-28.UTC v0.1-04-13-2016.22-33-15.UTC v0.1-04-11-2016.17-31-22.UTC v0.1-04-09-2016.02-54-52.UTC v0.1-04-06-2016.16-16-02.UTC v0.1-04-02-2016.04-54-53.UTC v0.1-03-24-2016.02-02-50.UTC v0.1-03-16-2016.13-43-59.UTC v0.1-03-05-2016.09-42-48.UTC v0.1-03-01-2016.02-29-00.UTC v0.1-02-27-2016.09-27-46.UTC v0.1-02-25-2016.09-29-08.UTC v0.1-02-23-2016.20-47-13.UTC v0.1-02-18-2016.14-24-59.UTC v0.1-02-15-2016.03-52-26.UTC v0.1-02-13-2016.03-57-21.UTC v0.1-02-12-2016.03-35-32.UTC v0.1-02-11-2016.03-48-41.UTC v0.1-02-09-2016.19-04-28.UTC v0.1-02-07-2016.03-16-52.UTC v0.1-02-06-2016.14-42-05.UTC v0.1-02-06-2016.03-07-30.UTC v0.1-02-05-2016.03-44-35.UTC v0.1-02-03-2016.22-46-04.UTC v0.1-01-28-2016.03-55-05.UTC v0.1-01-27-2016.03-56-58.UTC v0.0.0 v0.0.0-12-30-2015.10-20-25.UTC v0.0.0-12-25-2015.10-13-41.UTC v0.0.0-12-24-2015.10-15-34.UTC v0.0.0-12-11-2015.20-54-40.UTC v0.0.0-12-01-2015.19-36-44.UTC v0.0.0-11-12-2015.00-55-50.UTC v0.0.0-11-10-2015.09-32-18.UTC v0.0.0-11-07-2015.02-43-45.UTC v0.0.0-11-05-2015.22-38-50.UTC v0.0.0-11-04-2015.20-50-35.UTC v0.0.0-10-28-2015.23-18-10.UTC v0.0.0-10-22-2015.17-43-23.UTC v0.0.0-10-20-2015.21-05-36.UTC v0.0.0-10-16-2015.09-02-53.UTC v0.0.0-10-07-2015.18-32-49.UTC v0.0.0-09-27-2015.07-50-29.UTC v0.0.0-09-24-2015.00-37-49.UTC v0.0.0-09-22-2015.05-38-43.UTC v0.0.0-09-22-2015.01-55-07.UTC v0.0.0-09-18-2015.23-19-53.UTC v0.0.0-09-18-2015.15-09-29.UTC v0.0.0-09-18-2015.15-07-19.UTC v0.0.0-09-16-2015.18-42-11.UTC v0.0.0-09-05-2015.03-26-12.UTC v0.0.0-09-02-2015.20-00-56.UTC v0.0.0-08-26-2015.20-57-19.UTC v0.0.0-08-26-2015.18-53-28.UTC v0.0.0-08-25-2015.19-15-07.UTC v0.0.0-01-26-2016.15-43-10.UTC v0.0.0-01-23-2016.11-36-49.UTC v0.0.0-01-21-2016.10-26-24.UTC
Nothing to show
Clone or download
dseevr Merge pull request #1137 from dseevr-dev/revert_commit
Revert "modified burst value"
Latest commit f00cb58 May 31, 2018
Permalink
Failed to load latest commit information.
.github Adding contribution and governance guidelines Oct 3, 2017
Godeps Godeps,vendor: bump ofnet to c080e5b Jan 5, 2018
bin Makefile, Vagrantfile: refactor of build system Aug 25, 2015
contivmodel Revert "modified burst value" May 30, 2018
core netmaster cli refactor (#1088) Dec 5, 2017
docs Fix markdown format in design.md Sep 7, 2017
drivers configure Vxlan veth interface mtu based on configured minimum host i… May 23, 2018
install install/v2plugin/config.template: remove comma Mar 19, 2018
mgmtfn Put some more debug info May 18, 2018
netctl netctl: provide fallback for user.Current Dec 4, 2017
netmaster Put some more debug info May 18, 2018
netplugin fix for IPAM leak issue May 2, 2018
objdb netmaster cli refactor (#1088) Dec 5, 2017
scripts Add systest dev mode and misc review fixes Jan 18, 2018
state Fix netplugin start scripts and documents Nov 21, 2017
test Skip master nodes for checkings Jan 17, 2018
utils configure Vxlan veth interface mtu based on configured minimum host i… May 23, 2018
vagrant Add systest dev mode and misc review fixes Jan 18, 2018
vendor Godeps,vendor: bump ofnet to c080e5b Jan 5, 2018
version Support deploy k8s 1.8, update CNI version and misc fixes Jan 11, 2018
.dockerignore Create a single Dockerfile that builds K8S image Dec 21, 2017
.gitignore Use kubeadm stable for systesting Jan 9, 2018
CONTRIBUTING.md Adding contribution and governance guidelines Oct 3, 2017
Dockerfile Create a single Dockerfile that builds K8S image Dec 21, 2017
Dockerfile-check Go code checks can be run locally in container (#1012) Oct 18, 2017
Dockerfile-compile Create a single Dockerfile that builds K8S image Dec 21, 2017
GOVERNANCE.md Adding contribution and governance guidelines Oct 3, 2017
Jenkinsfile Prepare for new CI Oct 30, 2017
Jenkinsfile-onmerge Prepare for new CI Oct 30, 2017
Jenkinsfile-ontag Prepare for new CI Oct 30, 2017
LICENSE edit Netplugin license info so that GitHub recognizes it Apr 6, 2018
Makefile Update images to release version Jan 19, 2018
README.md Added note about CONTIV_CPUS Oct 17, 2017
RELEASE.md contiv k8s container now tagged with git version (#1082) Nov 30, 2017
Vagrantfile Vagrantfile: added ability to install Docker EE (specifed version) on… Dec 7, 2017

README.md

Build Status Go Report Card

Netplugin

Generic network plugin is designed to handle networking use cases in clustered multi-host systems. It is specifically designed to handle:

  • Multi-tenant environment where disjoint networks are offered to containers on the same host
  • SDN applications and interoperability with SDN solutions
  • Interoperability with non container environment and hand-off to a physical network
  • Instantiating policies/ACL/QoS associated with containers
  • Multicast or multi-destination dependent applications
  • Integration with existing IPAM tools for migrating customers
  • Handle NIC's capabilities for acceleration (SRIOV/Offload/etc.)

Documentation

Full, comprehensive documentation is available on the website:

http://docs.contiv.io

Getting-started videos are available on YouTube.

Getting Started

This will provide you with a minimal experience of uploading the intent and seeing the netplugin system act on it. It will create a network on your host that lives behind an OVS bridge and has its own unique interfaces.

Step 1: Clone the project and bringup the VMs

Note: if you have $GOPATH set, then please ensure either you unset GOPATH, or clone the tree in $GOPATH/src/github.com/contiv/ location

$ git clone https://github.com/contiv/netplugin
$ cd netplugin; make demo
$ vagrant ssh netplugin-node1

Optionally, variables can be passed to Makefile if needed. For example, to use 4 GB memory and 2 CPUs for the vagrant VMs, run:

CONTIV_MEMORY=4096 CONTIV_CPUS=2 make demo

CONTIV_MEMORY and CONTIV_CPUS are set to 2048 and 4 as the default values respectively.

Step 2: Create a network

$ netctl net create contiv-net --subnet=20.1.1.0/24
	or
netctl net create contiv-net --subnet=20.1.1.0/24 --subnetv6=2001::/100 

Step 3: Run your containers and enjoy the networking!

$ docker run -itd --name=web --net=contiv-net alpine /bin/sh
$ docker run -itd --name=db --net=contiv-net alpine /bin/sh
$ docker exec -it web /bin/sh
< inside the container >
root@f90e7fd409c4:/# ping db
PING db (20.1.1.3) 56(84) bytes of data.
64 bytes from db (20.1.1.3): icmp_seq=1 ttl=64 time=0.658 ms
64 bytes from db (20.1.1.3): icmp_seq=2 ttl=64 time=0.103 ms

Building and Testing

Note: Vagrant 1.7.4 and VirtualBox 5.0+ are required to build and test netplugin.

High level make targets:

  • demo: start three VM demo cluster for development or testing.
  • build: build the binary in a VM and download it to the host.
  • unit-test: run the unit tests. Specify CONTIV_NODE_OS=centos to test on centos instead of ubuntu.
  • system-test: run the networking/"sanity" tests. Specify CONTIV_NODE_OS=centos to test on centos instead of ubuntu.

How to Contribute

Patches and contributions are welcome, please hit the GitHub page to open an issue or to submit patches send pull requests. Please sign your commits, and read CONTRIBUTING.md