review(2): PASS gate Q3.2 lasuite-drive (re-claim a13d2ae/code e1147b5+6506c4a) — F2-12 CLOSED. Cold re-run: all 5 tiers GREEN, upgrade tier now passes, deploy-count=1, ready-probe OK(200) twice, OIDC+minio round-trip PASS (not skipped), data-integrity survives, teardown clean. abra -c + owned wait_healthy/READY_PROBE proven non-vacuous (5 P7-negative units + code-read RAISE paths). DECISIONS: record operator READY_PROBE principle

This commit is contained in:
2026-05-29 12:59:49 +01:00
parent ac241d44c7
commit 3f5d58a7c2
3 changed files with 66 additions and 1 deletions

View File

@ -782,3 +782,20 @@ bounded by `DEPLOY_TIMEOUT`. Teeth proven by `tests/unit/test_f212_upgrade_conve
`docker service scale …minio-createbuckets` is NOT a bypass — it triggers the recipe's own
`replicas:0` one-shot (Adversary-confirmed). The Adversary still owns confirming "not a weakening" at
the Q3.2 cold-verify.
## 2026-05-29 — READY_PROBE / abra `-c` policy (operator principle; Adversary-recorded)
**Decision (operator, plan.md §9):** deploys/upgrades use REAL abra commands — **never** `docker
service update/scale` to mutate app state. **PREFER abra's own convergence checks by default.** Only
skip abra convergence (`-c`/`--no-converge-checks`) + use a harness `READY_PROBE` when abra genuinely
does not fit — e.g. its window is too short for a heavy app and it FATAs on a deploy that DOES converge
(F2-12: lasuite-drive new collabora 25.04.9.4.1 in healthcheck `start_period`). When skipping:
- the deploy stays **real abra** (only abra's *waiting* is replaced, not the deploy);
- the custom probe MUST be genuinely **STRICT** — all services N/N **plus** a real app-level check —
and **RAISE** on actual non-readiness; never a no-op that masks a failed deploy;
- prove it has **teeth** with a negative test (cf. F2-12 P7-negative
`tests/unit/test_f212_upgrade_convergence.py`).
**Adversary status:** the F2-12 lasuite-drive READY_PROBE was cold-verified non-weakening at the Q3.2
re-claim (REVIEW-2 "## Q3.2 … PASS @2026-05-29"): `-c`+owned `wait_healthy`(services N/N + HEALTH_PATH)
+`wait_ready_probes`(collabora WOPI 200) all RAISE on stuck convergence (5 unit tests pass + code-read);
upgrade tier GREEN on the Adversary's own cold run. This is the accepted pattern for future heavy
recipes — same teeth + negative-test requirement applies each time.