railiance-cluster/workplans/RCLUSTER-WP-0014-capacity-utilization-and-allocation-evidence.md
codex 33bf6e7f3d
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
fix(workplans): adopt ADR-007 derived identifiers for unregistered records
These workplans exist only in the retired local hub. Their random pre-ADR-007
identifiers are refused by C-06 as stale references, so they cannot be
registered. Deriving from the canonical record id takes no identity from
anything: central does not hold them and the old ids die with the cache.

Records central already holds were deliberately left untouched.

Refs CUST-WP-0068-T06

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 2583210@bnt-lap001
Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
2026-08-25 20:18:34 +02:00

4.4 KiB

id type title domain repo status owner topic_slug created updated related state_hub_workstream_id
RCLUSTER-WP-0014 workplan Publish cluster capacity, utilization, and allocation evidence financials railiance-cluster finished codex railiance 2026-08-11 2026-08-22
RAIL-BS-WP-0007
RESOURCE-WP-0003
ADR-0006
ADR-0008
73ff6641-eaf6-5546-8f0e-b5aa1aa7f35b

RCLUSTER-WP-0014 — cluster resource evidence

Goal

Publish reproducible non-secret evidence for resource:railiance:reef-railiance:k3s: capacity, requested and observed utilization, persistent-storage exposure, failure domains, and allocation drivers. Origin: RESOURCE-WP-0003-T04 delegated evidence gap.

This is ADR-0006 reef evidence (capacity headroom, failure-domain assumptions). It does not promote a binding to production-approved. It does not publish a public metrics listener (ADR-0008). Collect in-cluster or via the operator tunnel.

Current reality: one Ready node (railiance01), local storage, Traefik. Do not invent a three-domain map or report Longhorn as live capacity. RAIL-BS-WP-0007 is the HA target.

S2 publishes facts. reef-railiance cites them. resource-control / fin-hub allocate. No booked EUR in this repo.

T01 — Produce periodic cluster capacity observations

id: RCLUSTER-WP-0014-T01
status: done
priority: high
state_hub_task_id: "abc4980e-4103-5d63-9e05-5a198dc7988b"

Collect node count, allocatable CPU/memory/storage/pods, workload requests and limits, observed usage when metrics are available, and PVC requested capacity. Aggregate by namespace/workload without exposing Secret data or pod environment. Preserve observation time, cluster identity, units, unavailable metrics, and source commands.

Done when repeated observations use a stable machine-readable interface and resource-control can distinguish headroom, reservations, and actual usage.

Outcome (2026-08-22): make cluster-observe REMOTE=railiance01 now emits versioned, timestamped JSON with node allocatable/observed resources, namespace/workload requests and limits, PVC/PV/storage-class state, stable units, source commands, and explicit gaps without reading Secrets or pod environments.

T02 — Publish the failure-domain and storage contract

id: RCLUSTER-WP-0014-T02
status: done
priority: high
state_hub_task_id: "9e0dc15e-a853-512e-be44-71525ce0bc47"

Expose the current node-to-host/provider failure-domain map and the actual storage-class/PVC durability contract. Link the target ThreePhoenix work in RAIL-BS-WP-0007 without reporting target nodes or distributed storage as current capacity.

Done when consumers can calculate correlated-failure risk and recognize which state remains local to railiance01.

Outcome (2026-08-22): the evidence contract reports one Ready node, local-path storage, threephoenix_ready: false, and the missing independent region/zone labels. Target HA and Longhorn capacity are not represented as current facts.

T03 — Define technical allocation-driver evidence

id: RCLUSTER-WP-0014-T03
status: done
priority: medium
state_hub_task_id: "8a052726-e6f2-5852-aada-a14e67bca695"

Evaluate namespace/workload CPU-request hours, memory-request hours, PVC GB-month, and observed usage as allocation drivers. Publish numerator, denominator, residual/unallocated capacity, method version, and uncertainty; do not convert the result into booked spend.

Done when resource-control can create an explainable allocation and fin-hub can reconcile it to referenced financial facts.

Outcome (2026-08-22): cluster-raw-drivers-v1 publishes CPU requests, memory requests, PVC bytes, observed usage, totals, residual capacity, and uncertainty, while leaving formula selection and booked cost to resource-control.

Acceptance

  • Capacity evidence separates allocatable, requested, limited, and observed.
  • Current single-host/local-storage risk is machine-readable.
  • Allocation drivers reconcile to explicit totals and residuals.

Completion evidence

  • python3 -m unittest discover -s tests -p 'test_*.py' -v: 2 tests passed.
  • Live read-only capture: docs/evidence/resource-reef-railiance-k3s/observations/20260822T100349Z.json.
  • Observed totals: 1 node, 53 workloads, 25 claims; 4,000m allocatable CPU, 3,830m requested CPU, 16,770,076,672 allocatable memory bytes, and 137,438,953,472 requested PVC bytes.