Files
loop-ops/tests/cutover-patch.sh
2026-10-27 14:29:43 +03:00

13 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Проверка патча CR в db/cutover-one.sh: свои ресурсы/probes не понижаются, пауза не будится, CUTOVER_REPLICAS применяется.
# bash tests/cutover-patch.sh
set -euo pipefail
PY=$(sed -n "/<<'PY'$/,/^PY$/p" "$(dirname "$0")/../db/cutover-one.sh" | sed '1d;$d')
run() { local f; f=$(mktemp); echo '{"spec":{"replicas":0,"probes":{"livenessProbe":{"initialDelaySeconds":900}},"scheduling":{"resources":{"limits":{"memory":"8Gi"}}},"mattermostEnv":[{"name":"MM_SQLSETTINGS_DATASOURCE","value":"old"}]}}' >"$f"
python3 - "$f" NEW NEWRO 600 60 120 60 4Gi 512Mi 200m <<<"$PY" >/dev/null; jq -c .spec "$f"; rm -f "$f"; }
S=$(run)
jq -e '.replicas==0 and .scheduling.resources.limits.memory=="8Gi" and .probes.livenessProbe.initialDelaySeconds==900 and .probes.livenessProbe.failureThreshold==60 and .scheduling.resources.requests.memory=="512Mi" and ([.mattermostEnv[]|select(.name=="MM_SQLSETTINGS_DATASOURCE").value]==["NEW"])' <<<"$S" >/dev/null || { echo "FAIL: $S"; exit 1; }
S=$(CUTOVER_REPLICAS=3 run)
jq -e '.replicas==3' <<<"$S" >/dev/null || { echo "FAIL replicas: $S"; exit 1; }
echo OK