ADRs 0164–0166 and issue 190: the container runtime gets a module, a seat and declared settings #271

Open
mesh-admin wants to merge 5 commits from decision/docker-module into main
Contributor

All three ADRs are proposed. Flip them to accepted once reviewed; the design amendments (05's capability table, 26's seat table) follow in a separate change, since a design may not rest on a proposed record.

  • 0164: a module declares every setting it takes, with a type, a meaning, an optional default and what a change costs (nothing, a reload or a restart). This enforces ADR 0046 / 0112. An undeclared key is refused when set, and every effective value names its source (default, mesh or node).
  • 0165: container-runtime is detected from the kernel, as seat is. "A runtime is running" becomes one probe, shared by the preflight and the runtime module's health. The detector change waits until 0166's seat requirement is enforced, so issue 007 cannot come back.
  • 0166: node-container-runtime is a seat of the mesh's own, held by the docker module. Its verbs and events cover every container on the machine. The holder runs as a supervised process and serves the verbs locally to the host and on the bus to everyone else. The host creates containers through it and never falls back to the command line. The bus is ruled out for the host because the broker itself is a container. Only the host may create or remove a mesh-held container.
  • Issue 190: the resolver module and the private network both write the runtime's file and declare its service. The collision check never sees the private network's resources, because they are computed.

Checks: records, index, cycle pass.

All three ADRs are **proposed**. Flip them to `accepted` once reviewed; the design amendments (05's capability table, 26's seat table) follow in a separate change, since a design may not rest on a proposed record. - **0164**: a module declares every setting it takes, with a type, a meaning, an optional default and what a change costs (nothing, a reload or a restart). This enforces ADR 0046 / 0112. An undeclared key is refused when set, and every effective value names its source (default, mesh or node). - **0165**: `container-runtime` is detected from the kernel, as `seat` is. "A runtime is running" becomes one probe, shared by the preflight and the runtime module's health. The detector change waits until 0166's seat requirement is enforced, so issue 007 cannot come back. - **0166**: `node-container-runtime` is a seat of the mesh's own, held by the `docker` module. Its verbs and events cover every container on the machine. The holder runs as a supervised process and serves the verbs locally to the host and on the bus to everyone else. The host creates containers through it and never falls back to the command line. The bus is ruled out for the host because the broker itself is a container. Only the host may create or remove a mesh-held container. - **Issue 190**: the resolver module and the private network both write the runtime's file and declare its service. The collision check never sees the private network's resources, because they are computed. Checks: records, index, cycle pass.
mesh-admin added 2 commits 2026-10-01 22:03:14 +00:00
Proposed for the operator's review: settings declared with defaults and cost (0164),
container-runtime as a kernel capability (0165), node-container-runtime seat with the
host creating containers through its holder (0166), and the runtime's file written by
modules that are not its own (190).
jschoubben added 1 commit 2026-10-01 22:48:09 +00:00
jschoubben added 2 commits 2026-10-02 10:23:29 +00:00
This pull request has changes conflicting with the target branch.
  • 02-DECISIONS/README.md
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin decision/docker-module:decision/docker-module
git checkout decision/docker-module
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#271