Prepare authenticated lifecycle runtime and production release candidate
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a10780-6d41-7952-9718-dfbc1f41236f
This commit is contained in:
parent
f3b71b1521
commit
4f546ae3b1
41 changed files with 2598 additions and 52 deletions
96
deploy/lifecycle/README.md
Normal file
96
deploy/lifecycle/README.md
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
# 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.**
|
||||
|
||||
| Artifact | Immutable reference |
|
||||
| --- | --- |
|
||||
| Service | forgejo.coulomb.social/coulomb/informed-decision@sha256:2768bd1da3e651cc0be2d0f1ae6eea1af4eb057b31ef63ebb03b004c2ed76c3d |
|
||||
| Access Engine | forgejo.coulomb.social/coulomb/flex-auth@sha256:f6ed8af69af766d7e9498465a23c292d91185b79352065736a2132216aac1d37 |
|
||||
| Lifecycle package | informed-decision.lifecycle v1, sha256:cee6a79f74e81d0d389a2c2e2451a92be3434ea9dfcee4986e8c7e6cfdbb1827 |
|
||||
| Human review package | informed-decision.compact-sitting v12, sha256:c5387f7d198dc39ab5967e0c218ce05cc779693565c8875e3035e45ec002a2db |
|
||||
|
||||
`admission.candidate.json` renders `service.candidate.json` using
|
||||
`tools/render_deployment.py`. `registries.candidate.json` projects the three
|
||||
sibling JSON registries. The policy YAML is Helm-rendered from Access Engine's
|
||||
FLEX-WP-0033 candidate values; it is a review artifact, not a second deployment
|
||||
owner. Existing Helm releases must be updated through their owning workflow.
|
||||
All 25 proposed objects passed Kubernetes 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
|
||||
|
||||
- Replace the service's image and immutable runtime ConfigMap, retaining its
|
||||
public Service/Ingress, single writer, Recreate strategy and existing PVC.
|
||||
- Enable `/decisions` and lifecycle audit delivery; keep private API on 8081.
|
||||
- Add the exact State Hub peer, API-server egress, CA/token projection and only
|
||||
create-tokenreviews RBAC for informed-decision/review.
|
||||
- Mount the proposed reloadable registries and Platform's exact read-only
|
||||
requester Secret projection, without subPath.
|
||||
- Add a separate lifecycle PDP and change the sitting PDP to the v12 package.
|
||||
Review retains all v11 exact mandates and 15-minute KeyCape MFA; lifecycle
|
||||
authoring uses a 12-hour MFA window. Agents cannot accept.
|
||||
- Initial intake permits decision-record / net-kingdom-admins, 50 new attempts
|
||||
per UTC day, with the existing platform-root recipient. Other admins may
|
||||
collaborate; this does not silently make them the bound recipient.
|
||||
|
||||
The policy chart retains the owner's existing port-only API-server egress
|
||||
(443/6443). The consumer's new API-server egress is address-specific. CARING is
|
||||
advisory and consumer fact attribution is unsigned, as in the existing reviewed
|
||||
contract; neither is presented as a newly enforced control.
|
||||
|
||||
## Pre-cutover gates
|
||||
|
||||
1. RPF-WP-0051 / CCR-2026-0032: complete the already prepared requester delivery
|
||||
under its separate live go, with exact identity/path negative proofs and
|
||||
mounted-file refresh/rotation evidence. Only the audit ExternalSecret was
|
||||
present in the live namespace at inspection.
|
||||
2. INFD-WP-0005-T08: State Hub owner supplies production forwarding and separate
|
||||
lifecycle/intake audience token projections. Its current dev fixture is not
|
||||
an activated forwarder. Confirm notification receiver reachability; keep
|
||||
resolution write-back disabled until its owner admission.
|
||||
3. Refresh live image/config pins and unresolved-entry counts; complete the
|
||||
backup/restore steps below; obtain explicit approval of this concrete rollout.
|
||||
INFD-WP-0007-T07 and CCR-2026-0032 require this distinct go.
|
||||
|
||||
## Cutover and recovery procedure
|
||||
|
||||
Before migrating, close new review traffic through the owning ingress workflow,
|
||||
let active requests finish, and inspect the current schema-2 writer read-only.
|
||||
The observed baseline was 24 confirmed submissions, 158 delivered outbox rows,
|
||||
zero unresolved entries; these counts are not a future maintenance-window gate.
|
||||
Retain the exact current Deployment, Service, runtime ConfigMap, Helm values and
|
||||
all related policy pins. Do not include credentials in the evidence packet.
|
||||
|
||||
Use the existing running image's installed `informed-decision-admin backup` to
|
||||
create a unique SQLite consistent snapshot in a private directory. Copy the
|
||||
backup to independently protected custody, record its digest, and verify a
|
||||
restore on a separate private volume before cutover. Close the old writer before
|
||||
starting the schema-5 image. Local synthetic restore proof is retained in the
|
||||
evidence directory; it does not replace this production data restoration check.
|
||||
|
||||
Deploy admitted owner policy/custody prerequisites, then the service candidate.
|
||||
Verify `/healthz`, `/readyz`, pending/blocked counts, actual audience isolation,
|
||||
wrong-caller refusals and public/private route separation. Exercise two new
|
||||
records and a revision without changing image/config/package pins. Only a human
|
||||
may finish review. Correlate the native Approval Engine entry and independent
|
||||
Audit Core receipts; restart and retrieve the same immutable evidence.
|
||||
|
||||
If validation fails, stop the candidate and retain its database plus all new
|
||||
receipts. **Never start the old schema-2 image on the schema-5 database.** Rollback
|
||||
requires the verified pre-cutover copy on a separate volume and reconciliation
|
||||
of every post-cutover external effect before resuming writes. An uncertain
|
||||
submission stays unresolved; do not retry or discard it to enable rollback.
|
||||
The prior image is in ../sitting-admission.json and remains a reference, not an
|
||||
instruction to downgrade the live database.
|
||||
|
||||
## Validation evidence
|
||||
|
||||
`docs/evidence/2026-10-04-lifecycle-release/` retains container checks, bounded
|
||||
scan summaries and policy validation. Service: 662 passed, 1 skipped with owner
|
||||
components; 13 container checks passed, including restart and backup/restore.
|
||||
Both artifact scans contain zero HIGH/CRITICAL findings. Actual evaluator tests
|
||||
cover first-audience collaboration across revisions and verify unchanged package
|
||||
pins; authentication custody in those tests is synthetic. Native activation and
|
||||
broader browser packet/binding profiles remain explicit workplan tasks.
|
||||
Loading…
Add table
Add a link
Reference in a new issue