From 37af9210bafed2a1f1bab14c73bb2aa6f7949412 Mon Sep 17 00:00:00 2001 From: Vishnu Kannan Date: Fri, 7 Nov 2014 01:23:14 +0000 Subject: [PATCH] Improve the monitoring setup script and fix bugs in the monitoring config. --- cluster/gce/config-default.sh | 2 +- cluster/gce/config-test.sh | 2 +- cluster/gce/util.sh | 43 +++++++++++++------ cluster/rackspace/util.sh | 4 ++ cluster/vagrant/util.sh | 4 ++ cluster/vsphere/util.sh | 4 ++ .../monitoring/influx-grafana-service.json | 4 +- 7 files changed, 46 insertions(+), 17 deletions(-) diff --git a/cluster/gce/config-default.sh b/cluster/gce/config-default.sh index 8c6e66f055c..2b98bc6fd8d 100755 --- a/cluster/gce/config-default.sh +++ b/cluster/gce/config-default.sh @@ -36,4 +36,4 @@ MINION_SCOPES="compute-rw" POLL_SLEEP_INTERVAL=3 PORTAL_NET="10.0.0.0/16" # When set to true, heapster will be setup as part of the cluster bring up. -MONITORING=true \ No newline at end of file +MONITORING=true diff --git a/cluster/gce/config-test.sh b/cluster/gce/config-test.sh index 92e6e67cf35..8f3a7f4d340 100755 --- a/cluster/gce/config-test.sh +++ b/cluster/gce/config-test.sh @@ -35,4 +35,4 @@ MINION_SCOPES="" # Increase the sleep interval value if concerned about API rate limits. 3, in seconds, is the default. POLL_SLEEP_INTERVAL=3 PORTAL_NET="10.0.0.0/16" -MONITORING=false \ No newline at end of file +MONITORING=false diff --git a/cluster/gce/util.sh b/cluster/gce/util.sh index 638b4b49d17..805fd108fc2 100755 --- a/cluster/gce/util.sh +++ b/cluster/gce/util.sh @@ -429,9 +429,6 @@ EOF function kube-down { # Detect the project into $PROJECT detect-project - - # Monitoring might have been setup. It doesn't hurt to attempt shutdown even it wasn't setup. - teardown-monitoring echo "Bringing down cluster" gcutil deletefirewall \ @@ -577,21 +574,41 @@ function restart-kube-proxy { function setup-monitoring { if [ $MONITORING ]; then teardown-monitoring - kubectl.sh create -f "${KUBE_ROOT}/examples/monitoring/influx-grafana-pod.json" && - kubectl.sh create -f "${KUBE_ROOT}/examples/monitoring/influx-grafana-service.json" && - kubectl.sh create -f "${KUBE_ROOT}/examples/monitoring/heapster-pod.json" + if ! gcutil getfirewall monitoring-heapster &> /dev/null; then + gcutil addfirewall monitoring-heapster \ + --project "${PROJECT}" \ + --norespect_terminal_width \ + --sleep_between_polls "${POLL_SLEEP_INTERVAL}" \ + --target_tags="${MINION_TAG}" \ + --allowed "tcp:80,tcp:8083,tcp:8086,tcp:9200"; + if [ $? -ne 0 ]; then + echo "Failed to Setup Firewall for Monitoring" && false + fi + fi + + kubectl.sh create -f "${KUBE_ROOT}/examples/monitoring/influx-grafana-pod.json" > /dev/null && + kubectl.sh create -f "${KUBE_ROOT}/examples/monitoring/influx-grafana-service.json" > /dev/null && + kubectl.sh create -f "${KUBE_ROOT}/examples/monitoring/heapster-pod.json" > /dev/null if [ $? -ne 0 ]; then + echo "Failed to Setup Monitoring" teardown-monitoring else - dashboardIP="http://`kubectl.sh get -o json pod influx-grafana | grep hostIP | awk '{print $2}' | sed 's/[,|\"]//g'`" - echo "Grafana dashboard is available at $dashboardIP" - echo "username is 'admin' and password is 'admin'" + dashboardIP="http://admin:admin@`kubectl.sh get -o json pod influx-grafana | grep hostIP | awk '{print $2}' | sed 's/[,|\"]//g'`" + echo "Grafana dashboard will be available at $dashboardIP. Wait for the monitoring dashboard to be online." fi fi } function teardown-monitoring { - kubectl.sh delete pods heapster || true - kubectl.sh delete pods influx-grafana || true - kubectl.sh delete services influx-master || true -} \ No newline at end of file + if [ $MONITORING ]; then + kubectl.sh delete pods heapster &> /dev/null || true + kubectl.sh delete pods influx-grafana &> /dev/null || true + kubectl.sh delete services influx-master &> /dev/null || true + gcutil deletefirewall \ + --project "${PROJECT}" \ + --norespect_terminal_width \ + --sleep_between_polls "${POLL_SLEEP_INTERVAL}" \ + --force \ + monitoring-heapster || true > /dev/null + fi +} diff --git a/cluster/rackspace/util.sh b/cluster/rackspace/util.sh index 86f898f2738..4e93aa1b63e 100644 --- a/cluster/rackspace/util.sh +++ b/cluster/rackspace/util.sh @@ -322,3 +322,7 @@ kube-up() { echo " subject to \"Man in the middle\" type attacks." echo } + +function setup-monitoring { + echo "TODO" +} diff --git a/cluster/vagrant/util.sh b/cluster/vagrant/util.sh index 0000d0e90e7..c3c7774f0b9 100644 --- a/cluster/vagrant/util.sh +++ b/cluster/vagrant/util.sh @@ -172,3 +172,7 @@ function ssh-to-node { function restart-kube-proxy { ssh-to-node "$1" "sudo systemctl restart kube-proxy" } + +function setup-monitoring { + echo "TODO" +} diff --git a/cluster/vsphere/util.sh b/cluster/vsphere/util.sh index 7a85af1d4aa..c149bff3e2e 100755 --- a/cluster/vsphere/util.sh +++ b/cluster/vsphere/util.sh @@ -471,3 +471,7 @@ function test-setup { function test-teardown { echo "TODO" } + +function setup-monitoring { + echo "TODO" +} diff --git a/examples/monitoring/influx-grafana-service.json b/examples/monitoring/influx-grafana-service.json index 18e7bca4c8a..d83724a2c9f 100644 --- a/examples/monitoring/influx-grafana-service.json +++ b/examples/monitoring/influx-grafana-service.json @@ -5,6 +5,6 @@ "port": 8085, "containerPort": 8086, "provider": "kubernetes-default", - "component": "influxdb" + "component": "influxdb", "selector": { "name": "influxdb" } -} \ No newline at end of file +}