reuse-surface/workplans/REUSE-WP-0026-wave2-resource-right-sizing.md
tegwick bf30d5e988
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
ci / validate-registry (push) Failing after 1m56s
Wave-2 right-sizing applied 2026-10-22 (CUST-WP-0071)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 276069@bnt-lap001
Assistant-Session: 2e192b3d-b3e8-4403-94d4-d55a2c8b476c
2026-10-22 00:50:27 +02:00

59 lines
4 KiB
Markdown

---
id: REUSE-WP-0026
type: workplan
title: "Wave-2 resource right-sizing from the 2026-10-21 allocation review"
domain: infotech
repo: reuse-surface
status: finished
flavor: implementation
owner: claude
created: "2026-10-21"
updated: "2026-10-21"
related:
- CUST-WP-0071
- RESOURCE-WP-0008
state_hub_workstream_id: "d0b06425-2d20-5816-bd09-9e9bec846236"
---
# REUSE-WP-0026 — Wave-2 resource right-sizing from the 2026-10-21 allocation review
Receiving workplan in `reuse-surface` for the wave-2 request changes below.
Origin: the 2026-10-21 node allocation review (`RESOURCE-WP-0008-T03`, feeding `CUST-WP-0071-T03`). Per the founder's 2026-10-21 delivery interview (`the-custodian/docs/decisions/2026-10-21-cust-wp-0071-delivery-interview.md`) the small adjustments form wave 2: one receiving task per owner repo, applied later in a batch. Applying wave 2 needs a separate founder approval, so every cluster-write task here is a human-gated `wait`. This file changes no manifest.
## Apply the reviewed request changes
```task
id: REUSE-WP-0026-T01
status: done
priority: medium
state_hub_task_id: "2fd47858-94d8-5a57-96f9-35b25d54bb1d"
```
Values are pod-aggregate figures from the budget file (7-day window ending 2026-10-21T06:08Z). Limits stay unchanged unless stated.
| Workload (ns/name) | Pods | CPU request | CPU limit | CPU p95/peak 7d (m) | Memory request | Memory limit | Mem p95/peak (Mi) | Throttle | Action |
|---|---:|---:|---:|---:|---:|---:|---:|---:|---|
| `reuse/reuse-surface` | 2 | 110m → **10m** | 550m | 2.1/10.2 | 288Mi → **80Mi** | 576Mi | 56.2/57.0 | 0.0 | decrease + memory down |
Source and container detail:
- `reuse/reuse-surface`: two pods from `railiance-apps/charts/reuse-surface/values.yaml`: main `resources` (100m/256Mi) and the second component's `resources` (10m/32Mi) — the chart lives in railiance-apps. Split the 10m/80Mi total as 5m/48Mi main and 5m/32Mi second, or by per-pod p95.
**Prepared 2026-10-21 (wave-2 worker W1a; not applied).** Live owner is Helm release `reuse` (rev 11) from railiance-apps. Change: railiance-apps `b7fb7b2`, `helm/reuse-surface-values.yaml`. Split by per-pod p95: main 100m/256Mi → 5m/64Mi (p95 about 51Mi, so 48Mi would have sat below the working set); landing 10m/32Mi → 5m/16Mi. Total 10m/80Mi, limits unchanged. The full render against live shows only `resources.requests` on both Deployments. Apply: `cd railiance-apps && make reuse-deploy`. RollingUpdate.
Evidence: resource-control `docs/evidence/2026-10-21-node-allocation-review/2026-10-21-node-budget.md` (+ `.json`, commit `3d9b1bd`). Rule: CPU = max(floor, p95x1.5, peakx0.5) rounded up to 5m; memory request = 7d p95 working set x1.15 (only when the change is at least 64Mi).
Steps:
1. Map the pod-aggregate proposal onto the named container(s) in the source file; where a workload has several containers or pods, split by the per-pod figures in `2026-10-21-workload-usage.json` and keep the sum at the proposed value.
2. Prepare the source change as a reviewed commit (no push, no sync) and record the before values here.
3. Apply only inside the batched wave-2 rollout, after founder approval, through the owner's normal deploy path (ArgoCD sync or documented helm/kubectl apply).
Verification: `kubectl -n <ns> get pod -o jsonpath='{..resources}'` shows the new requests; pods Ready with no new restarts or OOMKilled over 24h; for CPU decreases the throttle ratio and request latency stay at or below the 7d baseline; node request total drops by the expected delta.
Rollback: revert the source commit and re-sync/re-apply; the before values in the table above are the rollback target. Keep before/after `kubectl get -o yaml` captures as the receipt.
## Applied — 2026-10-22 (REUSE-WP-0026-T01)
Applied under the founder's wave-2 authorization (the-custodian docs/decisions/2026-10-21-cust-wp-0071-delivery-interview.md), after a full-render diff against live that showed resources only. railiance-apps `make reuse-deploy`, Helm revision 12; main and landing are Ready. Evidence: the-custodian docs/evidence/2026-10-22-wave2-apply.md.