@@ -705,7 +705,8 @@ run_mongo() {
705
705
local suffix=${4:- .svc.cluster.local}
706
706
local client_container=$( kubectl_bin get pods --selector=name=psmdb-client -o ' jsonpath={.items[].metadata.name}' )
707
707
local mongo_flag=" $5 "
708
- [[ $uri == * cfg* ]] && replica_set=' cfg' || replica_set=' rs0'
708
+ local replica_set=$( echo " $uri " | sed -r ' s/.*\-(rs[0-9]|cfg)\..*/\1/' )
709
+
709
710
kubectl_bin exec ${client_container} -- \
710
711
bash -c " printf '$command \n' | mongo $driver ://$uri$suffix /admin?ssl=false\&replicaSet=$replica_set $mongo_flag "
711
712
@@ -718,7 +719,8 @@ run_mongo_tls() {
718
719
local suffix=${4:- .svc.cluster.local}
719
720
local client_container=$( kubectl_bin get pods --selector=name=psmdb-client -o ' jsonpath={.items[].metadata.name}' )
720
721
local mongo_flag=" $5 "
721
- [[ $uri == * cfg* ]] && replica_set=' cfg' || replica_set=' rs0'
722
+ local replica_set=$( echo " $uri " | sed -r ' s/.*\-(rs[0-9]|cfg)\..*/\1/' )
723
+
722
724
kubectl_bin exec ${client_container} -- \
723
725
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 "
724
726
@@ -1299,7 +1301,7 @@ function generate_vs_json() {
1299
1301
}
1300
1302
1301
1303
collect_k8s_logs () {
1302
- if [[ ${ENABLE_LOG_COLLECT } == " true" ]]; then
1304
+ if [[ ${ENABLE_K8S_LOGGING } == " true" ]]; then
1303
1305
local check_namespaces=" ${namespace}${OPERATOR_NS: + $OPERATOR_NS } "
1304
1306
local logs_path=" ${logs_dir} /${test_name} "
1305
1307
@@ -1312,19 +1314,42 @@ collect_k8s_logs() {
1312
1314
kubectl_bin -n " ${ns} " describe pod ${p} > ${logs_path} /pod_${ns} _${p} .dsc || :
1313
1315
local containers=$( kubectl_bin -n " ${ns} " get pod ${p} -o jsonpath=' {.spec.containers[*].name}' )
1314
1316
for c in ${containers} ; do
1315
- kubectl_bin -n " ${ns} " logs ${p} -c ${c} > ${logs_path} /${ns} _ ${p} _${c} .log || :
1317
+ kubectl_bin -n " ${ns} " logs ${p} -c ${c} > ${logs_path} /container_ ${p} _${c} .log || :
1316
1318
echo " logs saved in: ${logs_path} /${ns} _${p} _${c} .log"
1317
1319
done
1318
1320
done
1319
1321
done
1320
- for object in psmdb psmdb-backup psmdb-restore pods deployments replicasets services sts configmaps persistentvolumeclaims persistentvolumes secrets jobs cronjobs clusterroles roles ; do
1321
- echo " ##### START: NS: ${namespace} - OBJ : ${object } #####" >> ${logs_path} /_overview_${namespace} .txt
1322
+ for object in psmdb psmdb-backup psmdb-restore pods deployments replicasets services sts configmaps persistentvolumeclaims persistentvolumes secrets roles issuer certificate ; do
1323
+ echo " ##### START: ${object} NS : ${namespace } #####" >> ${logs_path} /_overview_${namespace} .txt
1322
1324
kubectl_bin get ${object} -n " ${namespace} " >> ${logs_path} /_overview_${namespace} .txt || :
1323
- echo -e " ##### END: NS: ${namespace} - OBJ : ${object} ####\n" >> ${logs_path} /_overview_${namespace} .txt
1325
+ echo -e " ##### END: ${object} NS : ${namespace} # ####\n" >> ${logs_path} /_overview_${namespace} .txt
1324
1326
kubectl_bin get ${object} -n " ${namespace} " -oyaml > ${logs_path} /${object} _${namespace} .yaml || :
1325
1327
kubectl_bin describe ${object} -n " ${namespace} " > ${logs_path} /${object} _${namespace} .dsc || :
1326
1328
done
1327
- kubectl_bin get events --all-namespaces > ${logs_path} /events.yaml || :
1329
+ kubectl_bin get events --all-namespaces > ${logs_path} /_events.log || :
1330
+ kubectl_bin get nodes > ${logs_path} /_nodes.log || :
1331
+ kubectl_bin get clusterroles > ${logs_path} /_clusterroles.log || :
1332
+
1333
+ local secret psmdb_secret psmdb_user psmdb_pass
1334
+ for psmdb_name in " $( kubectl_bin get psmdb -n ${namespace} -o custom-columns=NAME:.metadata.name --no-headers=true) " ; do
1335
+ psmdb_secret=" $( kubectl_bin get psmdb ${psmdb_name} -n ${namespace} -ojsonpath=' {.spec.secrets.users}' ) "
1336
+ if [[ ${psmdb_secret} ]]; then secret=" ${psmdb_secret} " ; else secret=" ${psmdb_name} -secrets" ; fi
1337
+ psmdb_user=" $( kubectl_bin get secrets ${psmdb_secret} -ojsonpath=' {.data.MONGODB_BACKUP_USER}' | base64 --decode) "
1338
+ psmdb_pass=" $( kubectl_bin get secrets ${psmdb_secret} -ojsonpath=' {.data.MONGODB_BACKUP_PASSWORD}' | base64 --decode) "
1339
+ if [[ " $( kubectl_bin get psmdb ${psmdb_name} -n ${namespace} -ojsonpath=' {.spec.sharding.enabled}' ) " == " true" ]]; then
1340
+ local cfg_replica=" cfg"
1341
+ echo " ##### sh.status() #####" > ${logs_path} /mongos_${psmdb_name} .mongo
1342
+ run_mongos ' sh.status()' " ${psmdb_user} :${psmdb_pass} @${psmdb_name} -mongos.${namespace} " >> ${logs_path} /mongos_${psmdb_name} .mongo
1343
+ fi
1344
+ for psmdb_replset in $( kubectl_bin get psmdb ${psmdb_name} -n ${namespace} -ojsonpath=' {.spec.replsets[*].name}' | awk ' {print $0" ' ${cfg_replica} ' "}' ) ; do
1345
+ local command=(" rs.status()" " rs.config()" " db.printSlaveReplicationInfo()" " db.serverCmdLineOpts()" " db.getRoles()" " db.getUsers()" )
1346
+ for com in " ${command[@]} " ; do
1347
+ echo " ##### START: ${com} #####" >> ${logs_path} /mongodb_${psmdb_name} _${psmdb_replset} .mongo
1348
+ run_mongo " ${com} " " ${psmdb_user} :${psmdb_pass} @${psmdb_name} -${psmdb_replset} .${namespace} " >> ${logs_path} /mongodb_${psmdb_name} _${psmdb_replset} .mongo
1349
+ echo -e " ##### END: ${com} #####\n" >> ${logs_path} /mongodb_${psmdb_name} _${psmdb_replset} .mongo
1350
+ done
1351
+ done
1352
+ done
1328
1353
fi
1329
1354
}
1330
1355
0 commit comments