From 76d3a9260bb9df6531625e1558db2e9ca42a9578 Mon Sep 17 00:00:00 2001 From: Bryan Sullivan Date: Sat, 28 Jul 2018 08:21:10 -0700 Subject: Run scripts in current dir; fix service test logic JIRA: MODELS-2 Change-Id: I61d9a27c576d7348b17d8b9935961ef4fd049ba9 Signed-off-by: Bryan Sullivan --- tools/kubernetes/demo_deploy.sh | 29 +++++++++++++++-------------- tools/kubernetes/helm-tools.sh | 19 +++++++++++-------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/tools/kubernetes/demo_deploy.sh b/tools/kubernetes/demo_deploy.sh index d5568f4..ebb4dd2 100644 --- a/tools/kubernetes/demo_deploy.sh +++ b/tools/kubernetes/demo_deploy.sh @@ -28,8 +28,9 @@ #. - Password-less ssh key provided for node setup #. - hostname of kubernetes master setup in DNS or /etc/hosts #. Usage: on the MAAS server -#. $ git clone https://gerrit.opnfv.org/gerrit/models ~/models -#. $ bash ~/models/tools/kubernetes/demo_deploy.sh "" +#. $ git clone https://gerrit.opnfv.org/gerrit/models models +#. $ git clone https://gerrit.opnfv.org/gerrit/ves ves +#. $ bash models/tools/kubernetes/demo_deploy.sh "" #. "" "" #. [] #. : space separated list of hostnames managed by MAAS @@ -89,7 +90,7 @@ if [[ "$4" != "$5" ]]; then else k8s_master_hostname=$1 fi -cat <~/k8s_env.sh +cat <k8s_env.sh #!/bin/bash k8s_nodes="$1" k8s_user=$2 @@ -112,13 +113,13 @@ export k8s_pub_net export k8s_ceph_mode export k8s_ceph_dev EOF -source ~/k8s_env.sh +source k8s_env.sh env | grep k8s_ echo; echo "$0 $(date): Deploying base OS for master and worker nodes..." start=$((`date +%s`/60)) -source ~/models/tools/maas/deploy.sh $k8s_user $k8s_key "$k8s_nodes" $extras -step_end "source ~/models/tools/maas/deploy.sh $k8s_user $k8s_key \"$k8s_nodes\" $extras" +source models/tools/maas/deploy.sh $k8s_user $k8s_key "$k8s_nodes" $extras +step_end "source models/tools/maas/deploy.sh $k8s_user $k8s_key \"$k8s_nodes\" $extras" eval `ssh-agent` ssh-add $k8s_key @@ -128,11 +129,11 @@ while ! scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $k8s_key sleep 10 done scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \ - ~/k8s_env.sh $k8s_user@$k8s_master:/home/$k8s_user/k8s_env.sh + k8s_env.sh $k8s_user@$k8s_master:/home/$k8s_user/k8s_env.sh echo; echo "$0 $(date): Setting up kubernetes master..." scp -r -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \ - ~/models/tools/kubernetes/* $k8s_user@$k8s_master:/home/$k8s_user/. + models/tools/kubernetes/* $k8s_user@$k8s_master:/home/$k8s_user/. run_master "bash k8s-cluster.sh master" if [[ "$k8s_master" != "$k8s_workers" ]]; then @@ -161,14 +162,14 @@ else fi echo; echo "Setting up Prometheus..." -scp -r -o StrictHostKeyChecking=no ~/models/tools/prometheus/* \ +scp -r -o StrictHostKeyChecking=no models/tools/prometheus/* \ $k8s_user@$k8s_master:/home/$k8s_user/. run_master "bash prometheus-tools.sh setup prometheus helm" run_master "bash prometheus-tools.sh setup grafana helm" if [[ "$deploy" == "all" ]]; then echo; echo "$0 $(date): Setting up cloudify..." - scp -r -o StrictHostKeyChecking=no ~/models/tools/cloudify \ + scp -r -o StrictHostKeyChecking=no models/tools/cloudify \ $k8s_user@$k8s_master:/home/$k8s_user/. run_master "bash cloudify/k8s-cloudify.sh prereqs" run_master "bash cloudify/k8s-cloudify.sh setup" @@ -178,9 +179,9 @@ if [[ "$deploy" == "all" ]]; then echo; echo "$0 $(date): Setting up VES..." # not re-cloned if existing - allows patch testing locally - if [[ ! -d ~/ves ]]; then + if [[ ! -d ves ]]; then echo; echo "$0 $(date): Cloning VES..." - git clone https://gerrit.opnfv.org/gerrit/ves ~/ves + git clone https://gerrit.opnfv.org/gerrit/ves ves fi # Can't pass quoted strings in commands start=$((`date +%s`/60)) @@ -211,12 +212,12 @@ if [[ "$k8s_master" != "$k8s_workers" ]]; then fi if [[ "$deploy" == "all" ]]; then - source ~/ves/tools/ves_env.sh + source ves/tools/ves_env.sh echo "InfluxDB API is available at http://$ves_influxdb_host:$ves_influxdb_port/query&db=veseventsdb&q=" echo "Grafana dashboards are available at http://$ves_grafana_host:$ves_grafana_port (login as $ves_grafana_auth)" echo "Grafana API is available at http://$ves_grafana_auth@$ves_grafana_host:$ves_grafana_port/api/v1/query?query=" echo "Cloudify API access example: curl -u admin:admin --header 'Tenant: default_tenant' http://$k8s_master/api/v3.1/status" - port=$(bash ~/models/tools/cloudify/k8s-cloudify.sh nodePort nginx) + port=$(bash models/tools/cloudify/k8s-cloudify.sh nodePort nginx) echo "Cloudify-deployed demo app nginx is available at http://$k8s_master:$port" fi diff --git a/tools/kubernetes/helm-tools.sh b/tools/kubernetes/helm-tools.sh index aa4bf23..0572fe9 100644 --- a/tools/kubernetes/helm-tools.sh +++ b/tools/kubernetes/helm-tools.sh @@ -73,15 +73,18 @@ function setup_helm() { function wait_for_service() { log "Waiting for service $1 to be available" # TODO: fix 'head' workaround for more than one pod per service - pod=$(kubectl get pods --namespace default | awk "/$1/ { print \$1 }" | head -1) - log "Service $1 is at pod $pod" - ready=$(kubectl get pods --namespace default -o jsonpath='{.status.containerStatuses[0].ready}' $pod) - while [[ "$ready" != "true" ]]; do - log "pod $1 is not yet ready... waiting 10 seconds" + pods=$(kubectl get pods --namespace default | awk "/$1/ { print \$1 }") + log "Service $1 is at pod(s) $pods" + ready="false" + while [[ "$ready" != "true" ]] ; do + log "Waiting 10 seconds to check pod status" sleep 10 - # TODO: figure out why transient pods sometimes mess up this logic, thus need to re-get the pods - pod=$(kubectl get pods --namespace default | awk "/$1/ { print \$1 }") - ready=$(kubectl get pods --namespace default -o jsonpath='{.status.containerStatuses[0].ready}' $pod) + for pod in $pods ; do + ready=$(kubectl get pods --namespace default -o jsonpath='{.status.containerStatuses[0].ready}' $pod) + if [[ "$ready" != "true" ]]; then + log "pod $1 is $ready" + fi + done done log "pod $pod is ready" host_ip=$(kubectl get pods --namespace default -o jsonpath='{.status.hostIP}' $pod) -- cgit 1.2.3-korg