@@ -150,6 +150,7 @@ wait_pod() {
150
150
echo -n .
151
151
let retry+=1
152
152
if [ $retry -ge 360 ]; then
153
+ collect_k8s_logs
153
154
kubectl_bin describe pod/$pod
154
155
kubectl_bin logs $pod
155
156
kubectl_bin logs ${OPERATOR_NS: +-n $OPERATOR_NS } $( get_operator_pod) \
@@ -158,6 +159,7 @@ wait_pod() {
158
159
| grep -v ' Getting tasks for pod' \
159
160
| grep -v ' Getting pods from source' \
160
161
| tail -100
162
+
161
163
echo max retry count $retry reached. something went wrong with operator or kubernetes cluster
162
164
exit 1
163
165
fi
@@ -177,12 +179,14 @@ wait_cron() {
177
179
echo -n .
178
180
let retry+=1
179
181
if [ $retry -ge 360 ]; then
182
+ collect_k8s_logs
180
183
kubectl_bin logs ${OPERATOR_NS: +-n $OPERATOR_NS } $( get_operator_pod) \
181
184
| grep -v ' level=info' \
182
185
| grep -v ' level=debug' \
183
186
| grep -v ' Getting tasks for pod' \
184
187
| grep -v ' Getting pods from source' \
185
188
| tail -100
189
+
186
190
echo max retry count $retry reached. something went wrong with operator or kubernetes cluster
187
191
exit 1
188
192
fi
@@ -201,8 +205,10 @@ wait_backup_agent() {
201
205
echo -n .
202
206
let retry+=1
203
207
if [ $retry -ge 360 ]; then
208
+ collect_k8s_logs
204
209
kubectl_bin logs $agent_pod -c backup-agent \
205
210
| tail -100
211
+
206
212
echo max retry count $retry reached. something went wrong with operator or kubernetes cluster
207
213
exit 1
208
214
fi
@@ -224,12 +230,14 @@ wait_backup() {
224
230
let retry+=1
225
231
current_status=$( kubectl_bin get psmdb-backup $backup_name -o jsonpath=' {.status.state}' )
226
232
if [[ $retry -ge 360 || ${current_status} == ' error' ]]; then
233
+ collect_k8s_logs
227
234
kubectl_bin logs ${OPERATOR_NS: +-n $OPERATOR_NS } $( get_operator_pod) \
228
235
| grep -v ' level=info' \
229
236
| grep -v ' level=debug' \
230
237
| grep -v ' Getting tasks for pod' \
231
238
| grep -v ' Getting pods from source' \
232
239
| tail -100
240
+
233
241
echo " Backup object psmdb-backup/${backup_name} is in ${current_state} state."
234
242
echo something went wrong with operator or kubernetes cluster
235
243
exit 1
@@ -283,12 +291,14 @@ wait_deployment() {
283
291
echo -n .
284
292
let retry+=1
285
293
if [ $retry -ge 360 ]; then
294
+ collect_k8s_logs
286
295
kubectl_bin logs ${OPERATOR_NS: +-n $OPERATOR_NS } $( get_operator_pod) \
287
296
| grep -v ' level=info' \
288
297
| grep -v ' level=debug' \
289
298
| grep -v ' Getting tasks for pod' \
290
299
| grep -v ' Getting pods from source' \
291
300
| tail -100
301
+
292
302
echo max retry count $retry reached. something went wrong with operator or kubernetes cluster
293
303
exit 1
294
304
fi
@@ -328,6 +338,7 @@ wait_restore() {
328
338
let retry+=1
329
339
current_state=$( kubectl_bin get psmdb-restore restore-$backup_name -o jsonpath=' {.status.state}' )
330
340
if [[ $retry -ge 720 || ${current_state} == ' error' ]]; then
341
+ collect_k8s_logs
331
342
kubectl_bin logs ${OPERATOR_NS: +-n $OPERATOR_NS } $( get_operator_pod) \
332
343
| grep -v ' level=info' \
333
344
| grep -v ' level=debug' \
@@ -528,6 +539,7 @@ retry() {
528
539
529
540
until " $@ " ; do
530
541
if [[ $n -ge $max ]]; then
542
+ collect_k8s_logs
531
543
echo " The command '$@ ' has failed after $n attempts."
532
544
exit 1
533
545
fi
@@ -567,6 +579,7 @@ wait_for_running() {
567
579
timeout=$(( timeout + 1 ))
568
580
echo -n ' .'
569
581
if [[ ${timeout} -gt 1500 ]]; then
582
+ collect_k8s_logs
570
583
echo
571
584
echo " Waiting timeout has been reached. Exiting..."
572
585
exit 1
@@ -588,12 +601,14 @@ wait_for_delete() {
588
601
echo -n .
589
602
let retry+=1
590
603
if [ $retry -ge 60 ]; then
604
+ collect_k8s_logs
591
605
kubectl_bin logs ${OPERATOR_NS: +-n $OPERATOR_NS } $( get_operator_pod) \
592
606
| grep -v ' level=info' \
593
607
| grep -v ' level=debug' \
594
608
| grep -v ' Getting tasks for pod' \
595
609
| grep -v ' Getting pods from source' \
596
610
| tail -100
611
+
597
612
echo max retry count $retry reached. something went wrong with operator or kubernetes cluster
598
613
exit 1
599
614
fi
@@ -609,6 +624,8 @@ compare_generation() {
609
624
610
625
current_generation=" $( kubectl_bin get ${resource_type} " ${resource_name} " -o jsonpath=' {.metadata.generation}' ) "
611
626
if [[ ${generation} != " ${current_generation} " ]]; then
627
+ collect_k8s_logs
628
+
612
629
echo " Generation for ${resource_type} /${resource_name} is: ${current_generation} , but should be: ${generation} "
613
630
exit 1
614
631
fi
@@ -667,9 +684,9 @@ compare_kubectl() {
667
684
del(.spec.ipFamilyPolicy) |
668
685
(.. | select(. == "extensions/v1beta1")) = "apps/v1" |
669
686
(.. | select(. == "batch/v1beta1")) = "batch/v1" ' - > ${new_result}
670
-
687
+
671
688
yq -i eval ' del(.spec.persistentVolumeClaimRetentionPolicy)' ${new_result}
672
-
689
+
673
690
if version_gt " 1.22" ; then
674
691
yq -i eval ' del(.spec.internalTrafficPolicy)' ${new_result}
675
692
yq -i eval ' del(.spec.allocateLoadBalancerNodePorts)' ${new_result}
@@ -961,6 +978,7 @@ get_service_endpoint() {
961
978
return
962
979
fi
963
980
981
+ collect_k8s_logs
964
982
exit 1
965
983
}
966
984
@@ -1135,6 +1153,7 @@ wait_cluster_consistency() {
1135
1153
until [[ " $( kubectl_bin get psmdb " ${cluster_name} " -o jsonpath=' {.status.state}' ) " == " ready" ]]; do
1136
1154
let retry+=1
1137
1155
if [ $retry -ge 32 ]; then
1156
+ collect_k8s_logs
1138
1157
echo max retry count $retry reached. something went wrong with operator or kubernetes cluster
1139
1158
exit 1
1140
1159
fi
@@ -1161,6 +1180,7 @@ check_backup_deletion() {
1161
1180
retry=0
1162
1181
until [[ $( curl -sw ' %{http_code}' -o /dev/null $path ) -eq 403 ]] || [[ $( curl -sw ' %{http_code}' -o /dev/null $path ) -eq 404 ]]; do
1163
1182
if [ $retry -ge 10 ]; then
1183
+ collect_k8s_logs
1164
1184
echo max retry count $retry reached. something went wrong with operator or kubernetes cluster
1165
1185
echo " Backup was not removed from bucket -- $storage_name "
1166
1186
exit 1
@@ -1222,6 +1242,7 @@ function get_mongod_ver_from_image() {
1222
1242
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' )
1223
1243
1224
1244
if [[ ! ${version_info} =~ ^([0-9]+\. ){2}[0-9]+-[0-9]+$ ]]; then
1245
+ collect_k8s_logs
1225
1246
printf " No mongod version obtained from %s. Exiting" ${image}
1226
1247
exit 1
1227
1248
fi
@@ -1234,6 +1255,7 @@ function get_pbm_version() {
1234
1255
local version_info=$( run_simple_cli_inside_image ${image} ' pbm-agent version' | $sed -r ' s/^Version:\ (([0-9]+\.){2}[0-9]+)\ .*/\1/g' )
1235
1256
1236
1257
if [[ ! ${version_info} =~ ^([0-9]+\. ){2}[0-9]+$ ]]; then
1258
+ collect_k8s_logs
1237
1259
printf " No pbm version obtained from %s. Exiting" ${image}
1238
1260
exit 1
1239
1261
fi
@@ -1274,6 +1296,33 @@ function generate_vs_json() {
1274
1296
echo ${version_service_source} | jq ' .' > ${target_path}
1275
1297
}
1276
1298
1299
+ collect_k8s_logs () {
1300
+ if [[ ${ENABLE_LOGGING} == " true" ]]; then
1301
+ rm -f ${logs_dir} /logs_${test_name} _* || :
1302
+
1303
+ local check_namespaces=" $namespace ${OPERATOR_NS: + $OPERATOR_NS } "
1304
+
1305
+ for ns in $check_namespaces ; do
1306
+ local pods=$( kubectl_bin get pods -o name | awk -F " /" ' {print $2}' )
1307
+ for p in $pods ; do
1308
+ local containers=$( kubectl_bin -n " $ns " get pod $p -o jsonpath=' {.spec.containers[*].name}' )
1309
+ for c in $containers ; do
1310
+ kubectl_bin -n " $ns " logs $p -c $c > ${logs_dir} /logs_${test_name} _$p_$c .txt
1311
+ echo logs saved in: ${logs_dir} /logs_${test_name} _$p_$c .txt
1312
+ done
1313
+ done
1314
+ done
1315
+ for object in " psmdb psmdb-backup psmdb-restore pods deployments services events sts" ; do
1316
+ echo " ##### START: $object #####" >> ${logs_dir} /logs_${test_name} _simple.txt
1317
+ kubectl_bin get $object --all-namespaces >> ${logs_dir} /logs_${test_name} _simple.txt
1318
+ echo " ##### END: $object ####\n" >> ${logs_dir} /logs_${test_name} _simple.txt
1319
+ done
1320
+ for object in " psmdb psmdb-backup psmdb-restore pods deployments services events sts" ; do
1321
+ kubectl_bin get $object --all-namespaces > ${logs_dir} /logs_${test_name} _$object .yaml
1322
+ done
1323
+ fi
1324
+ }
1325
+
1277
1326
check_passwords_leak () {
1278
1327
secrets=$( kubectl_bin get secrets -o json | jq -r ' .items[].data | to_entries | .[] | select(.key | (contains("_PASSWORD"))) | .value' )
1279
1328
echo secrets=$secrets
@@ -1295,7 +1344,7 @@ check_passwords_leak() {
1295
1344
if [[ ${c} =~ " pmm" ]]; then
1296
1345
continue
1297
1346
fi
1298
- kubectl_bin -n " $NS " logs $p -c $c > ${TEMP_DIR} /logs_output-$p -$c .txt
1347
+ kubectl_bin -n " $NS " logs $p -c $c > ${TEMP_DIR} /logs_output-$p -$c .txt
1299
1348
echo logs saved in: ${TEMP_DIR} /logs_output-$p -$c .txt
1300
1349
for pass in $passwords ; do
1301
1350
count=$( grep -c --fixed-strings -- " $pass " ${TEMP_DIR} /logs_output-$p -$c .txt || :)
0 commit comments