From a46c332a1d163db17c1441e587bba0a986a6448a Mon Sep 17 00:00:00 2001 From: Michael Cambria Date: Fri, 17 Feb 2017 15:19:37 -0500 Subject: [PATCH] First step towards using labels vs cni_args (wip) --- 20-macvlan0.conf | 17 ++++++- cni-conventions-args.txt | 45 +++++++++++++++++++ cni-quagga-bgp.txt | 16 +++++++ mcc-manual-add-static-env.sh | 6 +-- mcc-manual-add.sh | 20 +++++++++ mcc-manual-del-static-env.sh | 6 +-- mcc-manual-del.sh | 20 +++++++++ .../ipam/vz-local/backend/allocator/config.go | 9 ++-- prov-server.txt | 12 +++++ 9 files changed, 141 insertions(+), 10 deletions(-) create mode 100644 cni-conventions-args.txt create mode 100644 cni-quagga-bgp.txt create mode 100755 mcc-manual-add.sh create mode 100755 mcc-manual-del.sh create mode 100644 prov-server.txt diff --git a/20-macvlan0.conf b/20-macvlan0.conf index cee25bd..6e219fa 100644 --- a/20-macvlan0.conf +++ b/20-macvlan0.conf @@ -2,7 +2,7 @@ "cniVersion": "0.2.0", "name": "macvlan0", "type": "macvlan", - "master": "eth0", + "master": "em1", "args" : { "org.apache.mesos" : { "network_info" : { @@ -18,6 +18,21 @@ ] } } + }, + "org.verizon" : { + "network_info" : { + "name" : "mynet", + "labels" : { + "labels" : [ + { "key" : "app", "value" : "myapp" }, + { "key" : "mccKey1", "value" : "mccVal1" }, + { "key" : "bs", "value" : "bsVal" }, + { "key" : "StaticIP", "value" : "172.19.0.209" }, + { "key" : "mccKey2", "value" : "mccVal2" }, + { "key" : "env", "value" : "prod" } + ] + } + } } }, "ipam": { diff --git a/cni-conventions-args.txt b/cni-conventions-args.txt new file mode 100644 index 0000000..5867832 --- /dev/null +++ b/cni-conventions-args.txt @@ -0,0 +1,45 @@ + + + "args":{ + "cni":{ + "labels": [{"key": "app", "value": "myapp"}] + } + }, + +https://github.com/containernetworking/cni/blob/master/CONVENTIONS.md + +https://github.com/containernetworking/cni/blob/master/SPEC.md#network-configuration + + +{ + "id": "cambria/test/cni-be-sock", + "cpus": 0.2, + "mem": 128, + "disk": 0, + "instances": 1, + "constraints": [ [ "hostname", "CLUSTER", "10.37.8.1" ] ], + "env": { + "MON_GROUP": "ThingSpaceHome", + "MON_APP": "ThingSpaceHome-plugin-test", + "MON_CONTACT": "michael.cambria@verizon.com" + }, + "container": { + "docker": { + "image": "10.32.17.1:9001/montana/tsh-sock-sink", + "forcePullImage": false, + "privileged": false + }, + "type": "MESOS" + }, + "ipAddress": { + "networkName": "macvlan0", + "labels" : { + "StaticIP" : "172.19.0.209" , + "mccKey2" : "mccVal2" + } + }, + "uris": [ "file:///docker.tar.gz" ] +} + + + diff --git a/cni-quagga-bgp.txt b/cni-quagga-bgp.txt new file mode 100644 index 0000000..6af686c --- /dev/null +++ b/cni-quagga-bgp.txt @@ -0,0 +1,16 @@ + +sudo ip link add eth1p0 link em1 type macvlan mode bridge +sudo ip addr add 172.19.0.1/16 dev eth1p0 +sudo ip link set eth1p0 up + +sudo ip netns add mcc-cni-test0 +sudo ip netns add mcc-cni-test1 + +sudo ip netns exec mcc-cni-test0 /bin/bash +sudo ip netns exec mcc-cni-test1 /bin/bash + + + +/var/lib/cni/networks/ + + diff --git a/mcc-manual-add-static-env.sh b/mcc-manual-add-static-env.sh index 24ed273..bb084a5 100755 --- a/mcc-manual-add-static-env.sh +++ b/mcc-manual-add-static-env.sh @@ -1,14 +1,14 @@ #/bin/bash export DEBUG=1 export NETCONFPATH=/etc/cni/net.d/ -export CNI_PATH=/home/mcambria/go/src/github.com/containernetworking/cni/bin/ -#export CNI_PATH=/home/mcambria/go2/src/stash.verizon.com/cni/bin +#export CNI_PATH=/home/mcambria/go/src/github.com/containernetworking/cni/bin/ +export CNI_PATH=/home/mcambria/go2/src/stash.verizon.com/cni/bin export NETCONFPATH=${NETCONFPATH-/etc/cni/net.d} export CNI_COMMAND=ADD export CNI_NETNS=/var/run/netns/mcc-cni-test0 export CNI_CONTAINERID=mcc-cni-test0 -export CNI_ARGS="IP=172.19.99.99;UPLINK=cbr0" +export CNI_ARGS="IP=172.19.99.99;UPLINK=eth1p0" #export CNI_ARGS="IP=172.19.99.99" #export CNI_ARGS+=";UPLINK=cbr0" diff --git a/mcc-manual-add.sh b/mcc-manual-add.sh new file mode 100755 index 0000000..21f4710 --- /dev/null +++ b/mcc-manual-add.sh @@ -0,0 +1,20 @@ +#/bin/bash +export DEBUG=1 +export NETCONFPATH=/etc/cni/net.d/ +#export CNI_PATH=/home/mcambria/go/src/github.com/containernetworking/cni/bin/ +export CNI_PATH=/home/mcambria/go2/src/stash.verizon.com/cni/bin +export NETCONFPATH=${NETCONFPATH-/etc/cni/net.d} +export CNI_COMMAND=ADD +export CNI_NETNS=/var/run/netns/mcc-cni-test1 +export CNI_CONTAINERID=mcc-cni-test1 + +export PATH=$CNI_PATH:$PATH +export CNI_IFNAME=eth1 + +export MCCVAL="Jamal Env Value" + +# sudo -E /home/mcambria/github/cni-master/scripts/exec-plugins.sh add mcc-cni-test0 /var/run/netns/mcc-cni-test0 + +macvlan < 20-macvlan0.conf + + diff --git a/mcc-manual-del-static-env.sh b/mcc-manual-del-static-env.sh index f9eb61b..84af1c2 100755 --- a/mcc-manual-del-static-env.sh +++ b/mcc-manual-del-static-env.sh @@ -1,14 +1,14 @@ #/bin/bash export DEBUG=1 export NETCONFPATH=/etc/cni/net.d/ -export CNI_PATH=/home/mcambria/go/src/github.com/containernetworking/cni/bin/ -#export CNI_PATH=/home/mcambria/go2/src/stash.verizon.com/cni/bin +#export CNI_PATH=/home/mcambria/go/src/github.com/containernetworking/cni/bin/ +export CNI_PATH=/home/mcambria/go2/src/stash.verizon.com/cni/bin export NETCONFPATH=${NETCONFPATH-/etc/cni/net.d} export CNI_COMMAND=DEL export CNI_NETNS=/var/run/netns/mcc-cni-test0 export CNI_CONTAINERID=mcc-cni-test0 -export CNI_ARGS="IP=172.19.99.99;UPLINK=cbr0" +export CNI_ARGS="IP=172.19.99.99;UPLINK=eth1p0" #export CNI_ARGS="IP=172.19.99.99" #export CNI_ARGS+=";UPLINK=cbr0" diff --git a/mcc-manual-del.sh b/mcc-manual-del.sh new file mode 100755 index 0000000..584732f --- /dev/null +++ b/mcc-manual-del.sh @@ -0,0 +1,20 @@ +#/bin/bash +export DEBUG=1 +export NETCONFPATH=/etc/cni/net.d/ +#export CNI_PATH=/home/mcambria/go/src/github.com/containernetworking/cni/bin/ +export CNI_PATH=/home/mcambria/go2/src/stash.verizon.com/cni/bin +export NETCONFPATH=${NETCONFPATH-/etc/cni/net.d} +export CNI_COMMAND=DEL +export CNI_NETNS=/var/run/netns/mcc-cni-test1 +export CNI_CONTAINERID=mcc-cni-test1 + +export PATH=$CNI_PATH:$PATH +export CNI_IFNAME=eth1 + +export MCCVAL="Jamal Env Value" + +# sudo -E /home/mcambria/github/cni-master/scripts/exec-plugins.sh add mcc-cni-test0 /var/run/netns/mcc-cni-test0 + +macvlan < 20-macvlan0.conf + + diff --git a/plugins/ipam/vz-local/backend/allocator/config.go b/plugins/ipam/vz-local/backend/allocator/config.go index bed40fb..e4ef561 100644 --- a/plugins/ipam/vz-local/backend/allocator/config.go +++ b/plugins/ipam/vz-local/backend/allocator/config.go @@ -118,7 +118,6 @@ func LoadIPAMConfig(bytes []byte, args string) (*IPAMConfig, string, error) { */ labels := map[string]string{} - if args != "" { if n.ARGS != nil { for k, label := range n.ARGS.Mesos.NetworkInfo.Labels.Labels { @@ -129,7 +128,6 @@ func LoadIPAMConfig(bytes []byte, args string) (*IPAMConfig, string, error) { println("CNI Args: Net Name: ", n.ARGS.Mesos.NetworkInfo.Name) } - } for key, value := range labels { println("Key:", key, "Value:", value) @@ -154,7 +152,12 @@ func LoadIPAMConfig(bytes []byte, args string) (*IPAMConfig, string, error) { staticIP, found := labels["StaticIP"] if found { println("StaticIP is: ", staticIP) - } + log.Println("StaticIP is: ", staticIP) + n.IPAM.Args.IP = net.ParseIP(staticIP) + log.Println("IPAM args: n.IPAM.IP is:", n.IPAM.Args.IP) + } else { + println("StaticIP label NOT set") + } bull, found := labels["bull"] if !found { diff --git a/prov-server.txt b/prov-server.txt new file mode 100644 index 0000000..4991291 --- /dev/null +++ b/prov-server.txt @@ -0,0 +1,12 @@ + +sudo systemctl restart dcos-mesos-slave-public.service + +cp ~montana/vz-local /opt/mesosphere/active/cni/vz-local + +cp ~montana/20-macvlan0.cni /opt/mesosphere/etc/dcos/network/cni + +sftp montana@maikai-prov.verizon.com + +sftp 10.37.20.1 + + -- 2.44.0