Record approved production lifecycle cutover and native evidence

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a10780-6d41-7952-9718-dfbc1f41236f
This commit is contained in:
tegwick 2026-10-05 00:15:09 +02:00
parent b5b5a5aa7f
commit 3fe029d49e
11 changed files with 1059 additions and 55 deletions

View file

@ -1,7 +1,7 @@
# INFD-WP-0007 production candidate
Prepared 2026-10-04 for the founder-selected initial audience: net-kingdom-admins
humans and system:serviceaccount:state-hub:state-hub. **Not deployed.**
humans and system:serviceaccount:state-hub:state-hub. **Deployed under founder approval on 2026-10-05 (Europe/Berlin).**
| Artifact | Immutable reference |
| --- | --- |
@ -20,7 +20,7 @@ server dry-run against railiance01.
No Secret is included. Dry-run does not test reachability, credential delivery,
policy caller identity, backup restoration or a human disposition.
## Proposed live changes
## Approved live changes
- Replace the service's image and immutable runtime ConfigMap, retaining its
public Service/Ingress, single writer, Recreate strategy and existing PVC.
@ -139,6 +139,31 @@ the live PVC's private directory. Refresh the snapshot after closing writes for
cutover; this online drill is not the final maintenance-window backup.
The requester proof's eight temporary resources were removed. No native approval
was created, consumed or human-bound by these tests. The actual review service
and State Hub dispatcher have not been rolled out. Concrete cutover approval is
the remaining gate for the initial audience and artifacts in this packet.
was created, consumed or human-bound by these tests. The actual review service and State Hub dispatcher were subsequently rolled out
under explicit founder approval; see the native cutover record below.
## Native cutover — 2026-10-05
Approval: State Hub decision d2eaa2e9-6d11-4676-a07f-e3b7e59a88e3.
Service: manual Argo application informed-decision, path deploy/lifecycle,
source b5b5a5a. Dispatcher: manual Argo application state-hub-memo-dispatch,
State Hub source 1321361. Both retain the image digests above. The dispatcher
source adds non-root private-directory initialization for Kubernetes inherited
setgid, with nine passing regression tests. Only empty owned 2700 custody is
normalized; existing nonempty or unsafe custody fails closed.
The final quiesced backup matches the previously restored snapshot digest.
Schema 5 preserves 24 confirmed submissions. Actual receiving-pod credential
exchange and 0440/read-only mount pass. Public /healthz and /readyz return 200;
private /v1/decisions and /v1/memos return 404 on the public origin.
The selected workload created two records and a revision with unchanged
deployment templates/generations and policy pins. Native audience/caller negatives,
private dispatch, notification and independent audit reconciliation pass. Pod
recreation retains the same version and single approval receipt; explicit
re-enqueue is replay. Temporary negative-verification resources were deleted.
Human review remains at /review?memo_id=review-0d55a416-178c-46f5-b74b-b9b668390448.
No native human disposition is claimed yet. Evidence and exact pins are retained
in docs/evidence/2026-10-05-lifecycle-cutover/. Issuer rotation is a separate
Platform residual, RPF-IN-0004; it was neither performed nor authorized here.

View file

@ -9,7 +9,7 @@
"name": "state-hub-memo-dispatch",
"namespace": "state-hub",
"annotations": {
"state-hub.coulomb.social/admission": "proposal; STATE-WP-0096 / INFD-WP-0007 approved rollout required"
"state-hub.coulomb.social/admission": "approved; INFD-WP-0007 cutover"
}
},
"spec": {
@ -31,7 +31,7 @@
"name": "state-hub-memo-dispatch",
"namespace": "state-hub",
"annotations": {
"state-hub.coulomb.social/admission": "proposal; STATE-WP-0096 / INFD-WP-0007 approved rollout required"
"state-hub.coulomb.social/admission": "approved; INFD-WP-0007 cutover"
}
},
"spec": {
@ -131,6 +131,42 @@
]
}
}
],
"initContainers": [
{
"name": "prepare-private-queue",
"image": "forgejo.coulomb.social/coulomb/state-hub-memo-dispatch@sha256:410fb6b6c9fd7a7ee0b63d727fd3249fb3ae13943421d6a5ce88b7ad2520bd2f",
"command": [
"python",
"-c",
"import os, stat\np='/data/private'\ntry:\n os.mkdir(p, 0o700)\nexcept FileExistsError:\n pass\nfd=os.open(p, os.O_RDONLY | os.O_DIRECTORY | os.O_NOFOLLOW)\ntry:\n info=os.fstat(fd)\n if info.st_uid != os.getuid():\n raise SystemExit('queue owner refused')\n mode=stat.S_IMODE(info.st_mode)\n if mode == 0o2700 and not os.listdir(fd):\n os.fchmod(fd, 0o700)\n elif mode != 0o700:\n raise SystemExit('queue mode refused')\nfinally:\n os.close(fd)\n"
],
"securityContext": {
"allowPrivilegeEscalation": false,
"readOnlyRootFilesystem": true,
"capabilities": {
"drop": [
"ALL"
]
}
},
"resources": {
"requests": {
"cpu": "5m",
"memory": "24Mi"
},
"limits": {
"cpu": "100m",
"memory": "96Mi"
}
},
"volumeMounts": [
{
"name": "queue",
"mountPath": "/data"
}
]
}
]
}
}
@ -143,7 +179,7 @@
"name": "state-hub-memo-dispatch",
"namespace": "state-hub",
"annotations": {
"state-hub.coulomb.social/admission": "proposal; STATE-WP-0096 / INFD-WP-0007 approved rollout required"
"state-hub.coulomb.social/admission": "approved; INFD-WP-0007 cutover"
}
},
"spec": {