Feature 7898: Helm chart and script for monitoring K8s based OSM system
[osm/devops.git] / installers / k8s / uninstall_osm_k8s_monitoring.sh
diff --git a/installers/k8s/uninstall_osm_k8s_monitoring.sh b/installers/k8s/uninstall_osm_k8s_monitoring.sh
new file mode 100644 (file)
index 0000000..1a3c773
--- /dev/null
@@ -0,0 +1,108 @@
+#!/bin/bash
+
+#   Copyright 2019 Minsait - Indra S.A.
+#
+#   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.
+#   Author: Jose Manuel Palacios (jmpalacios@minsait.com)
+#   Author: Jose Antonio Martinez (jamartinezv@minsait.com)
+
+function usage(){
+    echo -e "usage: $0 [OPTIONS]"
+    echo -e "Uninstall OSM Monitoring"
+    echo -e "  OPTIONS"
+    echo -e "     -n <namespace>:   use specified kubernetes namespace - default: monitoring"
+    echo -e "     --helm        :   uninstall tiller"
+    echo -e "     --debug       :   debug script"
+    echo -e "     -h / --help   :   print this help"
+}
+
+NAMESPACE=monitoring
+HELM=""
+DEBUG=""
+while getopts ":h-:n:" o; do
+    case "${o}" in
+        h)
+            usage && exit 0
+            ;;
+        n)
+            NAMESPACE="${OPTARG}"
+            ;;
+
+        -)
+            [ "${OPTARG}" == "help" ] && usage && exit 0
+            [ "${OPTARG}" == "helm" ] && HELM="y" && continue
+            [ "${OPTARG}" == "debug" ] && DEBUG="y" && continue
+            echo -e "Invalid option: '--$OPTARG'\n" >&2
+            usage && exit 1
+            ;;
+
+        \?)
+            echo -e "Invalid option: '-$OPTARG'\n" >&2
+            usage && exit 1
+            ;;
+        *)
+            usage && exit 1
+            ;;
+    esac
+done
+
+function dump_vars(){
+    echo "NAMESPACE=$NAMESPACE"
+    echo "HELM=$NOTILLER"
+    echo "DEBUG=$DEBUG"
+}
+
+if [ -n "$DEBUG" ] ; then
+        set -x
+fi
+
+
+
+# remove dashboards
+echo "Deleting dashboards...."
+kubectl -n $NAMESPACE delete configmap osm-monitoring-prometheus-summary-grafana > /dev/null 2>&1
+kubectl -n $NAMESPACE delete configmap osm-monitoring-prometheus-kafka-exporter-grafana > /dev/null 2>&1
+kubectl -n $NAMESPACE delete configmap osm-monitoring-prometheus-mysql-exporter-grafana > /dev/null 2>&1
+kubectl -n $NAMESPACE delete configmap osm-monitoring-prometheus-mongodb-exporter-grafana > /dev/null 2>&1
+
+# remove exporters
+echo "Deleting exporters...."
+helm delete --purge osm-kafka-exporter > /dev/null 2>&1
+helm delete --purge osm-mysql-exporter > /dev/null 2>&1
+helm delete --purge osm-mongodb-exporter > /dev/null 2>&1
+
+# remove prometheus-operator
+echo "Deleting prometheus-operator...."
+helm delete --purge osm-monitoring > /dev/null 2>&1
+
+# Delete CRDs
+kubectl delete crd prometheusrules.monitoring.coreos.com > /dev/null 2>&1
+kubectl delete crd servicemonitors.monitoring.coreos.com > /dev/null 2>&1
+kubectl delete crd alertmanagers.monitoring.coreos.com > /dev/null 2>&1
+kubectl delete crd prometheuses.monitoring.coreos.com > /dev/null 2>&1
+kubectl delete crd alertmanagers.monitoring.coreos.com > /dev/null 2>&1
+kubectl delete crd podmonitors.monitoring.coreos.com > /dev/null 2>&1
+
+# Delete monitoring namespace
+echo "Deleting monitoring namespace...."
+kubectl delete namespace $NAMESPACE
+
+if [ -n "$HELM" ] ; then
+    sudo helm reset --force 
+    kubectl delete --namespace kube-system serviceaccount tiller 
+    kubectl delete clusterrolebinding tiller-cluster-rule 
+    sudo rm /usr/local/bin/helm 
+    rm -rf $HOME/.helm
+fi
+
+