@@ -720,7 +720,8 @@ run_mongo() {
720
720
local suffix=${4:- .svc.cluster.local}
721
721
local client_container=$( kubectl_bin get pods --selector=name=psmdb-client -o ' jsonpath={.items[].metadata.name}' )
722
722
local mongo_flag=" $5 "
723
- [[ $uri == * cfg* ]] && replica_set=' cfg' || replica_set=' rs0'
723
+ local replica_set=$( echo " $uri " | sed -r ' s/.*\-(rs[0-9]|cfg)\..*/\1/' )
724
+
724
725
kubectl_bin exec ${client_container} -- \
725
726
bash -c " printf '$command \n' | mongo $driver ://$uri$suffix /admin?ssl=false\&replicaSet=$replica_set $mongo_flag "
726
727
@@ -733,7 +734,8 @@ run_mongo_tls() {
733
734
local suffix=${4:- .svc.cluster.local}
734
735
local client_container=$( kubectl_bin get pods --selector=name=psmdb-client -o ' jsonpath={.items[].metadata.name}' )
735
736
local mongo_flag=" $5 "
736
- [[ $uri == * cfg* ]] && replica_set=' cfg' || replica_set=' rs0'
737
+ local replica_set=$( echo " $uri " | sed -r ' s/.*\-(rs[0-9]|cfg)\..*/\1/' )
738
+
737
739
kubectl_bin exec ${client_container} -- \
738
740
bash -c " printf '$command \n' | mongo $driver ://$uri$suffix /admin?replicaSet=$replica_set --tls --tlsCAFile /etc/mongodb-ssl/ca.crt --tlsCertificateKeyFile /tmp/tls.pem --tlsAllowInvalidHostnames $mongo_flag "
739
741
@@ -1322,7 +1324,7 @@ function generate_vs_json() {
1322
1324
}
1323
1325
1324
1326
collect_k8s_logs () {
1325
- if [[ ${ENABLE_LOG_COLLECT } == " true" ]]; then
1327
+ if [[ ${ENABLE_K8S_LOGGING } == " true" ]]; then
1326
1328
local check_namespaces=" ${namespace}${OPERATOR_NS: + $OPERATOR_NS } "
1327
1329
local logs_path=" ${logs_dir} /${test_name} "
1328
1330
@@ -1335,19 +1337,42 @@ collect_k8s_logs() {
1335
1337
kubectl_bin -n " ${ns} " describe pod ${p} > ${logs_path} /pod_${ns} _${p} .dsc || :
1336
1338
local containers=$( kubectl_bin -n " ${ns} " get pod ${p} -o jsonpath=' {.spec.containers[*].name}' )
1337
1339
for c in ${containers} ; do
1338
- kubectl_bin -n " ${ns} " logs ${p} -c ${c} > ${logs_path} /${ns} _ ${p} _${c} .log || :
1340
+ kubectl_bin -n " ${ns} " logs ${p} -c ${c} > ${logs_path} /container_ ${p} _${c} .log || :
1339
1341
echo " logs saved in: ${logs_path} /${ns} _${p} _${c} .log"
1340
1342
done
1341
1343
done
1342
1344
done
1343
- for object in psmdb psmdb-backup psmdb-restore pods deployments replicasets services sts configmaps persistentvolumeclaims persistentvolumes secrets jobs cronjobs clusterroles roles ; do
1344
- echo " ##### START: NS: ${namespace} - OBJ : ${object } #####" >> ${logs_path} /_overview_${namespace} .txt
1345
+ for object in psmdb psmdb-backup psmdb-restore pods deployments replicasets services sts configmaps persistentvolumeclaims persistentvolumes secrets roles issuer certificate ; do
1346
+ echo " ##### START: ${object} NS : ${namespace } #####" >> ${logs_path} /_overview_${namespace} .txt
1345
1347
kubectl_bin get ${object} -n " ${namespace} " >> ${logs_path} /_overview_${namespace} .txt || :
1346
- echo -e " ##### END: NS: ${namespace} - OBJ : ${object} ####\n" >> ${logs_path} /_overview_${namespace} .txt
1348
+ echo -e " ##### END: ${object} NS : ${namespace} # ####\n" >> ${logs_path} /_overview_${namespace} .txt
1347
1349
kubectl_bin get ${object} -n " ${namespace} " -oyaml > ${logs_path} /${object} _${namespace} .yaml || :
1348
1350
kubectl_bin describe ${object} -n " ${namespace} " > ${logs_path} /${object} _${namespace} .dsc || :
1349
1351
done
1350
- kubectl_bin get events --all-namespaces > ${logs_path} /events.yaml || :
1352
+ kubectl_bin get events --all-namespaces > ${logs_path} /_events.log || :
1353
+ kubectl_bin get nodes > ${logs_path} /_nodes.log || :
1354
+ kubectl_bin get clusterroles > ${logs_path} /_clusterroles.log || :
1355
+
1356
+ local secret psmdb_secret psmdb_user psmdb_pass
1357
+ for psmdb_name in " $( kubectl_bin get psmdb -n ${namespace} -o custom-columns=NAME:.metadata.name --no-headers=true) " ; do
1358
+ psmdb_secret=" $( kubectl_bin get psmdb ${psmdb_name} -n ${namespace} -ojsonpath=' {.spec.secrets.users}' ) "
1359
+ if [[ ${psmdb_secret} ]]; then secret=" ${psmdb_secret} " ; else secret=" ${psmdb_name} -secrets" ; fi
1360
+ psmdb_user=" $( kubectl_bin get secrets ${psmdb_secret} -ojsonpath=' {.data.MONGODB_BACKUP_USER}' | base64 --decode) "
1361
+ psmdb_pass=" $( kubectl_bin get secrets ${psmdb_secret} -ojsonpath=' {.data.MONGODB_BACKUP_PASSWORD}' | base64 --decode) "
1362
+ if [[ " $( kubectl_bin get psmdb ${psmdb_name} -n ${namespace} -ojsonpath=' {.spec.sharding.enabled}' ) " == " true" ]]; then
1363
+ local cfg_replica=" cfg"
1364
+ echo " ##### sh.status() #####" > ${logs_path} /mongos_${psmdb_name} .mongo
1365
+ run_mongos ' sh.status()' " ${psmdb_user} :${psmdb_pass} @${psmdb_name} -mongos.${namespace} " >> ${logs_path} /mongos_${psmdb_name} .mongo
1366
+ fi
1367
+ for psmdb_replset in $( kubectl_bin get psmdb ${psmdb_name} -n ${namespace} -ojsonpath=' {.spec.replsets[*].name}' | awk ' {print $0" ' ${cfg_replica} ' "}' ) ; do
1368
+ local command=(" rs.status()" " rs.config()" " db.printSlaveReplicationInfo()" " db.serverCmdLineOpts()" " db.getRoles()" " db.getUsers()" )
1369
+ for com in " ${command[@]} " ; do
1370
+ echo " ##### START: ${com} #####" >> ${logs_path} /mongodb_${psmdb_name} _${psmdb_replset} .mongo
1371
+ run_mongo " ${com} " " ${psmdb_user} :${psmdb_pass} @${psmdb_name} -${psmdb_replset} .${namespace} " >> ${logs_path} /mongodb_${psmdb_name} _${psmdb_replset} .mongo
1372
+ echo -e " ##### END: ${com} #####\n" >> ${logs_path} /mongodb_${psmdb_name} _${psmdb_replset} .mongo
1373
+ done
1374
+ done
1375
+ done
1351
1376
fi
1352
1377
}
1353
1378
0 commit comments