ceph-csi/system-status.sh
Rakshith R ad2c02bdc0 ci: get logs from all containers in pod in system-status.sh
Signed-off-by: Rakshith R <rar@redhat.com>
2021-05-17 12:08:28 +00:00

62 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
#
# Run this script to gather details about the environment where the CI job is
# running. This can be helpful to identify issues why minikube failed to
# deploy, or tests encounter problems while running.
#
function minikube_ssh() {
ssh \
-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
-l docker -i "$(minikube ssh-key)" \
"$(minikube ip)" "${*}"
}
function log() {
echo "###" >/dev/stderr
echo "### going to execute: ${*}" >/dev/stderr
echo "###" >/dev/stderr
"${@}"
echo "###" >/dev/stderr
echo "### execution finished: ${*}" >/dev/stderr
echo "###" >/dev/stderr
}
# get the status of the VM in libvirt
log virsh list
# status of the minikube Kubernetes cluster
log minikube status
log minikube logs
# get the status of processes in the VM
log minikube_ssh top -b -c -n1 -w
# get the logs from the VM
log minikube_ssh journalctl --boot
# filesystem status for host and VM
log df -hT
log minikube_ssh df -hT
# fetch all logs from /var/lib/rook in the VM and write them to stdout
log minikube_ssh sudo tar c /var/lib/rook | tar xvO
# gets status of the Rook deployment
log kubectl -n rook-ceph get events
log kubectl -n rook-ceph get pods
for POD in $(kubectl -n rook-ceph get pods -o jsonpath='{.items[0].metadata.name}')
do
log kubectl -n rook-ceph describe pod "${POD}"
log kubectl -n rook-ceph logs "${POD}" --all-containers
log kubectl -n rook-ceph logs "${POD}" --all-containers --previous=true
done
log kubectl -n rook-ceph describe CephCluster
log kubectl -n rook-ceph describe CephBlockPool
log kubectl -n rook-ceph describe CephFilesystem
# run "ceph -s" in the toolbox
log kubectl -n rook-ceph exec \
"$(kubectl -n rook-ceph get pod -l app=rook-ceph-tools -o jsonpath='{.items[0].metadata.name}')" \
-- ceph -s