Add opt-in demotion database safety gate

This commit is contained in:
Lyncoln
2026-09-17 18:53:41 -04:00
parent 6f1f8814f2
commit 8efa03bf1d
4 changed files with 29 additions and 3 deletions
@@ -54,6 +54,11 @@ mc_pg_demote_database_shadow()
if [ "${rc}" -ne 0 ]; then
ocf_log warn \
"managed-containerd demote.database shadow unavailable rc=${rc}"
if [ "${MC_DEMOTE_DATABASE_GATE:-false}" = true ]; then
return 1
fi
return 0
fi
@@ -76,6 +81,10 @@ if (
else
ocf_log err \
"managed-containerd demote.database shadow MISMATCH response=${response}"
if [ "${MC_DEMOTE_DATABASE_GATE:-false}" = true ]; then
return 1
fi
fi
return 0
@@ -153,7 +162,11 @@ mc_pg_native_demote()
return "${OCF_ERR_GENERIC}"
}
mc_pg_demote_database_shadow
if ! mc_pg_demote_database_shadow; then
ocf_exit_reason \
"managed-containerd demote.database gate rejected demotion"
return "${OCF_ERR_GENERIC}"
fi
if [ "$(printf '%s' "${target_node}" | tr '[:upper:]' '[:lower:]')" = \
"$(printf '%s' "${local_node}" | tr '[:upper:]' '[:lower:]')" ]; then