diff options
author | Guo Ruijing <ruijing.guo@intel.com> | 2017-10-18 19:16:27 -0400 |
---|---|---|
committer | Guo Ruijing <ruijing.guo@intel.com> | 2017-10-18 19:18:23 -0400 |
commit | 7090e29c18309c21614b5c44572ee8b451eac973 (patch) | |
tree | 707f4c2208a8b75342dc2781f305e3f8315a46b1 /src/vagrant/kubeadm_multus/multus | |
parent | 4b7b5289169f5790a9cbdd65edf01cd3f372ee99 (diff) |
multus cni support
Change-Id: I0723447de8e9f5734a3a5d077f7f6f08cd02d9b3
Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
Diffstat (limited to 'src/vagrant/kubeadm_multus/multus')
-rw-r--r-- | src/vagrant/kubeadm_multus/multus/Dockerfile.build | 5 | ||||
-rw-r--r-- | src/vagrant/kubeadm_multus/multus/Dockerfile.multus | 4 | ||||
-rw-r--r-- | src/vagrant/kubeadm_multus/multus/build.sh | 7 | ||||
-rw-r--r-- | src/vagrant/kubeadm_multus/multus/install_cni.sh | 6 | ||||
-rw-r--r-- | src/vagrant/kubeadm_multus/multus/kube_cni_multus.yml | 88 | ||||
-rw-r--r-- | src/vagrant/kubeadm_multus/multus/setup.sh | 9 |
6 files changed, 119 insertions, 0 deletions
diff --git a/src/vagrant/kubeadm_multus/multus/Dockerfile.build b/src/vagrant/kubeadm_multus/multus/Dockerfile.build new file mode 100644 index 0000000..0b17fab --- /dev/null +++ b/src/vagrant/kubeadm_multus/multus/Dockerfile.build @@ -0,0 +1,5 @@ +FROM ubuntu:16.04 + +RUN apt-get update && apt-get install -y sudo git wget +ADD ./build.sh . +RUN bash ./build.sh diff --git a/src/vagrant/kubeadm_multus/multus/Dockerfile.multus b/src/vagrant/kubeadm_multus/multus/Dockerfile.multus new file mode 100644 index 0000000..e1d8cb0 --- /dev/null +++ b/src/vagrant/kubeadm_multus/multus/Dockerfile.multus @@ -0,0 +1,4 @@ +FROM ubuntu:16.04 + +ADD multus /cni/multus +ADD install_cni.sh /cni/install_cni.sh diff --git a/src/vagrant/kubeadm_multus/multus/build.sh b/src/vagrant/kubeadm_multus/multus/build.sh new file mode 100644 index 0000000..526b0b7 --- /dev/null +++ b/src/vagrant/kubeadm_multus/multus/build.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +wget -qO- https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz | sudo tar -C /usr/local -xz +echo 'export GOPATH=/go; export PATH=/usr/local/go/bin:$GOPATH/bin:$PATH' >> ~/.bashrc +export GOPATH=/go; export PATH=/usr/local/go/bin:$GOPATH/bin:$PATH +git clone https://github.com/Intel-Corp/multus-cni +cd multus-cni; bash ./build diff --git a/src/vagrant/kubeadm_multus/multus/install_cni.sh b/src/vagrant/kubeadm_multus/multus/install_cni.sh new file mode 100644 index 0000000..a4c5059 --- /dev/null +++ b/src/vagrant/kubeadm_multus/multus/install_cni.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -ex +cp /cni/multus /opt/cni/bin +cp /etc/kube-cnimultus/cni-conf.json /etc/cni/net.d/05-multus.conf +while true; do sleep 3600; done diff --git a/src/vagrant/kubeadm_multus/multus/kube_cni_multus.yml b/src/vagrant/kubeadm_multus/multus/kube_cni_multus.yml new file mode 100644 index 0000000..8290218 --- /dev/null +++ b/src/vagrant/kubeadm_multus/multus/kube_cni_multus.yml @@ -0,0 +1,88 @@ +--- +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 + containers: + - name: install-cni + image: openretriever/cnimultus + command: [ "/bin/bash", "/cni/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 + 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 diff --git a/src/vagrant/kubeadm_multus/multus/setup.sh b/src/vagrant/kubeadm_multus/multus/setup.sh new file mode 100644 index 0000000..4729993 --- /dev/null +++ b/src/vagrant/kubeadm_multus/multus/setup.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +BUILD=`pwd` + +sudo docker build -t multus.build . -f Dockerfile.build +sudo docker run -v $BUILD:/build -ti multus.build cp multus-cni/bin/multus /build +sudo docker build -t openretriever/cnimultus . -f Dockerfile.multus +sudo docker push openretriever/cnimultus +rm -rf multus |