diff options
Diffstat (limited to 'tools/kubernetes/demo_deploy.sh')
-rw-r--r-- | tools/kubernetes/demo_deploy.sh | 100 |
1 files changed, 60 insertions, 40 deletions
diff --git a/tools/kubernetes/demo_deploy.sh b/tools/kubernetes/demo_deploy.sh index 4777c4b..0c581b8 100644 --- a/tools/kubernetes/demo_deploy.sh +++ b/tools/kubernetes/demo_deploy.sh @@ -39,37 +39,57 @@ #. <ceph-dev>: disk (e.g. sda, sdb) or folder (e.g. "/ceph") #. <extras>: optional name of script for extra setup functions as needed -key=$1 -nodes="$2" -master=$3 -workers="$4" -priv_net=$5 -pub_net=$6 -ceph_mode=$7 -ceph_dev=$8 -extras=$9 - function run_master() { -ssh -x -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \ - ubuntu@$master <<EOF + start=$((`date +%s`/60)) + ssh -x -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \ + ubuntu@$k8s_master <<EOF exec ssh-agent bash -ssh-add $key +ssh-add $k8s_key $1 EOF + end=$((`date +%s`/60)) + runtime=$((end-start)) + log "step \"$1\" duration = $runtime minutes" } -source ~/models/tools/maas/deploy.sh $1 "$2" $9 +extras=$9 + +cat <<EOF >~/k8s_env.sh +k8s_key=$1 +k8s_nodes="$2" +k8s_master=$3 +k8s_workers="$4" +k8s_priv_net=$5 +k8s_pub_net=$6 +k8s_ceph_mode=$7 +k8s_ceph_dev=$8 +export k8s_key +export k8s_nodes +export k8s_master +export k8s_workers +export k8s_priv_net +export k8s_pub_net +export k8s_ceph_mode +export k8s_ceph_dev +EOF +source ~/k8s_env.sh +env | grep k8s_ + +source ~/models/tools/maas/deploy.sh $k8s_key "$k8s_nodes" $extras eval `ssh-agent` -ssh-add $key -scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $key ubuntu@$master:/home/ubuntu/$key +ssh-add $k8s_key +scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $k8s_key \ + ubuntu@$k8s_master:/home/ubuntu/$k8s_key +scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ~/k8s_env.sh \ + ubuntu@$k8s_master:/home/ubuntu/. echo; echo "$0 $(date): Setting up kubernetes master..." -scp -r -o StrictHostKeyChecking=no ~/models/tools/kubernetes/* \ - ubuntu@$master:/home/ubuntu/. +scp -r -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \ + ~/models/tools/kubernetes/* ubuntu@$k8s_master:/home/ubuntu/. run_master "bash k8s-cluster.sh master" echo; echo "$0 $(date): Setting up kubernetes workers..." -run_master "bash k8s-cluster.sh workers \"$workers\"" +run_master "bash k8s-cluster.sh workers \"$k8s_workers\"" echo; echo "$0 $(date): Setting up helm..." run_master "bash k8s-cluster.sh helm" @@ -79,49 +99,49 @@ run_master "bash k8s-cluster.sh demo start nginx" run_master "bash k8s-cluster.sh demo stop nginx" echo; echo "$0 $(date): Setting up ceph-helm" -run_master "bash k8s-cluster.sh ceph \"$workers\" $priv_net $pub_net $ceph_mode $ceph_dev" +run_master "bash k8s-cluster.sh ceph \"$k8s_workers\" $k8s_priv_net $k8s_pub_net $k8s_ceph_mode $k8s_ceph_dev" echo; echo "$0 $(date): Verifying kubernetes+helm+ceph install..." run_master "bash k8s-cluster.sh demo start dokuwiki" echo; echo "Setting up Prometheus..." scp -r -o StrictHostKeyChecking=no ~/models/tools/prometheus/* \ - ubuntu@$master:/home/ubuntu/. -run_master "bash prometheus-tools.sh all \"$workers\"" + ubuntu@$k8s_master:/home/ubuntu/. +run_master "bash prometheus-tools.sh all \"$k8s_workers\"" echo; echo "$0 $(date): Setting up cloudify..." scp -r -o StrictHostKeyChecking=no ~/models/tools/cloudify \ - ubuntu@$master:/home/ubuntu/. + ubuntu@$k8s_master:/home/ubuntu/. run_master "bash cloudify/k8s-cloudify.sh prereqs" run_master "bash cloudify/k8s-cloudify.sh setup" echo; echo "$0 $(date): Verifying kubernetes+helm+ceph+cloudify install..." -bash ~/models/tools/cloudify/k8s-cloudify.sh demo start $master +bash ~/models/tools/cloudify/k8s-cloudify.sh demo start -echo; echo "$0 $(date): Setting up VES master node" +echo; echo "$0 $(date): Setting up VES" +# not re-cloned if existing - allows patch testing locally if [[ ! -d ~/ves ]]; then git clone https://gerrit.opnfv.org/gerrit/ves ~/ves fi -ves_grafana_host=$master:3000 -ves_grafana_auth=admin:admin +ves_influxdb_host=$k8s_master:8086 +export ves_influxdb_host +ves_grafana_host=$k8s_master:3000 export ves_grafana_host +ves_grafana_auth=admin:admin export ves_grafana_auth -bash ~/ves/tools/demo_deploy.sh master $master $key - -echo; echo "$0 $(date): Setting up collectd for VES events from worker nodes" -for worker in $workers; do -bash ~/ves/tools/demo_deploy.sh worker $worker $key -done +ves_kafka_hostname=$(ssh -x -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ubuntu@$k8s_master hostname) +export ves_kafka_hostname +bash ~/ves/tools/demo_deploy.sh $k8s_key $k8s_master "$k8s_workers" cloudify echo; echo "$0 $(date): All done!" -export NODE_PORT=$(ssh -x -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ubuntu@$master kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services dw-dokuwiki) -export NODE_IP=$(ssh -x -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ubuntu@$master kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}") +export NODE_PORT=$(ssh -x -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ubuntu@$k8s_master kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services dw-dokuwiki) +export NODE_IP=$(ssh -x -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ubuntu@$k8s_master kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}") echo "Helm chart demo app dokuwiki is available at http://$NODE_IP:$NODE_PORT/" # TODO update Cloudify demo app to have public exposed service address -port=$( bash ~/models/tools/cloudify/k8s-cloudify.sh port nginx $master) -echo "Cloudify-deployed demo app nginx is available at http://$master:$port" -echo "Prometheus UI is available at http://$master:9090" +port=$( bash ~/models/tools/cloudify/k8s-cloudify.sh port nginx $k8s_master) +echo "Cloudify-deployed demo app nginx is available at http://$k8s_master:$port" +echo "Prometheus UI is available at http://$k8s_master:9090" echo "Grafana dashboards are available at http://$ves_grafana_host (login as $ves_grafana_auth)" echo "Grafana API is available at http://$ves_grafana_auth@$ves_influx_host/api/v1/query?query=<string>" -echo "Kubernetes API is available at https://$master:6443/api/v1/" -echo "Cloudify API access example: curl -u admin:admin --header 'Tenant: default_tenant' http://$master/api/v3.1/status" +echo "Kubernetes API is available at https://$k8s_master:6443/api/v1/" +echo "Cloudify API access example: curl -u admin:admin --header 'Tenant: default_tenant' http://$k8s_master/api/v3.1/status" |