73 lines
3.6 KiB
JSON
73 lines
3.6 KiB
JSON
{
|
|
"proposal_id": "STATE-WP-0095-T03-historical-receiving",
|
|
"revision": 1,
|
|
"source_commit": "5dd3df9c69eb564af10ea5ea01e349786212501a",
|
|
"image": "forgejo.coulomb.social/coulomb/state-hub:main-5dd3df9",
|
|
"source_sha256": "d6cb3e520ca75d3addeb1c0775c2b36f0e81252efd41a22ab2dd7f035207d05c",
|
|
"target": "railiance01 state-hub Helm API/MCP release",
|
|
"authority": "ADMINISTER @ realm:kubernetes/railiance01 activation=APPROVED only after founder disposition",
|
|
"tier": "production; owner Helm transition path, not adopted by ArgoCD",
|
|
"action": "helm -n state-hub upgrade state-hub /tmp/cust-historical-rollout/chart --reuse-values --set image.tag=main-5dd3df9 --atomic --timeout 3m",
|
|
"expected": "Receiving retains five exact frozen historical parents and 65 tasks, while refusing global UUID-holder collisions before INSERT",
|
|
"ci": "run564/job0 build successful; host/container smoke successful",
|
|
"validation": {
|
|
"state_hub": 155,
|
|
"memo_regression_preceding_release": 20,
|
|
"registrar_staged": 38,
|
|
"offline_historical_snapshot": "five parents/65 tasks, noop, no mutations, clean diff"
|
|
},
|
|
"dry_run": {
|
|
"status": "passed",
|
|
"render_sha256": "7075fa2ee253e48ccfd68f58e821e305675545f250ae11ceac046563e38bd521",
|
|
"changes": "image/version metadata and consequent config checksum only"
|
|
},
|
|
"headroom": {
|
|
"schema": "state-hub.release-headroom-preflight.v1",
|
|
"ok": true,
|
|
"observed_at": "2026-10-04T09:12:42.762124+00:00",
|
|
"freshness_seconds": 0,
|
|
"remaining_cpu_m": 555,
|
|
"remaining_memory_bytes": 6930239488,
|
|
"pending_unrelated_cpu_m": 0,
|
|
"api_surge_cpu_m": 250,
|
|
"mcp_surge_cpu_m": 10,
|
|
"migrate_cpu_m": 50,
|
|
"atomic": true,
|
|
"reasons": [],
|
|
"notes": [
|
|
"Aggregate remaining millicores is not a kube-scheduler guarantee.",
|
|
"Preflight does not lower requests and does not start Helm."
|
|
],
|
|
"hook_order": [
|
|
"pre-upgrade migrate job (helm.sh/hook-weight -5)",
|
|
"API RollingUpdate maxSurge=1 maxUnavailable=0",
|
|
"MCP RollingUpdate maxSurge=1 maxUnavailable=0"
|
|
]
|
|
},
|
|
"migration": "No new migration relative to live main-3791e60; existing additive head a0b1c2d3e4f5 retained",
|
|
"verification": "Ready API/MCP/image IDs/health/schema and deployed source digests. Fresh receiving snapshot must preserve historical UUID ownership/status/labels/retirement. Create sanitized STATE0095T03 verified receipt only after those checks; then apply gated exact-frozen registrar bundle, test actual registrar and normal owner sync. No task PATCH, retirement acknowledgement or stale-history cleanup. Retain and report unrelated refusal gates.",
|
|
"rollback": "helm rollback state-hub 71 --wait --timeout 3m; retain DB schema/data. If receiving verification fails do not apply registrar; if later registrar verification fails revert only explicit registrar code paths via reviewed source change.",
|
|
"cost_estimate": {
|
|
"currency": "EUR",
|
|
"incremental_cloud_commitment": 0,
|
|
"basis": "existing fixed-capacity node",
|
|
"operator_inference_cost": "not separately metered"
|
|
},
|
|
"risk_estimate": {
|
|
"currency": "EUR",
|
|
"credible_loss_bound": null,
|
|
"basis": "unpriced interruption/recovery uncertainty requires supervision; no autonomous EUR grant",
|
|
"controls": "atomic rollback, exact frozen sources, immutable historical refusal, no identity mutation or retirement acknowledgement"
|
|
},
|
|
"registrar_gate": {
|
|
"helper": "/tmp/apply-historical-registrar.py",
|
|
"receipt_fields": [
|
|
"task_id=STATE-WP-0095-T03",
|
|
"status=verified",
|
|
"deployed_commit",
|
|
"historical_preservation_verified=true",
|
|
"global_task_holder_guard_verified=true"
|
|
]
|
|
},
|
|
"approval": "pending"
|
|
}
|