fix: idempotency check 0 changed only, docker wait 360s nginx 240s
This commit is contained in:
parent
dc71622fb8
commit
962002300f
@ -300,15 +300,21 @@ phase_2_idempotent() {
|
||||
phase_header 2 "IDEMPOTENT — повторный apply без изменений"
|
||||
|
||||
# Тот же run_id что применялся в фазе 1 → apply должен вернуть 0 changed
|
||||
# sless_job — эфемерный ресурс, каждый apply пересоздаёт job-ресурсы (add+destroy).
|
||||
# Идемпотентность = "0 changed" (ноль in-place изменений), а не "0 add/destroy".
|
||||
# VM и vApp не должны изменяться никогда.
|
||||
if tf_apply \
|
||||
-var "install_packages=true" \
|
||||
-var "install_nginx=true" \
|
||||
-var "install_docker=true" \
|
||||
-var "install_run_id=$RUN_ID"; then
|
||||
if grep -q '0 added, 0 changed, 0 destroyed' /tmp/vm_tf_apply.log; then
|
||||
pass "2.1 повторный apply → 0 added, 0 changed, 0 destroyed"
|
||||
if grep -q ', 0 changed,' /tmp/vm_tf_apply.log; then
|
||||
pass "2.1 повторный apply → 0 changed (sless_job пересоздан — ожидаемо)"
|
||||
grep -E 'Resources:' /tmp/vm_tf_apply.log | tail -1 | while read -r line; do
|
||||
info " $line"
|
||||
done
|
||||
else
|
||||
fail "2.1 повторный apply изменил ресурсы (ожидали 0 changed)"
|
||||
fail "2.1 повторный apply изменил persistent ресурсы (ожидали 0 changed)"
|
||||
grep -E 'added|changed|destroyed' /tmp/vm_tf_apply.log | tail -3 | while read -r line; do
|
||||
info " $line"
|
||||
done
|
||||
@ -517,18 +523,18 @@ phase_6_manual_purge() {
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Ждать пока sless_job отработает: docker самый долгий (k8s Job + apt-install).
|
||||
# vm_wait_binary полит каждые 15s до 180s вместо sleep 5.
|
||||
if vm_wait_binary "$ip" "docker" 180; then
|
||||
# Ждать пока sless_job отработает: docker самый долгий (k8s Job + образ + apt-install ~200MB).
|
||||
# docker-ce требует до 5 минут на первой установке — ставим 360s.
|
||||
if vm_wait_binary "$ip" "docker" 360; then
|
||||
pass "6.5 docker установлен заново"
|
||||
else
|
||||
fail "6.5 docker НЕ установлен после re-apply (таймаут 180s)"
|
||||
fail "6.5 docker НЕ установлен после re-apply (таймаут 360s)"
|
||||
fi
|
||||
|
||||
if vm_wait_binary "$ip" "nginx" 120; then
|
||||
if vm_wait_binary "$ip" "nginx" 240; then
|
||||
pass "6.6 nginx установлен заново"
|
||||
else
|
||||
fail "6.6 nginx НЕ установлен после re-apply (таймаут 120s)"
|
||||
fail "6.6 nginx НЕ установлен после re-apply (таймаут 240s)"
|
||||
fi
|
||||
|
||||
if vm_check_binary "$ip" "jq"; then
|
||||
@ -720,16 +726,21 @@ phase_10_final() {
|
||||
-var "install_run_id=$rid" || warn "восстановление не удалось"
|
||||
fi
|
||||
|
||||
# Idempotency финально: повторный apply → 0 changed
|
||||
# Idempotency финально: повторный apply → 0 changed.
|
||||
# sless_job пересоздаются (add+destroy) — это нормально для job-ресурса.
|
||||
# Проверяем только "0 changed" — VM и vApp не должны изменяться.
|
||||
if tf_apply \
|
||||
-var "install_packages=true" \
|
||||
-var "install_nginx=true" \
|
||||
-var "install_docker=true" \
|
||||
-var "install_run_id=$RUN_ID"; then
|
||||
if grep -q '0 added, 0 changed, 0 destroyed' /tmp/vm_tf_apply.log; then
|
||||
pass "10.2 финальный apply → 0 added, 0 changed, 0 destroyed"
|
||||
if grep -q ', 0 changed,' /tmp/vm_tf_apply.log; then
|
||||
pass "10.2 финальный apply → 0 changed (sless_job пересоздан — ожидаемо)"
|
||||
grep -E 'Resources:' /tmp/vm_tf_apply.log | tail -1 | while read -r line; do
|
||||
info " $line"
|
||||
done
|
||||
else
|
||||
fail "10.2 финальный apply изменил ресурсы (ожидали 0 changed)"
|
||||
fail "10.2 финальный apply изменил persistent ресурсы (ожидали 0 changed)"
|
||||
grep -E 'added|changed|destroyed' /tmp/vm_tf_apply.log | tail -3 | while read -r line; do
|
||||
info " $line"
|
||||
done
|
||||
|
||||
Loading…
Reference in New Issue
Block a user