state-hub/docs/evidence/2026-10-21-resource-wave1/before.json
tegwick a6afb08d82
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Build and Publish Multi-Context Image / build-and-push (push) Successful in 28s
STATE-WP-0099: wave-1 node allocation — API 390m, state-hub-db 70m/416Mi, preflight surge derived from values
Receives the State Hub rows of the 2026-10-21 node allocation review
(CUST-WP-0071 T03/T04, RESOURCE-WP-0008). The release preflight now derives
the API surge from the values the release deploys instead of the stale 100m
STATE-WP-0091 constant, and reports the steady remainder after rollout.
Ordering: apply after rail-knative reductions, before forge/telemetry increases.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 8340@bnt-lap001
Assistant-Session: 2e192b3d-b3e8-4403-94d4-d55a2c8b476c
2026-10-21 08:44:32 +02:00

172 lines
4.6 KiB
JSON

{
"schema": "state-hub.resource-wave1-before.v1",
"workplan": "STATE-WP-0099",
"related": [
"CUST-WP-0071",
"RESOURCE-WP-0008",
"STATE-WP-0091"
],
"observed_at": "2026-10-21T06:39:56.971454+00:00",
"collected_by": "claude-code (read-only: kubectl get, helm history, curl /state/health)",
"node": {
"name": "239.62.205.92.host.secureserver.net",
"allocatable_cpu_m": 4000,
"allocatable_memory_mi": 15993,
"requested_cpu_m": 3605,
"requested_memory_mi": 9856,
"unrequested_cpu_m": 395
},
"helm": {
"release": "state-hub",
"namespace": "state-hub",
"revision": 77,
"status": "deployed",
"updated": "2026-10-17T01:53:02Z",
"app_version": "main-5dd3df9",
"rollback_target_revision": 77,
"note": "effective resources taken from the live Deployment specs below; release values were not dumped"
},
"deployments": {
"state-hub": {
"replicas": 1,
"strategy": {
"rollingUpdate": {
"maxSurge": 1,
"maxUnavailable": 0
},
"type": "RollingUpdate"
},
"containers": {
"state-hub": {
"limits": {
"cpu": "1",
"memory": "2Gi"
},
"requests": {
"cpu": "250m",
"memory": "512Mi"
}
}
}
},
"state-hub-mcp": {
"replicas": 1,
"strategy": {
"rollingUpdate": {
"maxSurge": 1,
"maxUnavailable": 0
},
"type": "RollingUpdate"
},
"containers": {
"state-hub-mcp": {
"limits": {
"cpu": "500m",
"memory": "512Mi"
},
"requests": {
"cpu": "10m",
"memory": "128Mi"
}
}
}
},
"state-hub-memo-dispatch": {
"replicas": 1,
"strategy": {
"type": "Recreate"
},
"containers": {
"dispatcher": {
"limits": {
"cpu": "100m",
"memory": "96Mi"
},
"requests": {
"cpu": "5m",
"memory": "24Mi"
}
}
}
}
},
"pods": {
"state-hub-6c5b9c676-8chmx": {
"phase": "Running",
"ready": true,
"restarts": 0,
"started": "2026-10-17T01:53:16Z"
},
"state-hub-mcp-b955b86b4-x849p": {
"phase": "Running",
"ready": true,
"restarts": 0,
"started": "2026-10-17T01:53:16Z"
},
"state-hub-memo-dispatch-5758dd4c-pk87d": {
"phase": "Running",
"ready": true,
"restarts": 1,
"started": "2026-10-04T22:10:30Z"
}
},
"state_hub_db": {
"cluster_spec_resources": {},
"instances": 1,
"managed_by_label": "manual",
"pod": "state-hub-db-1",
"pod_container_resources": {
"postgres": {}
},
"pod_restarts_lifetime": 214,
"last_termination": {
"terminated": {
"containerID": "containerd://bf9293a209739e5611aeeb0c012ba10230b16bbcac8363be4475a8da2bc62a61",
"exitCode": 255,
"finishedAt": "2026-10-14T18:21:45Z",
"reason": "Unknown",
"startedAt": "2026-08-15T22:30:35Z"
}
},
"note": "restart count is lifetime since 2026-07-06; last termination 2026-10-14 exitCode 255 reason Unknown (node-level restart), not a resource kill. Baseline for 'no new restarts'."
},
"hub_health": {
"status": "ok",
"db": "connected",
"instance_role": "primary",
"schema_applied": "c4d5e6f7a8b9"
},
"mcp": {
"service": "10.43.110.80:8001",
"endpoint": "10.42.0.60",
"pod_ready": true,
"note": "no workstation forward on :8001; verified by Ready pod + endpoint"
},
"preflight_before_change": {
"schema": "state-hub.release-headroom-preflight.v1",
"ok": true,
"observed_at": "2026-10-21T06:39:56.971454+00:00",
"freshness_seconds": 0,
"remaining_cpu_m": 395,
"remaining_memory_bytes": 6435315712,
"pending_unrelated_cpu_m": 0,
"api_surge_cpu_m": 100,
"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"
]
},
"review_inputs": {
"railiance_apps": "2 pods 260m (API 250 + MCP 10) -> 390 proposed; p95 258.5m, peak 975m, throttle 0.0",
"state_hub_db": "0 -> 70m / 0 -> 416Mi; p95 36.7m peak 133.2m; mem p95 349Mi peak 359Mi"
}
}