Define clean-install HA qualification - #889
Draft
ankitgoswami wants to merge 35 commits into
Draft
Conversation
🔐 Codex Security Review
Review SummaryOverall Risk: NONE FindingsNo actionable security, correctness, or reliability findings were identified in the changed hunks. NotesThe executable change adds a fail-closed check before destructive etcd principal cleanup. The remaining changes conservatively document HA qualification boundaries and pending validation requirements. Review was limited to static inspection of the authoritative diff. Generated by Codex Security Review | |
This was referenced Aug 7, 2026
This was referenced Aug 7, 2026
ankitgoswami
force-pushed
the
ankitg/ha-clean-install-qualification
branch
from
August 7, 2026 18:44
be18ad0 to
1e137c7
Compare
ankitgoswami
force-pushed
the
ankitg/ha-clean-install-qualification
branch
2 times, most recently
from
August 7, 2026 19:11
ea992c4 to
eed7b91
Compare
ankitgoswami
force-pushed
the
ankitg/ha-clean-install-qualification
branch
2 times, most recently
from
August 7, 2026 19:36
1450e54 to
dece2e5
Compare
ankitgoswami
force-pushed
the
ankitg/ha-clean-install-qualification
branch
2 times, most recently
from
August 7, 2026 19:47
305bce3 to
664159b
Compare
ankitgoswami
force-pushed
the
ankitg/ha-clean-install-qualification
branch
from
August 7, 2026 19:52
664159b to
fd51051
Compare
ankitgoswami
force-pushed
the
ankitg/ha-clean-install-qualification
branch
2 times, most recently
from
August 7, 2026 20:11
4f4fb38 to
d567ef7
Compare
ankitgoswami
force-pushed
the
ankitg/ha-clean-install-qualification
branch
from
August 7, 2026 20:19
d567ef7 to
788fbde
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reviewable diff: +215/-24 across 3 files (excludes generated, test, and story files).
Summary
Defines the evidence required before the fixed three-host Fleet application, database, DCS, and VIP profile is called supported at a recorded fleet scale and topology. The report remains pending until the packaged release passes every gate on the three Raspberry Pis; update qualification and deferred Fleet Node, scheduler-recovery, and alert-delivery behavior are separate.
Stack: #887 -> #888 -> #889 -> #890 -> #891 -> #892. This documentation-only diff is relative to installer PR #888. Update qualification is deferred to #892.
How it works
Operators install the same packaged release concurrently on three clean hosts and record the release bundle and deployment-manifest digests, container image identities, host-package versions, host hardware, miner count, plugin mix, connection topology, command backlog, and timing evidence. The checklist verifies reboot persistence, independent and combined Fleet/database host loss, acknowledged-write durability, direct host-pinned writer exclusivity, passive request rejection, demotion cancellation, observable firewall behavior, stale command completion rejection, an active curtailment target through failover, repeated failovers, and a 24-hour soak. Every injected Fleet, PostgreSQL, etcd, or VIP fault, including degraded-only failures, must also continue or resume MQTT curtailment and reach exact shed and restoration targets within 180 seconds. A controller-side command ledger requires every acknowledged PENDING command to succeed within 60 seconds and permits interruption failure only for commands proven PROCESSING when the fault began. Controller-clock probe windows conservatively bound possible VIP ownership, while a fleet-wide external recorder captures every command, plugin, and curtailment request with its device and source host independently of sampled health. Any evidence gap or overlapping old/new-holder work fails the gate. Any failed or missing gate leaves the exact artifact and host profile unsupported.
flowchart LR I["Clean install"] --> R["Reboot recovery"] R --> F["Failure matrix"] F --> C["Commands and curtailment"] C --> S["Repeated failover and soak"] S --> V{"Every gate passes?"}Areas of the code involved
deployment-files/ha/QUALIFICATION.mddeployment-files/ha/README.mddocs/rfcs/0002-active-passive-fleet-ha.mdKey technical decisions & trade-offs
Testing & validation