getting-started.sh leaves a new machine on the documentation subnet, and reports success #10
Labels
No labels
blocked
bug
decision
duplicate
enhancement
help wanted
invalid
landed?
question
ready-to-merge
stale
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/deploy#10
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
getting-started.shmoves the template's guest addresses onto libvirt's default network by naming the three original machines' last octets in one regex, so a machine added to the template later keeps a192.0.2.xaddress that libvirt's network cannot reach — and the step still reports success, because the other machines did move.Primary goals:
192.0.2., naming the file and the leftover, so this class of miss cannot report success again.Current state and specifics
The step is
Guest addresses on libvirt's default network:(2|10|11)is the last octet ofnexus,allod-devandprivacy-1, the three machines the template had when the step was written. A machine at192.0.2.12does not match: after192\.0\.2\.the regex needs2,10or11followed immediately by a quote, and12"satisfies none.The miss is silent. The success message is gated on
git status --porcelainbeing non-empty across both repositories, which it still is because the first three machines did change, so it printsmoved to 192.168.122.0/24while leaving a machine on a subnetnew-vmreserves no leases on.Widening the regex to any
192.0.2.<n>is not the fix, and is worse than the bug. The same documentation range is used on purpose for hosts that are not machines of the deployment:secrets/identity.nixcarriesexample-build-cacheat.40,example-backup-vpsat.30,example-offsite-consoleat.31andexample-provider-supportat.32, under a comment that reads "Never a machine of the deployment or the forge host", andinventory/flake.nixuses.20inside a check fixture. Relocating those onto the local libvirt subnet turns deliberate examples into addresses that look like local guests, and an assertion that no192.0.2.address survives would make that wrong rewrite mandatory.The distinguishing key is not the address's shape but whether it belongs to a machine in the inventory.
inventory/flake.nix'smachinesis the source of that set, andnexusmust be included even thoughvmSpecsJsonfilters hypervisors out ofscripts/vm-specs.json.Scope
In: the rewrite step and its assertion. Out: the files the step edits — if a later machine fact lands outside
allod/inventoryandallod/secrets, adding that file belongs to whatever change introduces it.Part of allod/strategy#65
Landed on master by direct commit
4c67732("getting-started.sh: rewrite the deployment's own machine addresses, not three named ones"); closing on the owner's instruction.