Run test env towards selected kube cluster
[nonrtric.git] / test / common / clean_kube_ns.sh
1 #!/bin/bash
2
3 #  ============LICENSE_START===============================================
4 #  Copyright (C) 2021 Nordix Foundation. All rights reserved.
5 #  ========================================================================
6 #  Licensed under the Apache License, Version 2.0 (the "License");
7 #  you may not use this file except in compliance with the License.
8 #  You may obtain a copy of the License at
9 #
10 #       http://www.apache.org/licenses/LICENSE-2.0
11 #
12 #  Unless required by applicable law or agreed to in writing, software
13 #  distributed under the License is distributed on an "AS IS" BASIS,
14 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 #  See the License for the specific language governing permissions and
16 #  limitations under the License.
17 #  ============LICENSE_END=================================================
18
19 # Script to clean all namespaces from kubernetes having the label 'autotest', i.e started by autotest
20
21 BOLD="\033[1m"
22 EBOLD="\033[0m"
23 RED="\033[31m\033[1m"
24 ERED="\033[0m"
25 GREEN="\033[32m\033[1m"
26 EGREEN="\033[0m"
27 YELLOW="\033[33m\033[1m"
28 EYELLOW="\033[0m"
29 SAMELINE="\033[0K\r"
30
31 KUBECONF=""
32
33 echo "Will remove all kube namespaces marked with label 'autotest'"
34
35 print_usage() {
36     echo "Usage: clean_kube_ns.sh [--kubeconfig <kube-config-file>]"
37 }
38
39 if [ $# -eq 1 ]; then
40     print_usage
41     exit
42 elif [ $# -eq 2 ]; then
43     if [ $1 == "--kubeconfig" ]; then
44         if [ ! -f $2 ]; then
45             echo "File $2 for --kubeconfig is not found"
46             print_usage
47             exit
48         fi
49         KUBECONF="--kubeconfig $2"
50     else
51         print_usage
52         exit
53     fi
54 else
55     print_usage
56     exit
57 fi
58
59 indent1() { sed 's/^/ /'; }
60
61 nss=$(kubectl $KUBECONF get ns -o 'jsonpath={.items[?(@.metadata.labels.autotest)].metadata.name}')
62 if [ ! -z "$nss" ]; then
63         for ns in $nss; do
64                 echo "Deleting namespace: "$ns
65                 kubectl $KUBECONF delete ns $ns | indent1
66         done
67 fi
68 echo "Done"