aboutsummaryrefslogtreecommitdiffstats
path: root/infra-healthcheck/scripts/check_onap_k8s.sh
blob: 2dffd7e9354698cb90c692f1355c8d97c2b7776b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/bin/bash

echo "------------------------------------------------------------------------"
echo "--------------------  ONAP Check kubernetes ----------------------------"
echo "------------------------------------------------------------------------"

code=0

# get the pod list
echo "List of ONAP pods"
echo "*****************"
kubectl get pods -n onap

# show deployments
echo "Show ONAP kubernetes deployments"
echo "********************************"
kubectl get deployments -n onap
echo "------------------------------------------------------------------------"

# show SVC
echo "Show ONAP kubernetes SVC"
echo "************************"
kubectl get svc -n onap
echo "------------------------------------------------------------------------"

# show ONAP events
echo "Show ONAP kubernetes events"
echo "***************************"
kubectl get events -n onap
echo "------------------------------------------------------------------------"

# show ONAP config maps
echo "Show ONAP kubernetes config maps"
echo "***************************"
kubectl get cm -n onap
echo "------------------------------------------------------------------------"

# show ONAP jobs
echo "Show ONAP kubernetes jobs"
echo "***************************"
kubectl get jobs -n onap
echo "------------------------------------------------------------------------"

# show ONAP statefulsets
echo "Show ONAP kubernetes statefulset"
echo "***************************"
kubectl get sts -n onap
echo "------------------------------------------------------------------------"

# if all pods in RUNNING state exit 0, else exit 1
nb_pods=$((`kubectl get pods -n onap | grep Running | grep -v functest | wc -l` -1))
list_failed_pods=$(kubectl get pods -n onap |grep -v Running |grep -v functest |grep -v NAME | grep -v Completed | awk '{print $1}')
list_filtered_failed_pods=()

for i in $list_failed_pods;do
    status=$(kubectl get pods -n onap $i | grep -v NAME | awk '{print $3'})
	  # in case of Error or Init:Error
    # we check that another instance is not already Completed or Running
    if [ $status = "Error" ]  || [ $status = "Init:Error" ];then
        echo "$i in Status Error or Init Error found for the pods, is is really true...."
        # By default pod naming is similar, keep only the root to check
        root_name=${i::-6}
        kubectl get pods -n onap | grep $root_name | grep Completed
        if [ $? ];then
            echo "Instance Completed found."
        else
            echo "No Completed instance found."
            list_filtered_failed_pods+=$i,
        fi
    else
        # Other status are not running/not completed pods
        list_filtered_failed_pods+=$i,
    fi
done

nice_list=${list_filtered_failed_pods::-1}

IFS=,
nb_pods_not_running=$(echo "$list_filtered_failed_pods" | tr -cd , | wc -c)

if [ $nb_pods_not_running -ne 0 ]; then
echo "$nb_pods_not_running pods (on $nb_pods) are not in Running state"
echo "---------------------------------------------------------------------"
    kubectl get pods -n onap | grep -v Running | grep -v functest | grep -v Completed
    echo "--------------------------------------------------------------------"
    echo "Describe non running pods"
    echo "*************************"
    for i in $nice_list;do
        echo "****************************************************************"
        kubectl describe pod $i -n onap
        kubectl logs --all-containers=true -n onap $i
    done
    code=1
else
    echo "all pods ($nb_pods) are running well"
fi

echo "------------------------------------------------"
echo "------- ONAP kubernetes tests ------------------"
echo "------------------------------------------------"
echo ">>> Nb Pods: $nb_pods"
echo ">>> Nb Failed Pods: $nb_pods_not_running"
echo ">>> List of Failed Pods: [$nice_list]"
echo "------------------------------------------------"
echo "------------------------------------------------"
echo "------------------------------------------------"

exit $code