@@ -150,6 +150,7 @@ wait_pod() {
150150 echo -n .
151151 let retry+=1
152152 if [ $retry -ge 360 ]; then
153+ collect_k8s_logs
153154 kubectl_bin describe pod/$pod
154155 kubectl_bin logs $pod
155156 kubectl_bin logs ${OPERATOR_NS: +-n $OPERATOR_NS } $( get_operator_pod) \
@@ -158,6 +159,7 @@ wait_pod() {
158159 | grep -v ' Getting tasks for pod' \
159160 | grep -v ' Getting pods from source' \
160161 | tail -100
162+
161163 echo max retry count $retry reached. something went wrong with operator or kubernetes cluster
162164 exit 1
163165 fi
@@ -177,12 +179,14 @@ wait_cron() {
177179 echo -n .
178180 let retry+=1
179181 if [ $retry -ge 360 ]; then
182+ collect_k8s_logs
180183 kubectl_bin logs ${OPERATOR_NS: +-n $OPERATOR_NS } $( get_operator_pod) \
181184 | grep -v ' level=info' \
182185 | grep -v ' level=debug' \
183186 | grep -v ' Getting tasks for pod' \
184187 | grep -v ' Getting pods from source' \
185188 | tail -100
189+
186190 echo max retry count $retry reached. something went wrong with operator or kubernetes cluster
187191 exit 1
188192 fi
@@ -201,8 +205,10 @@ wait_backup_agent() {
201205 echo -n .
202206 let retry+=1
203207 if [ $retry -ge 360 ]; then
208+ collect_k8s_logs
204209 kubectl_bin logs $agent_pod -c backup-agent \
205210 | tail -100
211+
206212 echo max retry count $retry reached. something went wrong with operator or kubernetes cluster
207213 exit 1
208214 fi
@@ -224,12 +230,14 @@ wait_backup() {
224230 let retry+=1
225231 current_status=$( kubectl_bin get psmdb-backup $backup_name -o jsonpath=' {.status.state}' )
226232 if [[ $retry -ge 360 || ${current_status} == ' error' ]]; then
233+ collect_k8s_logs
227234 kubectl_bin logs ${OPERATOR_NS: +-n $OPERATOR_NS } $( get_operator_pod) \
228235 | grep -v ' level=info' \
229236 | grep -v ' level=debug' \
230237 | grep -v ' Getting tasks for pod' \
231238 | grep -v ' Getting pods from source' \
232239 | tail -100
240+
233241 echo " Backup object psmdb-backup/${backup_name} is in ${current_state} state."
234242 echo something went wrong with operator or kubernetes cluster
235243 exit 1
@@ -283,12 +291,14 @@ wait_deployment() {
283291 echo -n .
284292 let retry+=1
285293 if [ $retry -ge 360 ]; then
294+ collect_k8s_logs
286295 kubectl_bin logs ${OPERATOR_NS: +-n $OPERATOR_NS } $( get_operator_pod) \
287296 | grep -v ' level=info' \
288297 | grep -v ' level=debug' \
289298 | grep -v ' Getting tasks for pod' \
290299 | grep -v ' Getting pods from source' \
291300 | tail -100
301+
292302 echo max retry count $retry reached. something went wrong with operator or kubernetes cluster
293303 exit 1
294304 fi
@@ -329,6 +339,7 @@ wait_restore() {
329339 let retry+=1
330340 current_state=$( kubectl_bin get psmdb-restore restore-$backup_name -o jsonpath=' {.status.state}' )
331341 if [[ $retry -ge $wait_time || ${current_state} == ' error' ]]; then
342+ collect_k8s_logs
332343 kubectl_bin logs ${OPERATOR_NS: +-n $OPERATOR_NS } $( get_operator_pod) \
333344 | grep -v ' level=info' \
334345 | grep -v ' level=debug' \
@@ -542,6 +553,7 @@ retry() {
542553
543554 until " $@ " ; do
544555 if [[ $n -ge $max ]]; then
556+ collect_k8s_logs
545557 echo " The command '$@ ' has failed after $n attempts."
546558 exit 1
547559 fi
@@ -581,6 +593,7 @@ wait_for_running() {
581593 timeout=$(( timeout + 1 ))
582594 echo -n ' .'
583595 if [[ ${timeout} -gt 1500 ]]; then
596+ collect_k8s_logs
584597 echo
585598 echo " Waiting timeout has been reached. Exiting..."
586599 exit 1
@@ -603,12 +616,14 @@ wait_for_delete() {
603616 echo -n .
604617 let retry+=1
605618 if [ $retry -ge $wait_time ]; then
619+ collect_k8s_logs
606620 kubectl_bin logs ${OPERATOR_NS: +-n $OPERATOR_NS } $( get_operator_pod) \
607621 | grep -v ' level=info' \
608622 | grep -v ' level=debug' \
609623 | grep -v ' Getting tasks for pod' \
610624 | grep -v ' Getting pods from source' \
611625 | tail -100
626+
612627 echo max retry count $retry reached. something went wrong with operator or kubernetes cluster
613628 exit 1
614629 fi
@@ -624,6 +639,8 @@ compare_generation() {
624639
625640 current_generation=" $( kubectl_bin get ${resource_type} " ${resource_name} " -o jsonpath=' {.metadata.generation}' ) "
626641 if [[ ${generation} != " ${current_generation} " ]]; then
642+ collect_k8s_logs
643+
627644 echo " Generation for ${resource_type} /${resource_name} is: ${current_generation} , but should be: ${generation} "
628645 exit 1
629646 fi
@@ -984,6 +1001,7 @@ get_service_endpoint() {
9841001 return
9851002 fi
9861003
1004+ collect_k8s_logs
9871005 exit 1
9881006}
9891007
@@ -1160,6 +1178,7 @@ wait_cluster_consistency() {
11601178 until [[ " $( kubectl_bin get psmdb " ${cluster_name} " -o jsonpath=' {.status.state}' ) " == " ready" ]]; do
11611179 let retry+=1
11621180 if [ $retry -ge $wait_time ]; then
1181+ collect_k8s_logs
11631182 echo max retry count $retry reached. something went wrong with operator or kubernetes cluster
11641183 exit 1
11651184 fi
@@ -1186,6 +1205,7 @@ check_backup_deletion() {
11861205 retry=0
11871206 until [[ $( curl -sw ' %{http_code}' -o /dev/null $path ) -eq 403 ]] || [[ $( curl -sw ' %{http_code}' -o /dev/null $path ) -eq 404 ]]; do
11881207 if [ $retry -ge 10 ]; then
1208+ collect_k8s_logs
11891209 echo max retry count $retry reached. something went wrong with operator or kubernetes cluster
11901210 echo " Backup was not removed from bucket -- $storage_name "
11911211 exit 1
@@ -1247,6 +1267,7 @@ function get_mongod_ver_from_image() {
12471267 version_info=$( run_simple_cli_inside_image ${image} ' mongod --version' | $sed -r ' s/^.*db version v(([0-9]+\.){2}[0-9]+-[0-9]+).*$/\1/g' )
12481268
12491269 if [[ ! ${version_info} =~ ^([0-9]+\. ){2}[0-9]+-[0-9]+$ ]]; then
1270+ collect_k8s_logs
12501271 printf " No mongod version obtained from %s. Exiting" ${image}
12511272 exit 1
12521273 fi
@@ -1259,6 +1280,7 @@ function get_pbm_version() {
12591280 local version_info=$( run_simple_cli_inside_image ${image} ' pbm-agent version' | $sed -r ' s/^Version:\ (([0-9]+\.){2}[0-9]+)\ .*/\1/g' )
12601281
12611282 if [[ ! ${version_info} =~ ^([0-9]+\. ){2}[0-9]+$ ]]; then
1283+ collect_k8s_logs
12621284 printf " No pbm version obtained from %s. Exiting" ${image}
12631285 exit 1
12641286 fi
@@ -1299,6 +1321,31 @@ function generate_vs_json() {
12991321 echo ${version_service_source} | jq ' .' > ${target_path}
13001322}
13011323
1324+ collect_k8s_logs () {
1325+ if [[ ${ENABLE_LOGGING} == " true" ]]; then
1326+ rm -f ${logs_dir} /logs_${test_name} _* || :
1327+
1328+ local check_namespaces=" $namespace ${OPERATOR_NS: + $OPERATOR_NS } "
1329+
1330+ for ns in $check_namespaces ; do
1331+ local pods=$( kubectl_bin get pods -o name | awk -F " /" ' {print $2}' )
1332+ for p in $pods ; do
1333+ local containers=$( kubectl_bin -n " $ns " get pod $p -o jsonpath=' {.spec.containers[*].name}' )
1334+ for c in $containers ; do
1335+ kubectl_bin -n " $ns " logs $p -c $c > ${logs_dir} /logs_${test_name} _$p_$c .txt
1336+ echo logs saved in: ${logs_dir} /logs_${test_name} _$p_$c .txt
1337+ done
1338+ done
1339+ done
1340+ for object in " psmdb psmdb-backup psmdb-restore pods deployments services events sts" ; do
1341+ echo " ##### START: $object #####" >> ${logs_dir} /logs_${test_name} _simple.txt
1342+ kubectl_bin get $object --all-namespaces >> ${logs_dir} /logs_${test_name} _simple.txt
1343+ echo " ##### END: $object ####\n" >> ${logs_dir} /logs_${test_name} _simple.txt
1344+ kubectl_bin get $object --all-namespaces > ${logs_dir} /logs_${test_name} _$object .yaml
1345+ done
1346+ fi
1347+ }
1348+
13021349check_passwords_leak () {
13031350 local secrets
13041351 local passwords
0 commit comments