Repository navigation
docs(range): Saruman is at 10.0.30.20, and §3 records how it moved (#421) - #1327
Merged
Merged
Conversation
) build-the-playground.md §3 ran on 2026-11-07. Saruman left 10.0.30.110, inside ImaginationLAN's .100-.200 DHCP pool, for 10.0.30.20, below it. The .20 rules and export went in first, and the .110 ones came out only after Alloy, NUT, the ISO store's NFS mount, 8006 from Hicks and phoenix's API call (TLS verified) had all been checked over .20. The current-state documents, runbooks, the diagram, the Glance link and the script and Packer comments now say .20. The twelve ADRs that state .110 carry a note. Dated records keep it. §3 is rewritten as run. The old version listed two bindings to the address, and there were eight: the NUT pass, the local_network alias, the API certificate, phoenix.env, known_hosts and the Mac's SSH config were the other six. It also records that ifreload has to run under env -i, because root's mise Python cannot import its modules. Refs #421 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved findings include an API check that skips endpoint/TLS verification on configured hosts, an inaccurate historical IP record, a stale diagram PNG, and an outdated firewall reference in SECURITY.md.
3 open issues
What changed in this PR
Records Saruman’s completed move to 10.0.30.20, outside the DHCP pool used by the planned attack VM, as part of #421’s range build.
Changes:
- Expands the migration runbook with dependency updates, cutover checks and cleanup steps.
- Updates current addresses in documentation, the Glance link, diagram, comments and test fixtures.
- Adds a changelog entry and dated ADR notes while preserving the original decisions.
| File | Description |
|---|---|
stacks/sensitive/glance/pages/homelab.yml |
Points the Proxmox link to .20. |
stacks/media/README.md |
Updates Saruman’s NFS access address. |
scripts/zeek-mirror.sh |
Makes the explanatory comment address-independent. |
scripts/collect-pve-firewall-state.sh |
Updates the probe comment and alias fixtures. |
scripts/collect-iso-store-state.sh |
Updates export and installation comments. |
packer/variables.pkr.hcl |
Updates the TLS security comment. |
docs/security.md |
Updates documented firewall source addresses. |
docs/runbooks/shut-down-on-the-ups.md |
Updates NUT rules and shutdown probes. |
docs/runbooks/schedule-maintenance.md |
Updates the collector installation target. |
docs/runbooks/replace-the-smart-storage-battery.md |
Updates the hypervisor address. |
docs/runbooks/provision-lab-guests.md |
Updates the provider endpoint example. |
docs/runbooks/move-into-the-32u-rack.md |
Updates the shutdown UI link. |
docs/runbooks/fit-the-saruman-ssds.md |
Updates host and installation addresses. |
docs/runbooks/build-the-sensor-guest.md |
Updates bridge checks and SSH targets. |
docs/runbooks/build-the-playground.md |
Records the cutover procedure and verification. |
docs/runbooks/build-the-nas.md |
Updates NFS export and firewall addresses. |
docs/runbooks/build-the-lab-templates.md |
Updates certificate checks and installation targets. |
docs/runbooks/build-the-lab-domain.md |
Notes completion of the address move. |
docs/runbooks/build-the-jumpbox.md |
Updates the API endpoint example. |
docs/runbooks/add-monitored-device.md |
Updates the Alloy firewall source. |
docs/roadmap.md |
Advances the range build to management hardening. |
docs/network.md |
Updates authoritative addressing and migration context. |
docs/hardware.md |
Updates Saruman’s management address. |
docs/diagrams/current/network.svg |
Shows .20 and removes the pending-move label. |
docs/changelog.md |
Records the migration and operational observations. |
docs/architecture.md |
Updates the hypervisor inventory address. |
docs/adr/0106-name-the-range-host-gandalf-and-leave-ifrit-to-its-disabled-amt.md |
Adds a dated address-migration note. |
docs/adr/0084-read-management-certificate-expiry-from-inside-each-segment.md |
Adds a dated address-migration note. |
docs/adr/0079-tag-on-demand-guests-and-leave-them-out-of-the-stopped-guest-alert.md |
Adds a dated address-migration note. |
docs/adr/0072-put-the-iso-store-on-smaug-over-nfs-to-saruman-alone.md |
Adds a dated address-migration note. |
docs/adr/0068-mirror-the-lab-bridge-to-zeek-with-tc-not-open-vswitch.md |
Adds a dated address-migration note. |
docs/adr/0049-shut-down-on-the-ups-from-a-nut-server-on-the-firewall.md |
Adds a dated address-migration note. |
docs/adr/0039-decline-proxmox-clustering-while-ifrit-is-the-range.md |
Adds a dated address-migration note. |
docs/adr/0028-let-guest-liveness-cross-but-not-guest-telemetry.md |
Adds a dated address-migration note. |
docs/adr/0020-run-the-lab-stack-in-a-guest-with-its-own-prometheus.md |
Adds a dated address-migration note. |
docs/adr/0017-buy-ifrit-for-iops-and-keep-the-range-disposable.md |
Adds a dated address-migration note. |
docs/adr/0016-open-casabonita-inward-and-keep-it-terminal-outward.md |
Adds a dated address-migration note. |
docs/adr/0007-defensive-estate-and-offensive-range.md |
Adds a dated address-migration note. |
Review effort: Balanced
SECURITY.md's ingest row now names the pass from 10.0.30.20. The 2026-10-01 build-the-nas record keeps the .110 it observed and notes the move. Playground §3 step 5 gets a standalone API check, because rerunning provision-lab-guests §1 on a configured phoenix stops at "already present". Refs #421 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
The docs now say
Sarumanis at10.0.30.20, wherebuild-the-playground.md§3 moved it on 2026-11-07. §3 itself is rewritten as it actually ran.Why
#421: ADR-0014 needs the hypervisor out of ImaginationLAN's
.100–.200DHCP pool before the attack VM starts leasing from it. Refs #421.Blast radius
Docs, the diagram, the Glance link and comments only. The firewall and host changes were made by hand on 2026-11-07, and this PR records them. The pfSense rules for
.20keep their copy descriptions, which end in(.20).secrets/*.sops.yamlVerification
The move was checked live over
.20:Sarumanlog lines, andpfctlshows states from.20to 9090 and 3100.upsc -clists10.0.30.20.smaug-isoisactiveafter a remount.morpheus.phoenixgetsAPI 200with TLS verified.10.0.30.20.After that, the
.110rules were deleted.make validatepassed, but 43 of its checks were skipped for lack of Docker. markdownlint (npx markdownlint-cli2) passes, as docheck_docs.pyandlint.sh.make validatepasses (43 checks skipped)🤖 Generated with Claude Code