@@ -720,7 +720,8 @@ run_mongo() {
720720 local suffix=${4:- .svc.cluster.local}
721721 local client_container=$( kubectl_bin get pods --selector=name=psmdb-client -o ' jsonpath={.items[].metadata.name}' )
722722 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+
724725 kubectl_bin exec ${client_container} -- \
725726 bash -c " printf '$command \n' | mongo $driver ://$uri$suffix /admin?ssl=false\&replicaSet=$replica_set $mongo_flag "
726727
@@ -733,7 +734,8 @@ run_mongo_tls() {
733734 local suffix=${4:- .svc.cluster.local}
734735 local client_container=$( kubectl_bin get pods --selector=name=psmdb-client -o ' jsonpath={.items[].metadata.name}' )
735736 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+
737739 kubectl_bin exec ${client_container} -- \
738740 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 "
739741
@@ -1322,7 +1324,7 @@ function generate_vs_json() {
13221324}
13231325
13241326collect_k8s_logs () {
1325- if [[ ${ENABLE_LOG_COLLECT } == " true" ]]; then
1327+ if [[ ${ENABLE_K8S_LOGGING } == " true" ]]; then
13261328 local check_namespaces=" ${namespace}${OPERATOR_NS: + $OPERATOR_NS } "
13271329 local logs_path=" ${logs_dir} /${test_name} "
13281330
@@ -1335,19 +1337,42 @@ collect_k8s_logs() {
13351337 kubectl_bin -n " ${ns} " describe pod ${p} > ${logs_path} /pod_${ns} _${p} .dsc || :
13361338 local containers=$( kubectl_bin -n " ${ns} " get pod ${p} -o jsonpath=' {.spec.containers[*].name}' )
13371339 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 || :
13391341 echo " logs saved in: ${logs_path} /${ns} _${p} _${c} .log"
13401342 done
13411343 done
13421344 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
13451347 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
13471349 kubectl_bin get ${object} -n " ${namespace} " -oyaml > ${logs_path} /${object} _${namespace} .yaml || :
13481350 kubectl_bin describe ${object} -n " ${namespace} " > ${logs_path} /${object} _${namespace} .dsc || :
13491351 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
13511376 fi
13521377}
13531378
0 commit comments