First version of service exposure
[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>] | [--kubecontext <context name>]"
37 }
38
39 if [ $# -eq 0 ]; then
40 :
41 elif [ $# -eq 1 ]; then
42     print_usage
43     exit
44 elif [ $# -eq 2 ]; then
45     if [ $1 == "--kubeconfig" ]; then
46         if [ ! -f $2 ]; then
47             echo "File $2 for --kubeconfig is not found"
48             print_usage
49             exit
50         fi
51         KUBECONF="--kubeconfig $2"
52     elif [ $1 == "--kubecontext" ]; then
53         if [ -z $2 ]; then
54             echo "No context found for --kubecontext"
55             print_usage
56             exit
57         fi
58         KUBECONF="--context $2"
59     else
60         print_usage
61         exit
62     fi
63 else
64     print_usage
65     exit
66 fi
67
68 indent1() { sed 's/^/ /'; }
69
70 nss=$(kubectl $KUBECONF get ns -o 'jsonpath={.items[?(@.metadata.labels.autotest)].metadata.name}')
71 if [ ! -z "$nss" ]; then
72         for ns in $nss; do
73                 echo "Deleting namespace: "$ns
74                 kubectl $KUBECONF delete ns $ns | indent1
75         done
76 fi
77 echo "Done"