From ec94abf0ea9154af2f0dbce13e12df775b72bbac Mon Sep 17 00:00:00 2001 From: Guo Ruijing Date: Wed, 22 Nov 2017 13:06:39 -0500 Subject: build multus in ubuntu:16.04 docker during deployment Change-Id: I557be21c59e28401c5ec20cd43d2baabc13bef3e Signed-off-by: Guo Ruijing --- src/cni/multus/install_cni.sh | 12 +++++ src/cni/multus/kube_cni_multus.yml | 95 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 src/cni/multus/install_cni.sh create mode 100644 src/cni/multus/kube_cni_multus.yml (limited to 'src/cni') 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 -- cgit 1.2.3-korg