@@ -705,7 +705,8 @@ run_mongo() {
705705 local suffix=${4:- .svc.cluster.local}
706706 local client_container=$( kubectl_bin get pods --selector=name=psmdb-client -o ' jsonpath={.items[].metadata.name}' )
707707 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+
709710 kubectl_bin exec ${client_container} -- \
710711 bash -c " printf '$command \n' | mongo $driver ://$uri$suffix /admin?ssl=false\&replicaSet=$replica_set $mongo_flag "
711712
@@ -718,7 +719,8 @@ run_mongo_tls() {
718719 local suffix=${4:- .svc.cluster.local}
719720 local client_container=$( kubectl_bin get pods --selector=name=psmdb-client -o ' jsonpath={.items[].metadata.name}' )
720721 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+
722724 kubectl_bin exec ${client_container} -- \
723725 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 "
724726
@@ -1299,7 +1301,7 @@ function generate_vs_json() {
12991301}
13001302
13011303collect_k8s_logs () {
1302- if [[ ${ENABLE_LOG_COLLECT } == " true" ]]; then
1304+ if [[ ${ENABLE_K8S_LOGGING } == " true" ]]; then
13031305 local check_namespaces=" ${namespace}${OPERATOR_NS: + $OPERATOR_NS } "
13041306 local logs_path=" ${logs_dir} /${test_name} "
13051307
@@ -1312,19 +1314,42 @@ collect_k8s_logs() {
13121314 kubectl_bin -n " ${ns} " describe pod ${p} > ${logs_path} /pod_${ns} _${p} .dsc || :
13131315 local containers=$( kubectl_bin -n " ${ns} " get pod ${p} -o jsonpath=' {.spec.containers[*].name}' )
13141316 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 || :
13161318 echo " logs saved in: ${logs_path} /${ns} _${p} _${c} .log"
13171319 done
13181320 done
13191321 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
13221324 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
13241326 kubectl_bin get ${object} -n " ${namespace} " -oyaml > ${logs_path} /${object} _${namespace} .yaml || :
13251327 kubectl_bin describe ${object} -n " ${namespace} " > ${logs_path} /${object} _${namespace} .dsc || :
13261328 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
13281353 fi
13291354}
13301355
0 commit comments