summaryrefslogtreecommitdiffstats
path: root/src/cni/multus
diff options
context:
space:
mode:
authorGuo Ruijing <ruijing.guo@intel.com>2017-11-22 13:06:39 -0500
committerGuo Ruijing <ruijing.guo@intel.com>2017-11-22 18:03:19 -0500
commitec94abf0ea9154af2f0dbce13e12df775b72bbac (patch)
treeb79ee46962ba50fe2cbad8efb5ef8f2cf709c3b1 /src/cni/multus
parent57c01199d342c5051fef2bb94f463f21749089bb (diff)
build multus in ubuntu:16.04 docker during deployment
Change-Id: I557be21c59e28401c5ec20cd43d2baabc13bef3e Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
Diffstat (limited to 'src/cni/multus')
-rw-r--r--src/cni/multus/install_cni.sh12
-rw-r--r--src/cni/multus/kube_cni_multus.yml95
2 files changed, 107 insertions, 0 deletions
diff --git a/src/cni/multus/install_cni.sh b/src/cni/multus/install_cni.sh
new file mode 100644
index 0000000..0d1ee6b
--- /dev/null
+++ b/src/cni/multus/install_cni.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+set -ex
+
+export PATH=/usr/local/go/bin:$PATH
+apt-get update && apt-get install -y wget
+rm -rf multus-cni
+wget -qO- https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz | tar -C /usr/local/ -xz
+git clone https://github.com/Intel-Corp/multus-cni
+cd multus-cni; bash ./build
+cp bin/multus /opt/cni/bin
+cp /etc/kube-cnimultus/cni-conf.json /etc/cni/net.d/05-multus.conf
diff --git a/src/cni/multus/kube_cni_multus.yml b/src/cni/multus/kube_cni_multus.yml
new file mode 100644
index 0000000..cd91737
--- /dev/null
+++ b/src/cni/multus/kube_cni_multus.yml
@@ -0,0 +1,95 @@
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: cnimultus
+ namespace: kube-system
+---
+kind: ConfigMap
+apiVersion: v1
+metadata:
+ name: kube-cnimultus-cfg
+ namespace: kube-system
+ labels:
+ tier: node
+ app: cnimultus
+data:
+ cni-conf.json: |
+ {
+ "name": "multus",
+ "type": "multus",
+ "delegates": [
+ {
+ "name": "weave",
+ "type": "weave-net",
+ "hairpinMode": true,
+ "masterplugin": true
+ },
+ {
+ "name": "mynet",
+ "type": "bridge",
+ "bridge": "cni0",
+ "isGateway": true,
+ "ipMasq": true,
+ "ipam": {
+ "type": "host-local",
+ "subnet": "10.22.0.0/16",
+ "routes": [
+ { "dst": "0.0.0.0/0" }
+ ]
+ }
+ }
+ ]
+ }
+---
+apiVersion: extensions/v1beta1
+kind: DaemonSet
+metadata:
+ name: kube-cnimultus-ds
+ namespace: kube-system
+ labels:
+ tier: node
+ app: cnimultus
+spec:
+ template:
+ metadata:
+ labels:
+ tier: node
+ app: cnimultus
+ spec:
+ hostNetwork: true
+ nodeSelector:
+ beta.kubernetes.io/arch: amd64
+ tolerations:
+ - key: node-role.kubernetes.io/master
+ operator: Exists
+ effect: NoSchedule
+ serviceAccountName: cnimultus
+ initContainers:
+ - name: install-cni
+ image: ubuntu:16.04
+ command:
+ - bash
+ - "-c"
+ - "apt-get update && apt-get install -y git && git clone http://github.com/opnfv/container4nfv && cd container4nfv && git fetch https://gerrit.opnfv.org/gerrit/container4nfv refs/changes/81/47681/5 && git checkout FETCH_HEAD && bash ./src/cni/multus/install_cni.sh"
+ volumeMounts:
+ - name: cni-bin
+ mountPath: /opt/cni/bin
+ - name: cni-cfg
+ mountPath: /etc/cni/net.d
+ - name: cnimultus-cfg
+ mountPath: /etc/kube-cnimultus
+ containers:
+ - name: run-cni
+ image: busybox:1.27.2
+ command: ['sh', '-c', 'while true; do sleep 10000; done' ]
+ volumes:
+ - name: cni-bin
+ hostPath:
+ path: /opt/cni/bin
+ - name: cni-cfg
+ hostPath:
+ path: /etc/cni/net.d
+ - name: cnimultus-cfg
+ configMap:
+ name: kube-cnimultus-cfg