Skip to content

Commit f17b14a

Browse files
committed
Add collecting of mongo logs in collect_k8s_logs
1 parent 80f9c3b commit f17b14a

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
@@ -271,7 +271,7 @@ pipeline {
271271
CLUSTER_NAME = sh(script: "echo jen-psmdb-${env.CHANGE_ID}-${GIT_SHORT_COMMIT}-${env.BUILD_NUMBER} | tr '[:upper:]' '[:lower:]'", , returnStdout: true).trim()
272272
AUTHOR_NAME = sh(script: "echo ${CHANGE_AUTHOR_EMAIL} | awk -F'@' '{print \$1}'", , returnStdout: true).trim()
273273
ENABLE_LOGGING = "true"
274-
ENABLE_LOG_COLLECT = "true"
274+
ENABLE_K8S_LOGGING = "true"
275275
}
276276
agent {
277277
label 'docker'

e2e-tests/functions

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

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

Comments
 (0)