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:
parent
b5b5a5aa7f
commit
3fe029d49e
11 changed files with 1059 additions and 55 deletions
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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": {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue