summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortrevortao <trevor.tao@arm.com>2018-01-25 14:31:50 +0800
committertrevortao <trevor.tao@arm.com>2018-01-25 14:31:50 +0800
commit432051cffd380d4d842223737e3949a3826683c8 (patch)
treed1c35779bb1406aba798161f8efad9d18235ee25
parent87e6c1419cab82ce5b0f828c360ac38120103993 (diff)
Add Kubernetes deployment scenario with 2 Flannel interfaces
1. README file 2. Deployement scripts Change-Id: I1f99ba77e803c8bbc5c40ae783b32ff0c7218375 Signed-off-by: trevortao <trevor.tao@arm.com>
-rw-r--r--src/arm/kubernetes_2flannel/README.rst15
-rwxr-xr-xsrc/arm/kubernetes_2flannel/k8s-build.sh32
-rwxr-xr-xsrc/arm/kubernetes_2flannel/k8s-deploy.sh44
-rwxr-xr-xsrc/arm/kubernetes_2flannel/setup.sh7
4 files changed, 98 insertions, 0 deletions
diff --git a/src/arm/kubernetes_2flannel/README.rst b/src/arm/kubernetes_2flannel/README.rst
new file mode 100644
index 0000000..354bff1
--- /dev/null
+++ b/src/arm/kubernetes_2flannel/README.rst
@@ -0,0 +1,15 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, arm Limited.
+
+.. _Flannel: https://github.com/coreos/flannel
+
+===============================================
+Kubernetes Deployment with 2 Flannel Interfaces
+===============================================
+
+The scenario would deploy 2 Flannel_ interfaces for any created pods, in which one interface
+named "eth0" would be used as the default interface, and the 2nd interface named "net0" would
+route to another subnet.
+
diff --git a/src/arm/kubernetes_2flannel/k8s-build.sh b/src/arm/kubernetes_2flannel/k8s-build.sh
new file mode 100755
index 0000000..23d1d31
--- /dev/null
+++ b/src/arm/kubernetes_2flannel/k8s-build.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+set -e
+
+sudo apt-get install -y docker.io libvirt-bin virt-manager qemu qemu-efi
+
+WORKSPACE=`pwd`
+if [ ! -d "$WORKSPACE/compass4nfv" ]; then
+ git clone https://gerrit.opnfv.org/gerrit/compass4nfv
+fi
+
+cd compass4nfv
+
+WORKSPACE=`pwd`
+
+COMPASS_WORK_DIR=$WORKSPACE/../compass-work
+mkdir -p $COMPASS_WORK_DIR
+if [ ! -d "$WORKSPACE/work" ]; then
+ ln -s $COMPASS_WORK_DIR work
+fi
+
+#TODO: remove workaround after patches merged
+if [ ! -f "$WORKSPACE/patched" ]; then
+
+ git checkout a360411cb8c775dffa24a4157cec2b566cbde6f3
+ curl http://people.linaro.org/~yibo.cai/compass/0001-deploy-cobbler-drop-tcp_tw_recycle-in-sysctl.conf.patch | git apply || true
+ curl http://people.linaro.org/~yibo.cai/compass/0002-docker-compose-support-aarch64.patch | git apply || true
+ curl http://people.linaro.org/~yibo.cai/compass/0003-add-a-multus-with-2-fannel-interfaces-installation.patch | git apply || true
+ touch "$WORKSPACE/patched"
+fi
+
+# build tarball
+COMPASS_ISO_REPO='http://people.linaro.org/~yibo.cai/compass' ./build.sh
diff --git a/src/arm/kubernetes_2flannel/k8s-deploy.sh b/src/arm/kubernetes_2flannel/k8s-deploy.sh
new file mode 100755
index 0000000..46f7786
--- /dev/null
+++ b/src/arm/kubernetes_2flannel/k8s-deploy.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+set -e
+
+#sudo apt-get install -y docker.io libvirt-bin virt-manager qemu qemu-efi
+
+#!/bin/bash
+dir=`pwd`
+echo "Current dir: "$dir
+curdir=${dir##*/}
+result=$(echo $curdir | grep "compass4nfv")
+if [[ "$result" == "" ]]
+then
+ cd compass4nfv
+fi
+
+CONTAINER4NFV_SCENARIO=2flannels
+
+export ADAPTER_OS_PATTERN='(?i)CentOS-7.*arm.*'
+export OS_VERSION="centos7"
+export KUBERNETES_VERSION="v1.7.3"
+export DHA="deploy/conf/vm_environment/k8-nosdn-nofeature-noha.yml"
+export NETWORK="deploy/conf/vm_environment/network.yml"
+export VIRT_NUMBER=2 VIRT_CPUS=2 VIRT_MEM=4096 VIRT_DISK=50G
+
+if [ $CONTAINER4NFV_SCENARIO = 2flannels ]; then
+ # enable 2 flannel cni deployment
+ echo "Set 2flannel scenario"
+ sed -i.bak 's/^kube_network_plugin:.*$/kube_network_plugin: 2flannel/' \
+ deploy/adapters/ansible/kubernetes/roles/kargo/files/extra-vars-aarch64.yml
+fi
+
+./deploy.sh
+
+set -ex
+
+# basic test: ssh to master, check k8s node status
+sshpass -p root ssh root@10.1.0.50 kubectl get nodes 2>/dev/null | grep -i ready
+
+# scenario specific tests
+if [ $CONTAINER4NFV_SCENARIO = 2flannels ]; then
+# show two nics in container
+ sshpass -p root ssh root@10.1.0.50 \
+ kubectl run test-2flannel --rm --restart=Never -it --image=busybox -- ip a
+fi
diff --git a/src/arm/kubernetes_2flannel/setup.sh b/src/arm/kubernetes_2flannel/setup.sh
new file mode 100755
index 0000000..b33e990
--- /dev/null
+++ b/src/arm/kubernetes_2flannel/setup.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+./k8s-build.sh
+
+sleep 2
+
+./k8s-deploy.sh