Repository navigation
docs(adr): ADR-0096, fit ifrit's range disk as a SATA SSD in the Tiny's bay - #1200
Merged
Merged
Conversation
…he Tiny tray Both trays were mounted on 2026-10-15 and wobble with all six ear screws tight: the keyboard drawer is a 10.8" slide with no rear support and the Tiny tray a 6.6" hinged shelf, and on a 29" four-post frame their rears rest on nothing. Two pairs of adjustable 1U four-post support rails join Everything still to buy, ten rows to eleven, with README's count following. hardware.md's two rows say why and footnote the parts; the move runbook lists the rails, fits them before each tray and fastens the tray's rear to them before anything is loaded above. Refs #919. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Chosen 2026-10-16 for a stated 10–31.5" mounting range, a 45 lb rating and a cabling crossbar the keyboard drawer's slider rears can tie to. The roadmap row names it the way the smaug shelf row names StarTech, the runbook's parts table and §6.1 say the same, and the changelog entry records the choice. Refs #919. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…'s bay The move runbook had the 1 TB drive replace the 256 GB M.2 because "there is nowhere to fit both". Lenovo's PSREF sheet for the first-generation M80q says it takes one 2.5" SATA drive as well as one M.2. The operator chose SATA on 2026-10-16: the 256 GB M.2 stays as the boot disk and the 1 TB SATA SSD carries the guests. ADR-0017's Disk row is superseded and carries the note; flash over spindles still stands. The roadmap row becomes a 2.5" SATA SSD and gains a conditional row for Lenovo's tray kit, eleven rows to twelve, with README's counts following (96 ADRs, 12 items). hardware.md, the playground runbook and the move runbook's §1.3 say the same. Refs #421. Refs #919. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
There was a problem hiding this comment.
🟡 Changes recommended
The build procedure still assumes one disk and omits provisioning the SATA SSD for guest storage.
1 open finding
What changed in this PR
Documents ifrit’s revised storage plan: retain the M.2 boot disk and add a SATA SSD for the range, with no running-lab changes.
Changes:
- Adds ADR-0096 and a supersession note in ADR-0017.
- Updates hardware, purchase planning, and runbook guidance.
- Updates README counts and records the decision in the changelog.
| File | Description |
|---|---|
| README.md | Updates ADR and purchase counts. |
| docs/runbooks/move-into-the-32u-rack.md | Revises drive fitting and parts guidance. |
| docs/runbooks/build-the-playground.md | Updates the storage prerequisite. |
| docs/roadmap.md | Replaces NVMe purchase with SATA SSD and conditional bay kit. |
| docs/hardware.md | Documents the revised storage layout and parts. |
| docs/changelog.md | Records the SATA decision. |
| docs/adr/0096-fit-ifrits-range-disk-as-a-sata-ssd-in-the-tinys-bay.md | Defines the two-disk layout and rationale. |
| docs/adr/0017-buy-ifrit-for-iops-and-keep-the-range-disposable.md | Adds the disk-decision supersession note. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
… ZFS pool Review on #1200: §1 still said "there is one disk" and took the installer defaults, which could leave the 1 TB SSD unused and guests on the boot disk. §1 now picks the M.2 as the install target, creates a single-disk ZFS pool named range on the SATA SSD and registers it as guest storage; §5 and §6 put every guest disk on it. Refs #421. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…it row Checked 2026-10-16: ifrit's M80q has the 2.5" tray and its flat SATA cable fitted. The conditional roadmap row leaves, twelve rows to eleven with README following, and ADR-0096, hardware.md, the move runbook and the changelog entry say the parts are present rather than to be checked. Refs #421. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
5 of 6 tasks
Gerrrt
enabled auto-merge (squash)
October 16, 2026 04:10
#1199 landed on main as a squash while this branch carried its commits in original form. Both roadmap and runbook conflicts were the UPS rail row from #1201 against nothing on main's side, kept. README's purchase count was re-set to ten: git took main's eleven because this branch's ten matched the merge base, and the table has ten rows. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Merged
5 of 6 tasks
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.

What changed
Docs only, no change to the running lab. ADR-0096 puts
ifrit's range disk in the M80q's 2.5" bay as a 1 TB SATA SSD and keeps the 256 GB M.2 as the boot disk, superseding the Disk row of ADR-0017, which carries the forward note. The roadmap row becomes a 2.5" SATA SSD; the bay's tray and cable are in the chassis (checked 2026-10-16), so no kit row joins, and README's counts follow (96 ADRs, 11 items). A later commit on this PR also carries the playground runbook's §1 fix from review: install onto the M.2, then a ZFS poolrangeon the SATA SSD as the guest storage.hardware.md'sifritparagraph, the playground runbook's gate and the move runbook's §0.1 and §1.3 say the same: the drive goes in the bay, the M.2 is not swapped, nothing is kept "with the spare parts". Changelog entry dated 2026-10-16.This PR now also carries #1201, which was merged into this branch: mjolnir's 2U four-post rail pair joins the table and the colour patch leads and cage nuts leave it, ten rows in all. #1199 landed on main as a squash and main was merged back in; README's purchase count is ten.
Why
Refs #421. Refs #919. The operator chose SATA on 2026-10-16. The runbook's claim that "there is nowhere to fit both" drives was wrong: Lenovo's PSREF sheet for the first-generation M80q lists one 2.5" SATA bay plus one M.2. ADR-0017's premise, flash rather than spindles for snapshot revert, stands; a SATA SSD is an order of magnitude above the mirror it was measured against.
Blast radius
None: documentation only.
secrets/*.sops.yamlVerification
python3 scripts/check_docs.py:docs OK — 158 Prometheus + 20 Loki rules, 8 dashboards, 156 panels, 12 assertions(the ADR count and the purchase count are among the assertions)../scripts/lint.sh: every check PASS.make validate:all checks passed (5 skipped — NOT run, not verified). The five skips are the worktree ones: the offsite path refusal (CI covers it), unit syntax, installed timers, the sensitive stack's timers and the homelab-* units, none of which this checkout serves. Lint ran without--require-all; CI runs the hardened boots, the secret scan and the close-keyword check too.python3 scripts/check_close_keywords.py --texton this body: clean.make validatepassesDeployed to the lab and confirmed working (nothing to deploy)
Docs updated (
docs/, service README, ordocs/roadmap.md)🤖 Generated with Claude Code