ADR 0120: note the shared/region interaction with hq 128
A roster fact may be shared — written into a marked region of the machine's file (into: block, hq 128) rather than as the whole file. The template renders the content; shared decides how the host lays it down. Composes with hq 128: the region mechanism is the host's, the format is the module's.
This commit is contained in:
@@ -74,6 +74,15 @@ The two built-in projections render through the same path any module uses:
|
|||||||
- **dnsmasq's zones** move into dnsmasq. The `local=`/`address=` grammar is dnsmasq's configuration
|
- **dnsmasq's zones** move into dnsmasq. The `local=`/`address=` grammar is dnsmasq's configuration
|
||||||
language, and it now lives in dnsmasq's manifest, where the module that runs dnsmasq owns it.
|
language, and it now lives in dnsmasq's manifest, where the module that runs dnsmasq owns it.
|
||||||
|
|
||||||
|
**A fact also says whether its file is the mesh's whole or a region of the machine's.** A hosts file
|
||||||
|
is the machine's — its `localhost`, the operator's lines, another tool's marked blocks — so
|
||||||
|
`node-names` is `shared`: the mesh owns only its region and keeps the rest byte for byte, the host
|
||||||
|
laying it down `into: block`
|
||||||
|
([ADR 0102](0102-the-mesh-writes-into-a-shared-file-never-over-it.md), hq issue 128). A resolver's
|
||||||
|
zones file is the mesh's whole, and is not shared. The template renders the content either way;
|
||||||
|
`shared` decides how the host writes it. This composes with hq 128 rather than replacing it: the
|
||||||
|
region *mechanism* is the host's, the region's *format* is the module's template.
|
||||||
|
|
||||||
**The names-vs-machines distinction is the template's choice** ([04-ISSUES/111](../04-ISSUES/111-the-resolver-is-told-names-the-mesh-serves-not-only-machines/00-report.md)):
|
**The names-vs-machines distinction is the template's choice** ([04-ISSUES/111](../04-ISSUES/111-the-resolver-is-told-names-the-mesh-serves-not-only-machines/00-report.md)):
|
||||||
a container's hosts ranges `.Names`, so a routed name resolves to the machine serving it; a resolver
|
a container's hosts ranges `.Names`, so a routed name resolves to the machine serving it; a resolver
|
||||||
told the mesh's suffix is its own ranges `.Machines`, or a routed name written there with the suffix
|
told the mesh's suffix is its own ranges `.Machines`, or a routed name written there with the suffix
|
||||||
|
|||||||
Reference in New Issue
Block a user