Init BM MCC+MOSK commit

Just put templates to the repo

MOSSUST-114

Change-Id: I2239dd7067d823d3ab15d1d46dc57fc2c7b9444b
diff --git a/bm_mcc_mosk/utils/wipe_cluster.sh b/bm_mcc_mosk/utils/wipe_cluster.sh
new file mode 100644
index 0000000..d6b2d46
--- /dev/null
+++ b/bm_mcc_mosk/utils/wipe_cluster.sh
@@ -0,0 +1,117 @@
+#!/bin/bash
+
+while [ "$#" -gt 0 ]; do
+  case "$1" in
+    -n|--namespace) NAMESPACE="$2"; shift 2;;
+    -n=*|--namespace=*) NAMESPACE="${1#*=}"; shift 1;;
+
+    -c|--child-name) CHILD_NAME="$2"; shift 2;;
+    -c=*|--child-name=*) CHILD_NAME="${1#*=}"; shift 1;;
+
+    -f|--force) FORCE="true"; shift 1;;
+
+    --*|-*|*) echo "unknown option: $1"; help; exit 1;;
+  esac
+done
+
+
+function wait_threads() {
+  while [[ $(jobs -r -p | wc -l) -gt 0 ]]; do
+    sleep 0.1
+  done
+}
+
+function wait_threads_limit() {
+  local LIMIT=$1
+  while [[ $(jobs -r -p | wc -l) -ge $LIMIT ]]; do
+    sleep 0.1
+  done
+}
+
+#function k_patch() {
+#  local TYPE=$1
+#  local ITEM=$2
+#  local PATCH=$3
+#
+#  echo $TYPE
+#  echo $ITEM
+#  echo $PATCH
+#  echo kubectl -n ${NAMESPACE} patch $TYPE $ITEM --type merge -p $PATCH 2>/dev/null
+#
+#  kubectl -n ${NAMESPACE} patch $TYPE $ITEM --type merge -p $PATCH 2>/dev/null || true
+#}
+
+#function k_delete() {
+#  local TYPE=$1
+#  local ITEM=$2
+#
+#  kubectl -n ${NAMESPACE} delete $TYPE $ITEM || true
+#}
+
+
+echo "= Cleanup env ${NAMESPACE}"
+
+BMH=$(kubectl -n ${NAMESPACE} get bmh -o json | jq '.items[].metadata.name' -r)
+for bmh in $BMH; do
+  if [[ $FORCE ]]; then
+    echo "= Path baremetalhost: $bmh"
+    kubectl -n ${NAMESPACE} patch bmh $bmh '{"spec": {"automatedCleaningMode": "disabled"}}' 2>/dev/null || true
+  fi
+done
+
+MACHINE=$(kubectl -n ${NAMESPACE} get machine -o json | jq '.items[].metadata.name' -r)
+for machine in $MACHINE; do
+  echo "= Delete machines: $machine"
+  if [[ $FORCE ]]; then
+    kubectl -n ${NAMESPACE} patch machine $machine --type merge -p '{"metadata": {"annotations": {"kaas.mirantis.com/validate": "false"}}}' 2>/dev/null || true
+    kubectl -n ${NAMESPACE} patch machine $machine --type merge -p '{"metadata": {"finalizers": null}}' 2>/dev/null || true
+    sleep 1
+  fi
+  kubectl -n ${NAMESPACE} delete machine $machine &
+  sleep 3 && kubectl -n ${NAMESPACE} patch machine $machine --type merge -p '{"metadata": {"finalizers": null}}' 2>/dev/null || true
+  wait_threads
+done
+
+for bmh in $BMH; do
+  echo "= Delete baremetalhost: $bmh"
+  if [[ $FORCE ]]; then
+    kubectl -n ${NAMESPACE} patch bmh $bmh --type merge -p '{"metadata": {"annotations": {"kaas.mirantis.com/validate": "false"}}}' 2>/dev/null || true
+    kubectl -n ${NAMESPACE} patch bmh $bmh --type merge -p '{"spec": {"consumerRef": null}}' 2>/dev/null || true
+    kubectl -n ${NAMESPACE} patch bmh $bmh --type merge -p '{"metadata": {"finalizers": null}}' 2>/dev/null || true
+  fi
+  kubectl -n ${NAMESPACE} delete bmh $bmh &
+  sleep 1 && kubectl -n ${NAMESPACE} patch bmh $bmh --type merge -p '{"metadata": {"finalizers": null}}' 2>/dev/null || true
+  wait_threads
+done
+
+SECRET=$(kubectl -n ${NAMESPACE} get secret -o json | jq '.items[].metadata.name' -r)
+for secret in $SECRET; do
+  echo "= Delete secret: $secret"
+  if [[ $FORCE ]]; then
+    kubectl -n ${NAMESPACE} patch secret $secret --type merge -p '{"metadata": {"annotations": {"kaas.mirantis.com/validate": "false"}}}' 2>/dev/null || true
+    kubectl -n ${NAMESPACE} patch secret $secret --type merge -p '{"metadata": {"finalizers": null}}' 2>/dev/null || true
+  fi
+  kubectl -n ${NAMESPACE} delete secret $secret &
+  sleep 1 && kubectl -n ${NAMESPACE} patch secret $secret --type merge -p '{"metadata": {"finalizers": null}}' 2>/dev/null || true
+  wait_threads
+done
+
+CLUSTER=$(kubectl -n ${NAMESPACE} get cluster -o json | jq '.items[].metadata.name' -r)
+for cluster in $CLUSTER; do
+  echo "= Delete cluster: $cl"
+  if [[ $FORCE ]]; then
+    kubectl -n ${NAMESPACE} patch cluster $cluster --type merge -p '{"metadata": {"annotations": {"kaas.mirantis.com/validate": "false"}}}' 2>/dev/null || true
+    kubectl -n ${NAMESPACE} patch cluster $cluster --type merge -p '{"metadata": {"finalizers": null}}' 2>/dev/null || true
+  fi
+  kubectl -n ${NAMESPACE} delete cluster $cluster || true
+done
+
+wait_threads
+
+echo "= Delete namespace: ${NAMESPACE}"
+kubectl delete ns ${NAMESPACE} || true
+kubectl -n kaas scale deployment/ironic --replicas=0
+sleep 10
+kubectl -n kaas scale deployment/ironic --replicas=1
+(kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get --show-kind --ignore-not-found -n "${NAMESPACE}" ) || true
+echo "Done."