docs(specs): record xce-node-manager interactions with service and provisioning specs
xce-node-manager: a "Cross-Spec Interactions" section (pending a requirements revision; approved criteria unchanged) with six points: a supervision/probe module shared with service-supervision, node-manager components vs service jobs, a lease-based provisioner role, role declaration and worker stop on decommission for provisioned hosts, a host-loss grace period longer than worker restart plus rejoin, and a future service proxy under the reverse-proxy role. design.md Open Questions points to it. The service-supervision, host-failure-job-recovery, elastic-hosts, resource-provisioner and service-endpoint briefs cross-reference the matching points; the roadmap lists the xce-node-manager revision. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
922188b5d7
commit
a68aac1a2b
8 changed files with 83 additions and 5 deletions
|
|
@ -99,3 +99,49 @@ Open design questions to resolve during requirements/design phases (do not assum
|
|||
1. Where existing deployment tooling documents starting the Controller, Scheduler Process, Worker Process, or Apiserver Process as an independent, manually-managed process, that tooling shall be updated to reflect that the Node Manager now starts these components according to each node's assigned role.
|
||||
2. Where an existing spec or test tooling depends on a component being started or managed independently of the Node Manager, that dependency shall be identified and reconciled with this feature's behavior rather than left silently incompatible.
|
||||
3. The observable behavior of the Controller, Scheduler Process, Worker Process, and Apiserver Process toward jobs, queues, configuration, and cluster membership shall remain unchanged by this feature while each is running.
|
||||
|
||||
## Cross-Spec Interactions (2026-10-10, pending requirements revision)
|
||||
|
||||
Recorded during the long-running services and auto resource provisioning
|
||||
discoveries (`.kiro/steering/roadmap.md`). These are **not yet acceptance
|
||||
criteria**: the approved requirements and design above are unchanged until a
|
||||
revision (`/kiro-spec-requirements xce-node-manager`) folds them in or
|
||||
rejects them.
|
||||
|
||||
1. **Two supervision layers, shared mechanics.** The Node Manager supervises
|
||||
XCE's own components; the worker supervises user jobs, including service
|
||||
replicas (`service-supervision`). The Node Manager never supervises job
|
||||
processes (consistent with Requirement 5). Restart policy with backoff,
|
||||
give-up rule and probes (the Node Manager's TCP port check, the worker's
|
||||
command/TCP/HTTP probes) should come from one shared supervision/probe
|
||||
module so their semantics match.
|
||||
2. **Infrastructure services boundary.** The Node Manager runs what XCE
|
||||
itself needs, or what must run before or without a Controller (XCE
|
||||
components, the reverse proxy). Everything else, including admin
|
||||
infrastructure services such as license servers or monitoring agents,
|
||||
runs as XCE service jobs (`service-replica-set`), scheduled with quotas,
|
||||
RBAC and accounting.
|
||||
3. **Roles for lease-based components.** `resource-provisioner` adds a
|
||||
daemon: the Node Manager needs a `provisioner` role that only keeps the
|
||||
process running; which instance is active is decided by a
|
||||
Controller-granted lease, not by the Node Manager (unlike the Scheduler's
|
||||
primary-bound start/stop). Future XCE daemons should follow the same
|
||||
"role + lease" pattern.
|
||||
4. **Provisioned hosts and decommission** (`elastic-hosts`). A cloud-burst
|
||||
host boots with the Node Manager and the `worker` role, declared by its
|
||||
host template and written into the Node Manager's configuration by the
|
||||
instance's boot script (one concrete answer to "how a node's role
|
||||
assignment is declared"). On decommission, the Node Manager must stop
|
||||
the worker on that node (or drop its role) instead of restarting it, and
|
||||
the Controller refuses a rejoin from a decommissioned host.
|
||||
5. **Worker restart vs. host loss** (`host-failure-job-recovery`). Jobs run
|
||||
in systemd units and survive a worker daemon restart; the restarted
|
||||
worker re-reports them on rejoin. The host-loss grace period must exceed
|
||||
the Node Manager's worker restart plus rejoin time, so a worker crash
|
||||
never requeues or fails jobs (service replicas included). Optional: the
|
||||
Node Manager reports "worker restarting" so the Controller does not start
|
||||
the grace period.
|
||||
6. **Future service proxy** (`service-endpoint`). A service proxy or load
|
||||
balancer, out of scope for `service-endpoint` v1, would naturally run
|
||||
under the Node Manager's `reverse-proxy` role, its routing fed by the
|
||||
endpoint table.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue