[ceph-osd] Liveness probe success in preboot state with noup flag

OSDs fail the liveness probe if they can't make it to the 'active'
state. The noup flag keeps OSDs in the 'preboot' state, which
prevents the liveness probe from succeeding. This change adds an
additional check in the liveness probe to allow it to succeed if
the noup flag is set and OSDs are in the 'preboot' state.

Change-Id: I8df5954f7bc4ef4374e19344b6e0a9130764d60c
This commit is contained in:
Taylor, Stephen (st053q) 2020-06-25 15:40:12 -06:00 committed by Chinasubbareddy Mallavarapu
parent 7cb3ef69ae
commit 153c9ec6f0

View File

@ -26,11 +26,14 @@ for sock in $SOCKDIR/$SBASE.*.$SSUFFIX; do
if [ -S $sock ]; then
OSD_ID=$(echo $sock | awk -F. '{print $2}')
OSD_STATE=$(ceph -f json-pretty --connect-timeout 1 --admin-daemon "${sock}" status|grep state|sed 's/.*://;s/[^a-z]//g')
NOUP_FLAG=$(ceph --name client.bootstrap-osd --keyring /var/lib/ceph/bootstrap-osd/ceph.keyring status | awk '/flags/{print $2}' | grep noup)
echo "OSD ${OSD_ID} ${OSD_STATE}";
# this might be a stricter check than we actually want. what are the
# other values for the "state" field?
if [ "x${OSD_STATE}x" = 'xactivex' ]; then
cond=0
elif [ "${NOUP_FLAG}" ] && [ "x${OSD_STATE}x" = 'xprebootx' ]; then
cond=0
else
# one's not ready, so the whole pod's not ready.
exit 1