mirror of
https://github.com/cozystack/cozystack.git
synced 2026-11-08 21:14:56 +09:00
## What this PR does **Problem** The `foundationdb` e2e test fails intermittently with a `.status` jsonpath poll timeout even though the FoundationDB cluster is fully healthy and reconciled. The `generations.reconciled`, `hasListenIPsForAllPods`, `health.fullReplication` and `health.healthy` gates polled their status fields with a 60s ceiling, while the strictly-earlier `health.available` gate already allowed 300s. The operator stamps `generations.reconciled` only after every process holds its role for `minimumUptimeSecondsForBounce` (60s, set in `packages/apps/foundationdb/templates/cluster.yaml`), which makes `reconciled` — and the health fields gated on it — structurally the last status fields to converge. The short ceiling closed the gate seconds before the field landed; a snapshot taken a few seconds after a failure shows the live object fully reconciled (`generations.reconciled: 1`, `health.healthy: true`). **Fix** Raise those four late-converging gates to 300s, matching the existing `health.available` budget. The waits stay event-driven (`until …; do sleep …; done`) — only the ceilings widen, no new retries or fixed sleeps. A comment records why `reconciled` converges last so the budget ordering stays legible to future readers. The early-converging 60s gates (`configured`, `connectionString`, `databaseConfiguration.*`, `desiredProcessGroups`) and the spec-field gates are left untouched, since they settle before `health.available` and 60s is already adequate. **Why not just rerun** Rerunning masks a deterministic ordering bug: the latest-converging field carried the tightest budget. The cluster was healthy on every "failure" — the test was racing its own success criteria, so the failure recurs until the budget ordering is corrected. This change touches only the test harness; the platform behaviour it asserts is unchanged. ### Release note ```release-note NONE ``` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Increased waiting time in one end-to-end FoundationDB setup test so cluster status checks have more time to stabilize. * Reduced flaky failures by allowing key health and reconciliation fields to converge before the test continues. <!-- end of auto-generated comment: release notes by coderabbit.ai -->