#!/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