First step towards using labels vs cni_args (wip)
authorMichael Cambria <michael.cambria@verizon.com>
Fri, 17 Feb 2017 20:19:37 +0000 (15:19 -0500)
committerMichael Cambria <michael.cambria@verizon.com>
Fri, 17 Feb 2017 20:19:37 +0000 (15:19 -0500)
20-macvlan0.conf
cni-conventions-args.txt [new file with mode: 0644]
cni-quagga-bgp.txt [new file with mode: 0644]
mcc-manual-add-static-env.sh
mcc-manual-add.sh [new file with mode: 0755]
mcc-manual-del-static-env.sh
mcc-manual-del.sh [new file with mode: 0755]
plugins/ipam/vz-local/backend/allocator/config.go
prov-server.txt [new file with mode: 0644]

index cee25bd..6e219fa 100644 (file)
@@ -2,7 +2,7 @@
     "cniVersion": "0.2.0",
     "name": "macvlan0",
     "type": "macvlan",
-    "master": "eth0",
+    "master": "em1",
     "args" : {
       "org.apache.mesos" : {
         "network_info" : {
             ]
           }
         }
+      },
+      "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 (file)
index 0000000..5867832
--- /dev/null
@@ -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 (file)
index 0000000..6af686c
--- /dev/null
@@ -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/
+
+
index 24ed273..bb084a5 100755 (executable)
@@ -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 (executable)
index 0000000..21f4710
--- /dev/null
@@ -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
+
+
index f9eb61b..84af1c2 100755 (executable)
@@ -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 (executable)
index 0000000..584732f
--- /dev/null
@@ -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
+
+
index bed40fb..e4ef561 100644 (file)
@@ -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 (file)
index 0000000..4991291
--- /dev/null
@@ -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
+
+