128 review: located; the fix as built (block, at, never held, order)

This commit is contained in:
jochen
2026-09-27 00:03:30 +02:00
parent ee31f9f761
commit a865fc7d79
@@ -1,5 +1,5 @@
--- ---
status: open status: located
opened: 2026-09-26 opened: 2026-09-26
located-in: [mesh-controller internal/catalogue/facts.go, mesh-host internal/apply] located-in: [mesh-controller internal/catalogue/facts.go, mesh-host internal/apply]
--- ---
@@ -51,6 +51,20 @@ private network loses that name too.
- A converge preview that names a held file the take would replace *whole*, with its line - A converge preview that names a held file the take would replace *whole*, with its line
count before and after, so a person sees "hosts: 31 lines → 12" before the flip. count before and after, so a person sees "hosts: 31 lines → 12" before the flip.
## The fix, as built (in review)
- **Host:** a file resource may say `"into": "block"`. The host owns only the lines between
`# BEGIN mesh <id>` and `# END mesh <id>` and keeps everything outside them byte for byte. A
new region goes at the `end` by default, or at the `start` (`"at": "start"`) for files where a
line's meaning depends on what stands above it; a region already present is never moved.
Undeclared, what the region held before is put back, or the region is removed and nothing
else. Replacing nothing, it is written on an adopted node without being held — so a machine
gets the mesh's names before its private network is taken.
- **Controller:** `node-names` is a fact written into a shared file, emitted as that region: the
mesh's names only, no header, no `localhost`, no `127.0.1.1` line.
- **Order:** a host older than the block mode refuses the whole declaration on an unknown
`into`, so hosts are upgraded before the controller that emits it.
## Evidence to carry into diagnosis ## Evidence to carry into diagnosis
- `internal/catalogue/facts.go`, `nodeNames`: the complete file is built here. - `internal/catalogue/facts.go`, `nodeNames`: the complete file is built here.