Use existing founder execution lane for read-only pilot inventory
Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a1abf1-7e95-7141-87c9-ee78332bf790
This commit is contained in:
parent
560589e154
commit
d2eefb371d
4 changed files with 64 additions and 173 deletions
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"schema": "railiance.vergabe-pilot-inventory-launcher-return.v1",
|
||||
"reported_on": "2026-11-05",
|
||||
"evidence_kind": "user_reported_terminal_output",
|
||||
"workplan": "RAPPS-WP-0014",
|
||||
"task": "RAPPS-WP-0014-T03",
|
||||
"prepared_digest": "sha256:2014e62a84b0875fec155dbfd1be26963d9a39ab931092d26c5dfb9e627ffbd7",
|
||||
"status": "launcher_failed",
|
||||
"failure": "admitted_gexec_missing",
|
||||
"execution_host": "not_reported",
|
||||
"proposal_staging_reached": false,
|
||||
"approval_or_submission_reached": false,
|
||||
"native_inventory_executed": false,
|
||||
"runtime_mutations": false,
|
||||
"followup": "Founder executes the reviewed read-only inventory on railiance01 under the existing supervisor-execution lane; no executor installation or agent privilege grant is required."
|
||||
}
|
||||
|
|
@ -28,45 +28,45 @@ reads are forbidden and Helm listing fails. This caller did not execute a
|
|||
privileged proposal. The workstation has no installed `gexec` command; proposal
|
||||
preparation used the existing gated-executor source CLI/action format only.
|
||||
|
||||
For attended execution, review this exact JSON with `gexec show` in the admitted
|
||||
founder runtime, sign it with that runtime's existing approver key and submit
|
||||
through its configured spool. The environment orientation §6 requires the
|
||||
gated executor for privileged actions. No signing key, elevated kubeconfig or
|
||||
new standing agent grant is requested by the packet. The result must report
|
||||
The gated executor is the agent's privileged execution path. CUST-WP-0073-T01
|
||||
also explicitly permits **supervisor execution**, with admin credentials kept
|
||||
outside the agent. The founder can run this reviewed read-only inventory in
|
||||
their own terminal on railiance01. The result must report
|
||||
`native_inventory_complete: true` before using its expected release as the
|
||||
baseline of a separately reviewed capture/restart operation.
|
||||
|
||||
## Founder-terminal handoff
|
||||
## Founder-executed inventory
|
||||
|
||||
The user has now confirmed cross-account task edits and the functional flow
|
||||
through Zuschlag/Nachlese, with UI follow-up. The remaining first step is native
|
||||
inventory. A restricted SSH check as `custodian-agt` was refused at authentication;
|
||||
the agent did not try an elevated account or issue its own certificate.
|
||||
The first launcher attempt returned `admitted_gexec_missing` before any
|
||||
staging, signature or submission. That establishes only that the fixed gexec
|
||||
path was unavailable in the invoking terminal; its host was not reported.
|
||||
The founder does not need an executor installation to perform their own
|
||||
reviewed read-only check.
|
||||
|
||||
From a synced `railiance-apps` checkout on **railiance01**, run:
|
||||
From a synced `railiance-apps` checkout in the founder's own terminal on
|
||||
**railiance01**, run:
|
||||
|
||||
```bash
|
||||
python3 tools/vergabe_pilot_inventory_attended.py --submit
|
||||
sudo env KUBECONFIG=/etc/rancher/k3s/k3s.yaml /usr/bin/python3 tools/vergabe_pilot_inventory.py
|
||||
```
|
||||
|
||||
The launcher asks for the **path** to the existing gexec approver key. The normal
|
||||
gexec review/signature step follows. It stages the fixed proposal in the existing
|
||||
exchange directory, then uses `sudo -u custodian-agt` only to enqueue the signed
|
||||
request under the required UID and read its sanitized result. Kubernetes access
|
||||
runs through gexec's configured `kube:railiance01` target. The founder needs the
|
||||
existing exchange access and ability to use that restricted account via sudo.
|
||||
No new key, standing grant or privileged kubeconfig is installed. Keep the
|
||||
approver key in its existing custody. If it is held only on the workstation,
|
||||
sign the action there with the existing gexec CLI and supply that public signed
|
||||
approval on the node with `--submit --approval /path/to/approval.json`; do not
|
||||
copy the private key to the node. Gexec verifies the signature and its expiry.
|
||||
Share the resulting JSON. This is the same inventory source pinned above.
|
||||
The kubeconfig remains in the founder's privileged execution path. The agent
|
||||
receives the helper's sanitized metadata receipt, not administrative credentials.
|
||||
No snapshot, restart or resource change is included.
|
||||
|
||||
Share the final result JSON. If it is pending, retrieve the same request with
|
||||
`python3 tools/vergabe_pilot_inventory_attended.py --result REQUEST_ID` before
|
||||
submitting again. This mode only reads the result and never enqueues an action.
|
||||
The launcher defaults to local packet
|
||||
review when `--submit` is omitted and refuses a changed action digest. The
|
||||
existing gated executor remains responsible for signature/nonce/profile checks.
|
||||
Authority: `the-custodian/workplans/CUST-WP-0073-agent-credential-separation.md`,
|
||||
T01: exact privileged actions go through "supervisor approval or supervisor
|
||||
execution". This uses the existing supervisor lane; it does not add an agent
|
||||
permission, change a control or install a service.
|
||||
|
||||
## Agent execution
|
||||
|
||||
The original action JSON remains available for the agent's existing admitted
|
||||
gexec show/approve/submit procedure. Restricted agent SSH authentication was
|
||||
refused; no elevated account was attempted. The custom founder launcher was
|
||||
retired because it unnecessarily required gexec for the founder's own read-only
|
||||
check. The standing agent boundary and executor signature checks stay in force.
|
||||
|
||||
Validation: source compilation and synthetic command responses cover success,
|
||||
immediate wrong-cluster refusal, image drift and exclusion of a private canary
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue