summaryrefslogtreecommitdiffstats
path: root/tools/kubernetes/demo_deploy.sh
diff options
context:
space:
mode:
authorBryan Sullivan <bryan.sullivan@att.com>2017-10-17 09:55:26 -0700
committerBryan Sullivan <bryan.sullivan@att.com>2017-10-17 09:55:26 -0700
commitb2c252cd8913ef15a00d63a391da1c8a8a17d739 (patch)
treeec09ee2ae95c995ed7a363c1dce7ee40c31a9f99 /tools/kubernetes/demo_deploy.sh
parent7ecbfa707b3b1b1ac65924b097e4ff9b72ad981f (diff)
Merge AT&T WIP on modeled cloud-native stacks into Models
Change-Id: I646825bf7d1a9c1be9c00475028084f920c9d399 Signed-off-by: Bryan Sullivan <bryan.sullivan@att.com>
Diffstat (limited to 'tools/kubernetes/demo_deploy.sh')
-rw-r--r--tools/kubernetes/demo_deploy.sh74
1 files changed, 74 insertions, 0 deletions
diff --git a/tools/kubernetes/demo_deploy.sh b/tools/kubernetes/demo_deploy.sh
new file mode 100644
index 0000000..b3d165b
--- /dev/null
+++ b/tools/kubernetes/demo_deploy.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+# Copyright 2017 AT&T Intellectual Property, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# 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.
+#
+#. What this is: Complete scripted deployment of an experimental kubernetes-based
+#. cloud-native application platform. When complete, kubernetes and the following
+#. will be installed:
+#. - helm and dokuwiki as a demo helm cart based application
+#. - prometheus + grafana for cluster monitoring/stats
+#. - cloudify + kubernetes plugin and a demo hello world (nginx) app installed
+#. will be setup with:
+#. Prometheus dashboard: http://<admin_public_ip>:9090
+#. Grafana dashboard: http://<admin_public_ip>:3000
+#.
+#. Prerequisites:
+#. - Ubuntu server for kubernetes cluster nodes (admin/master and agent nodes)
+#. - MAAS server as cluster admin for kubernetes master/agent nodes
+#. - Password-less ssh key provided for node setup
+#. Usage: on the MAAS server
+#. $ git clone https://gerrit.opnfv.org/gerrit/models ~/models
+#. $ bash ~/models/tools/kubernetes/demo_deploy.sh <key> "<hosts>" <admin ip>
+#. "<agent ips>" <pub-net> <priv-net> [<extras>]
+#. <key>: name of private key for cluster node ssh (in current folder)
+#. <hosts>: space separated list of hostnames managed by MAAS
+#. <admin ip>: IP of cluster admin node
+#. <agent_ips>: space separated list of agent node IPs
+#. <pub-net>: CID formatted public network
+#. <priv-net>: CIDR formatted private network (may be same as pub-net)
+#. <extras>: optional name of script for extra setup functions as needed
+
+key=$1
+nodes="$2"
+admin_ip=$3
+agent_ips="$4"
+extras=$5
+
+source ~/models/tools/maas/deploy.sh $1 "$2" $5
+eval `ssh-agent`
+ssh-add $key
+if [[ "x$extras" != "x" ]]; then source $extras; fi
+scp -o StrictHostKeyChecking=no $key ubuntu@$admin_ip:/home/ubuntu/$key
+echo "Setting up kubernetes..."
+ssh -x ubuntu@$admin_ip <<EOF
+exec ssh-agent bash
+ssh-add $key
+git clone https://gerrit.opnfv.org/gerrit/models
+bash models/tools/kubernetes/k8s-cluster.sh all "$agent_ips" $priv_net $pub_net
+EOF
+# TODO: Figure this out... Have to break the setup into two steps as something
+# causes the ssh session to end before the prometheus setup, if both scripts
+# (k8s-cluster and prometheus-tools) are in the same ssh session
+echo "Setting up prometheus..."
+ssh -x ubuntu@$admin_ip <<EOF
+exec ssh-agent bash
+ssh-add $key
+bash models/tools/prometheus/prometheus-tools.sh all "$agent_ips"
+EOF
+echo "Setting up cloudify..."
+scp models/tools/cloudify/k8s-cloudify.sh ubuntu@$admin_ip:/home/ubuntu/.
+ssh -x ubuntu@$admin_ip bash k8s-cloudify.sh prereqs
+ssh -x ubuntu@$admin_ip bash k8s-cloudify.sh setup
+ssh -x ubuntu@$admin_ip bash k8s-cloudify.sh demo
+echo "All done!"