From fe7c7a9c85bf1b7070ed65899a64830cd3d12bbc Mon Sep 17 00:00:00 2001 From: Bryan Sullivan Date: Sat, 18 Nov 2017 11:07:04 -0800 Subject: Refactor demo deploy; fix issues with cluster firewall JIRA: MODELS-2 Change-Id: I0511c8af02e5ed706ce943a27d74e5eb22637e58 Signed-off-by: Bryan Sullivan --- tools/kubernetes/k8s-cluster.sh | 149 ++++++++++++++++++++++++++++++---------- 1 file changed, 111 insertions(+), 38 deletions(-) (limited to 'tools/kubernetes/k8s-cluster.sh') diff --git a/tools/kubernetes/k8s-cluster.sh b/tools/kubernetes/k8s-cluster.sh index 54c5973..817caaf 100644 --- a/tools/kubernetes/k8s-cluster.sh +++ b/tools/kubernetes/k8s-cluster.sh @@ -15,14 +15,14 @@ # #. What this is: script to setup a kubernetes cluster with calico as sni #. Prerequisites: -#. - Ubuntu xenial server for master and agent nodes -#. - key-based auth setup for ssh/scp between master and agent nodes +#. - Ubuntu xenial server for master and worker nodes +#. - key-based auth setup for ssh/scp between master and worker nodes #. - 192.168.0.0/16 should not be used on your server network interface subnets #. Usage: #. $ git clone https://gerrit.opnfv.org/gerrit/models ~/models #. $ cd ~/models/tools/kubernetes #. $ bash k8s-cluster.sh master -#. $ bash k8s-cluster.sh agents "" +#. $ bash k8s-cluster.sh workers "" #. nodes: space-separated list of ceph node IPs #. $ bash k8s-cluster.sh ceph "" [ceph_dev] #. nodes: space-separated list of ceph node IPs @@ -44,10 +44,15 @@ #. Status: work in progress, incomplete # +function fail() { + log $1 + exit 1 +} + function log() { f=$(caller 0 | awk '{print $2}') l=$(caller 0 | awk '{print $1}') - echo "$f:$l ($(date)) $1" + echo; echo "$f:$l ($(date)) $1" } function setup_prereqs() { @@ -55,16 +60,21 @@ function setup_prereqs() { cat <<'EOG' >/tmp/prereqs.sh #!/bin/bash # Basic server pre-reqs -sudo apt-get -y remove kubectl kubelet kubeadm +echo; echo "prereqs.sh: ($(date)) Basic prerequisites" sudo apt-get update sudo apt-get upgrade -y -# Set hostname if [[ $(grep -c $HOSTNAME /etc/hosts) -eq 0 ]]; then + echo; echo "prereqs.sh: ($(date)) Add $HOSTNAME to /etc/hosts" echo "$(ip route get 8.8.8.8 | awk '{print $NF; exit}') $HOSTNAME" | sudo tee -a /etc/hosts fi -# Install docker 1.12 (default for xenial is 1.12.6) +echo; echo "prereqs.sh: ($(date)) Install latest docker" sudo apt-get install -y docker.io -sudo service docker start +# Alternate for 1.12.6 +#sudo apt-get install -y libltdl7 +#wget https://packages.docker.com/1.12/apt/repo/pool/main/d/docker-engine/docker-engine_1.12.6~cs8-0~ubuntu-xenial_amd64.deb +#sudo dpkg -i docker-engine_1.12.6~cs8-0~ubuntu-xenial_amd64.deb +sudo service docker restart +echo; echo "prereqs.sh: ($(date)) Get k8s packages" export KUBE_VERSION=1.7.5 # per https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/ # Install kubelet, kubeadm, kubectl per https://kubernetes.io/docs/setup/independent/install-kubeadm/ @@ -74,11 +84,31 @@ cat <