summaryrefslogtreecommitdiffstats
path: root/src/arm/kubernetes_basic
diff options
context:
space:
mode:
authortrevortao <trevor.tao@arm.com>2018-01-25 14:22:12 +0800
committertrevortao <trevor.tao@arm.com>2018-01-25 14:22:12 +0800
commit87e6c1419cab82ce5b0f828c360ac38120103993 (patch)
tree725d12af33406ccd0871b9a6ce790b6acac89f06 /src/arm/kubernetes_basic
parentabd05b1cb568c7cb9a406752b0f3d0daa0653b34 (diff)
Add Kubernetes deployment scenario for arm server
1. README.rst: installation guide 2. Scenario1: Kubernetes_basic, a basic Kubernetes cluster with 2 nodes and Flannel CNI plugin, including the deployment scripts, and an example use case We may add more Kubernetes scenarios in the future Change-Id: I3a0189533fdf99f0a80fd76c9e6cf96ff4a7e9f0 Signed-off-by: trevortao <trevor.tao@arm.com>
Diffstat (limited to 'src/arm/kubernetes_basic')
-rwxr-xr-xsrc/arm/kubernetes_basic/examples/nginx-app.sh42
-rw-r--r--src/arm/kubernetes_basic/examples/nginx-app.yaml31
-rwxr-xr-xsrc/arm/kubernetes_basic/k8s-build.sh31
-rwxr-xr-xsrc/arm/kubernetes_basic/k8s-deploy.sh34
-rwxr-xr-xsrc/arm/kubernetes_basic/setup.sh7
5 files changed, 145 insertions, 0 deletions
diff --git a/src/arm/kubernetes_basic/examples/nginx-app.sh b/src/arm/kubernetes_basic/examples/nginx-app.sh
new file mode 100755
index 0000000..18aaf93
--- /dev/null
+++ b/src/arm/kubernetes_basic/examples/nginx-app.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+#
+# Copyright (c) 2017 arm Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#Ref: src/vagrant/kubeadm_basic/examples/nginx-app.sh
+#Revised a little
+
+set -ex
+
+kubectl create -f ./examples/nginx-app.yaml
+kubectl get nodes
+kubectl get services
+kubectl get pods
+kubectl get rc
+
+r="0"
+while [ $r -ne "2" ]
+do
+ r=$(kubectl get pods | grep Running | wc -l)
+ sleep 60
+done
+
+svcip=$(kubectl get services nginx -o json | grep clusterIP | cut -f4 -d'"')
+sleep 10
+wget http://$svcip
+kubectl delete -f ./examples/nginx-app.yaml
+kubectl get rc
+kubectl get pods
+kubectl get services
diff --git a/src/arm/kubernetes_basic/examples/nginx-app.yaml b/src/arm/kubernetes_basic/examples/nginx-app.yaml
new file mode 100644
index 0000000..9b3c54b
--- /dev/null
+++ b/src/arm/kubernetes_basic/examples/nginx-app.yaml
@@ -0,0 +1,31 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: nginx
+ labels:
+ app: nginx
+spec:
+ type: NodePort
+ ports:
+ - port: 80
+ protocol: TCP
+ name: http
+ selector:
+ app: nginx
+---
+apiVersion: v1
+kind: ReplicationController
+metadata:
+ name: nginx
+spec:
+ replicas: 2
+ template:
+ metadata:
+ labels:
+ app: nginx
+ spec:
+ containers:
+ - name: nginx
+ image: arm64v8/nginx:stable
+ ports:
+ - containerPort: 80
diff --git a/src/arm/kubernetes_basic/k8s-build.sh b/src/arm/kubernetes_basic/k8s-build.sh
new file mode 100755
index 0000000..832a120
--- /dev/null
+++ b/src/arm/kubernetes_basic/k8s-build.sh
@@ -0,0 +1,31 @@
+#!/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
+ touch "$WORKSPACE/patched"
+fi
+
+# build tarball
+COMPASS_ISO_REPO='http://people.linaro.org/~yibo.cai/compass' ./build.sh
diff --git a/src/arm/kubernetes_basic/k8s-deploy.sh b/src/arm/kubernetes_basic/k8s-deploy.sh
new file mode 100755
index 0000000..3b8f6f3
--- /dev/null
+++ b/src/arm/kubernetes_basic/k8s-deploy.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+set -e
+
+#sudo apt-get install -y docker.io libvirt-bin virt-manager qemu qemu-efi
+
+dir=`pwd`
+echo "Current dir: "$dir
+curdir=${dir##*/}
+result=$(echo $curdir | grep "compass4nfv")
+if [[ "$result" == "" ]]
+then
+ cd compass4nfv
+fi
+
+
+#export CONTAINER4NFV_SCENARIO={scenario}
+
+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
+
+./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
+
+# Copy examples to master, run the example of nginx
+sshpass -p root scp -r ./examples root@10.1.0.50:~
+sshpass -p root ssh root@10.1.0.50 ~/examples/nginx-app.sh
diff --git a/src/arm/kubernetes_basic/setup.sh b/src/arm/kubernetes_basic/setup.sh
new file mode 100755
index 0000000..b33e990
--- /dev/null
+++ b/src/arm/kubernetes_basic/setup.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+./k8s-build.sh
+
+sleep 2
+
+./k8s-deploy.sh