summaryrefslogtreecommitdiffstats
path: root/tools/kubernetes/demo_deploy.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/kubernetes/demo_deploy.sh')
-rw-r--r--tools/kubernetes/demo_deploy.sh100
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"