ceph-csi/system-status.sh
Niels de Vos 410db81215 ci: include status of the Rook deployment on failure
More details of the Rook (and Ceph) deployment should be useful when
troubleshooting CI failures. This now includes the status of the most
important Kubernetes objects, and all the logs Ceph stores on the host.

Updates: #1969
Signed-off-by: Niels de Vos <ndevos@redhat.com>
2021-05-12 14:42:09 +00:00

56 lines
1.5 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 pods
log kubectl -n rook-ceph describe pods
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