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/cloudify/k8s-cloudify.sh | 8 +-- tools/kubernetes/demo_deploy.sh | 69 +++++++++++-------- tools/kubernetes/k8s-cluster.sh | 149 ++++++++++++++++++++++++++++++---------- 3 files changed, 156 insertions(+), 70 deletions(-) diff --git a/tools/cloudify/k8s-cloudify.sh b/tools/cloudify/k8s-cloudify.sh index 36abb63..8f52f88 100644 --- a/tools/cloudify/k8s-cloudify.sh +++ b/tools/cloudify/k8s-cloudify.sh @@ -9,7 +9,6 @@ # # 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. # @@ -19,6 +18,7 @@ #. Usage: #. From a server with access to the kubernetes master node: #. $ git clone https://gerrit.opnfv.org/gerrit/models ~/models +#. $ cd models/tools/cloudify #. $ scp -r ~/models/tools/cloudify ubuntu@:/home/ubuntu/. #. : IP or hostname of kubernetes master server #. $ ssh -x ubuntu@ cloudify/k8s-cloudify.sh prereqs @@ -51,8 +51,7 @@ function fail() { function log() { f=$(caller 0 | awk '{print $2}') l=$(caller 0 | awk '{print $1}') - echo "" - echo "$f:$l ($(date)) $1" + echo; echo "$f:$l ($(date)) $1" } function prereqs() { @@ -178,7 +177,7 @@ function service_port() { sleep 10 ((tries--)) done - if [[ "$port" == "" ]]; then + if [[ "$port" == "null" ]]; then jq -r '.items' /tmp/json fail "node_port not found for service" fi @@ -283,6 +282,7 @@ function stop() { -d "{\"deployment_id\":\"$bp\", \"workflow_id\":\"uninstall\"}" \ -o /tmp/json http://$manager_ip/api/v3.1/executions id=$(jq -r ".id" /tmp/json) + log "uninstall execution id = $id" status="" tries=1 while [[ "$status" != "terminated" && $tries -lt 10 ]]; do diff --git a/tools/kubernetes/demo_deploy.sh b/tools/kubernetes/demo_deploy.sh index 7922434..c585a3e 100644 --- a/tools/kubernetes/demo_deploy.sh +++ b/tools/kubernetes/demo_deploy.sh @@ -34,7 +34,7 @@ #. : name of private key for cluster node ssh (in current folder) #. : space separated list of hostnames managed by MAAS #. : IP of cluster master node -#. : space separated list of agent node IPs +#. : space separated list of worker node IPs #. : CID formatted public network #. : CIDR formatted private network (may be same as pub-net) #. : "helm" or "baremetal" @@ -51,43 +51,56 @@ ceph_mode=$7 ceph_dev=$8 extras=$9 +function run_master() { +ssh -x -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \ + ubuntu@$master <" +#. $ 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 <