add flannel plugin

This introduces a notion of a "meta" plugin. A meta plugin
is one that delegates the actual work of setting up the interface
to the main plugin. The meta plugin is used to select and dynamically
configure the main plugin. The sequence of events, is as follows:

Given netconf like:

    {
	"name": "mynet",
	"type": "flannel",
	"delegate": {
	    "type": "bridge"
	}
    }

flannel fills in values like "mtu", "ipam.subnet" and delegates to
"bridge" main plugin. "bridge" plugin will operate as usual, calling
into ipam module for IP assignment.

Delegate dictionary should not contain "name" field as it will be
filled in by the flannel plugin.
This commit is contained in:
Eugene Yakubovich
2015-06-01 16:58:43 -07:00
parent ab83df2ebf
commit 78daffc479
4 changed files with 304 additions and 1 deletions

2
build
View File

@ -13,7 +13,7 @@ export GOPATH=${PWD}/gopath
echo "Building plugins"
PLUGINS="plugins/main/* plugins/ipam/*"
PLUGINS="plugins/meta/* plugins/main/* plugins/ipam/*"
for d in $PLUGINS; do
if [ -d $d ]; then
plugin=$(basename $d)