5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
18 WAIT_TIME
=340 # LCM healthcheck needs 2x(30+140) senconds
19 SERVICES_WITH_HEALTH
="nbi ro zookeeper lcm mon light-ui pol"
20 NUM_SERVICES_WITH_HEALTH
=$
(echo $SERVICES_WITH_HEALTH |
wc -w)
22 OSM_DEPLOYMENT
="light-ui nbi lcm ro mon pol keystone"
23 OSM_STATEFULSET
="zookeeper kafka mongo mysql prometheus"
24 NUM_K8S_PODS
=$
(echo $OSM_DEPLOYMENT $OSM_STATEFULSET |
wc -w)
26 while getopts "w:s:n:c:k" o
; do
35 NUM_SERVICES_WITH_HEALTH
=${OPTARG}
38 SERVICES_WITH_HEALTH
="${OPTARG}"
49 while [ $time -le "$WAIT_TIME" ]; do
50 if [ -n "$KUBERNETES" ]; then
51 if [ "$(kubectl get pods -n "${STACK_NAME}" | grep -i running | wc -l)" -ge "$NUM_K8S_PODS" ]; then
52 #all pods are running now.
57 if [ "$(docker ps | grep " ${STACK_NAME}_
" | grep -i healthy | wc -l)" -ge "$NUM_SERVICES_WITH_HEALTH" ]; then
58 # all dockers are healthy now.
59 # final sleep is needed until more health checks are added to validate system is ready to handle requests
69 if [ -n "$KUBERNETES" ]; then
70 echo "Not all pods are running"
71 kubectl get pods
-n "${STACK_NAME}"
72 for POD
in $OSM_DEPLOYMENT $OSM_STATEFULSET; do
73 kubectl get pods
-n "${STACK_NAME}" |
grep -i running |
grep -q ^
"${POD}-" && continue
75 echo BEGIN LOGS of pods
${POD} not running
76 LOG_POD
=$
(kubectl get pods
-n "${STACK_NAME}" | grep -e ^"${POD}-" | awk '{print $1}' )
77 [ -z "$LOG_POD" ] && echo "${POD} Failed to deploy
" || kubectl logs ${LOG_POD} -n $STACK_NAME 2>&1 | tail -n 100
78 echo END LOGS of services $POD not running
81 echo "Not all Docker services are healthy
"
82 docker ps | grep " ${STACK_NAME}_
"
83 for S_WITH_HEALTH in $SERVICES_WITH_HEALTH ; do
84 docker ps | grep " ${STACK_NAME}_
" | grep -i healthy | grep -q "_
${S_WITH_HEALTH}.
" && continue
86 echo BEGIN LOGS of container ${S_WITH_HEALTH} not healthy
87 docker service logs ${STACK_NAME}_${S_WITH_HEALTH} 2>&1 | tail -n 100
88 echo END LOGS of container ${S_WITH_HEALTH} not healthy