Skip to content

Commit 20850d9

Browse files
committed
Add collecting of mongo logs in collect_k8s_logs
1 parent 24ca96c commit 20850d9

File tree

2 files changed

+34
-9
lines changed

2 files changed

+34
-9
lines changed

Jenkinsfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ pipeline {
264264
CLUSTER_NAME = sh(script: "echo jen-psmdb-${env.CHANGE_ID}-${GIT_SHORT_COMMIT}-${env.BUILD_NUMBER} | tr '[:upper:]' '[:lower:]'", , returnStdout: true).trim()
265265
AUTHOR_NAME = sh(script: "echo ${CHANGE_AUTHOR_EMAIL} | awk -F'@' '{print \$1}'", , returnStdout: true).trim()
266266
ENABLE_LOGGING = "true"
267-
ENABLE_LOG_COLLECT = "true"
267+
ENABLE_K8S_LOGGING = "true"
268268
}
269269
agent {
270270
label 'docker'

e2e-tests/functions

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

13241326
collect_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

Comments
 (0)