Issue 118 and ADR 0112 (proposed): a module definition names no node, no mesh and no path
Issue 118 records what a review of where module code reads its files found: 789 host-path strings in 70 of the catalogue's 71 definitions, every one a decision the definition makes about a machine. Mounts are checked (ADR 0091); the same paths retyped as values are not. It records what that has already allowed — a DNS provider that would provision nobody silently, a contributions file that names credentials by host path and so forces every provider to mount at the identical path, an SDK loop that treats an unwritten contributions file as empty without a word, defaults in code that disagree with their own manifests — and that no module can be assigned to one node twice, because every identity is keyed by the module's name. ADR 0112, proposed for review, answers it the way ADR 0038 answered ports: a definition names variables, and installing it resolves every one or refuses, from three sources — the assignment's own configuration, provisions the mesh resolves against a contract, and what the mesh generates or knows. A directory becomes a provision: the module requires one by name with its owner, mode and persistence, and where it lands is the assignment's. The mesh's own files stop carrying host paths. An assignment gets an identity of its own, so a module may run twice on one node. Checking copies for agreement was rejected as checking something that should not exist; rewriting paths per assignment was rejected as inferring which strings are paths by their shape. Syntax, a node's default layout, and when a second instance becomes possible are left to the design.
This commit is contained in:
@@ -157,6 +157,7 @@ python3 00-META/checks/index.py fail if stale
|
||||
- **0091** — [A mount is declared, and there are three things it can be](0091-a-mount-is-declared-three-ways.md)
|
||||
- **0099** — [A step that runs once names what it reads, and runs again when it changed](0099-a-step-that-runs-once-names-what-it-reads.md)
|
||||
- **0110** — [A seat is a module assignment from a closed set, and it may deliver a provision](0110-a-seat-is-a-module-assignment-from-a-closed-set.md)
|
||||
- **0112** — [A module definition names no node, no mesh and no path: everything it needs is resolved at assignment](0112-a-module-definition-names-no-node-mesh-or-path.md) *(proposed)*
|
||||
|
||||
### How it is built
|
||||
|
||||
|
||||
Reference in New Issue
Block a user