From 153c9ec6f00b8b9fb3399a9c072575b1df12affb Mon Sep 17 00:00:00 2001 From: "Taylor, Stephen (st053q)" Date: Thu, 25 Jun 2020 15:40:12 -0600 Subject: [PATCH] [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 --- ceph-osd/templates/bin/osd/_check.sh.tpl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ceph-osd/templates/bin/osd/_check.sh.tpl b/ceph-osd/templates/bin/osd/_check.sh.tpl index 04dec24d3..dc321806f 100644 --- a/ceph-osd/templates/bin/osd/_check.sh.tpl +++ b/ceph-osd/templates/bin/osd/_check.sh.tpl @@ -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