Issues 213 and 223 resolved: the controller runs as a process, and genesis hands over to it
This commit is contained in:
@@ -1,10 +1,14 @@
|
|||||||
---
|
---
|
||||||
status: open
|
status: resolved
|
||||||
opened: 2026-10-03
|
opened: 2026-10-03
|
||||||
located-in:
|
located-in:
|
||||||
- mesh-controller
|
- mesh-controller
|
||||||
- mesh-catalog
|
- mesh-host
|
||||||
fixed-by:
|
fixed-by:
|
||||||
|
- mesh-host#86
|
||||||
|
- mesh-controller#252
|
||||||
|
- mesh-controller#253
|
||||||
|
- mesh-host#88
|
||||||
amended-design:
|
amended-design:
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -61,3 +65,16 @@ until the first lets go, and all plan work holds one advisory lock. mesh-control
|
|||||||
controller's manifest as a Go bundle and a process. It waits on
|
controller's manifest as a Go bundle and a process. It waits on
|
||||||
[issue 223](../223-a-new-mesh-installs-its-controller-as-a-container/00-report.md), because with it a
|
[issue 223](../223-a-new-mesh-installs-its-controller-as-a-container/00-report.md), because with it a
|
||||||
new mesh cannot be installed.
|
new mesh cannot be installed.
|
||||||
|
|
||||||
|
## Resolved
|
||||||
|
|
||||||
|
Proven 2026-10-04 on the control machine: after the manifest change was merged and pushed, the host
|
||||||
|
created the controller's account, ran its preparation step, started the controller as a process,
|
||||||
|
found it up across both checks and removed the container. The controller now runs as its own account
|
||||||
|
from its bundle, no controller container remains, its seat answered throughout, and the merge's own
|
||||||
|
plan finished all three tiers under the new process.
|
||||||
|
|
||||||
|
One fault on the way, fixed before it could leave two controllers or none: the host read the account
|
||||||
|
not existing yet as a user database that did not answer — it matched the exit as text in a wording
|
||||||
|
its own runner did not use — so the first apply stopped at the account and the container kept serving,
|
||||||
|
which is the handover's safe failure (mesh-host#88).
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
---
|
---
|
||||||
status: located
|
status: resolved
|
||||||
opened: 2026-10-04
|
opened: 2026-10-04
|
||||||
located-in:
|
located-in:
|
||||||
- mesh-host
|
- mesh-host
|
||||||
fixed-by:
|
fixed-by:
|
||||||
|
- mesh-host#87
|
||||||
amended-design:
|
amended-design:
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -46,3 +47,14 @@ is the process form, and the controller answers its seat's verbs at the end.
|
|||||||
Option 2, [ADR 0200](../../02-DECISIONS/0200-genesis-pivots-to-the-controller-as-a-container-and-the-first-push-hands-it-to-a-process.md):
|
Option 2, [ADR 0200](../../02-DECISIONS/0200-genesis-pivots-to-the-controller-as-a-container-and-the-first-push-hands-it-to-a-process.md):
|
||||||
genesis pivots to the controller as a container recorded under the name the process `replaces`, and
|
genesis pivots to the controller as a container recorded under the name the process `replaces`, and
|
||||||
the first push hands it over.
|
the first push hands it over.
|
||||||
|
|
||||||
|
## Resolved
|
||||||
|
|
||||||
|
Built as [ADR 0200](../../02-DECISIONS/0200-genesis-pivots-to-the-controller-as-a-container-and-the-first-push-hands-it-to-a-process.md)
|
||||||
|
decided: genesis reads only the controller's process from the manifest, builds the controller's image
|
||||||
|
from its repository, and pivots to a container of its own shape recorded under the id the process
|
||||||
|
`replaces`; an older controller in the image form still builds as before. **How it is checked:** the
|
||||||
|
installer's tests build the genesis form from the controller's real manifest, and apply the
|
||||||
|
controller's first process declaration over the recorded container with the host's own apply — the
|
||||||
|
process starts, the container is removed, one controller remains. A real install from nothing has not
|
||||||
|
been run since; the handover it ends in was proven live on the running mesh (issue 213).
|
||||||
|
|||||||
Reference in New Issue
Block a user