diff --git a/WORK-RECORDS.md b/WORK-RECORDS.md index abed2c2..4972ec1 100644 --- a/WORK-RECORDS.md +++ b/WORK-RECORDS.md @@ -51,6 +51,7 @@ | workplan | ACTIVITY-WP-0046 | active | — | workplans/ACTIVITY-WP-0046-repository-grant-v2-publish-scope.md | | workplan | ACTIVITY-WP-0047 | active | — | workplans/ACTIVITY-WP-0047-daily-security-flow-adoption.md | | workplan | ACTIVITY-WP-0048 | active | — | workplans/ACTIVITY-WP-0048-state-hub-execution-surface-switch-receipts.md | +| workplan | ACTIVITY-WP-0049 | ready | — | workplans/ACTIVITY-WP-0049-wave2-resource-right-sizing.md | | workplan | ACTIVITY-WP-ADHOC-2026-06-01 | finished | — | workplans/ADHOC-2026-06-01.md | | workplan | ACTIVITY-WP-ADHOC-2026-08-20 | finished | — | workplans/ADHOC-2026-08-20.md | | workplan | ACTIVITY-WP-ADHOC-2026-08-23 | finished | — | workplans/ADHOC-2026-08-23.md | @@ -277,6 +278,7 @@ | task | ACTIVITY-WP-0048-T01 | todo | — | workplans/ACTIVITY-WP-0048-state-hub-execution-surface-switch-receipts.md | | task | ACTIVITY-WP-0048-T02 | wait | — | workplans/ACTIVITY-WP-0048-state-hub-execution-surface-switch-receipts.md | | task | ACTIVITY-WP-0048-T03 | wait | — | workplans/ACTIVITY-WP-0048-state-hub-execution-surface-switch-receipts.md | +| task | ACTIVITY-WP-0049-T01 | wait | — | workplans/ACTIVITY-WP-0049-wave2-resource-right-sizing.md | | task | ACTIVITY-WP-ADHOC-2026-06-01-T01 | done | — | workplans/ADHOC-2026-06-01.md | | task | ACTIVITY-WP-ADHOC-2026-06-01-T02 | done | — | workplans/ADHOC-2026-06-01.md | | task | ACTIVITY-WP-ADHOC-2026-06-01-T03 | done | — | workplans/ADHOC-2026-06-01.md | diff --git a/workplans/ACTIVITY-WP-0049-wave2-resource-right-sizing.md b/workplans/ACTIVITY-WP-0049-wave2-resource-right-sizing.md new file mode 100644 index 0000000..6a2191d --- /dev/null +++ b/workplans/ACTIVITY-WP-0049-wave2-resource-right-sizing.md @@ -0,0 +1,54 @@ +--- +id: ACTIVITY-WP-0049 +type: workplan +title: "Wave-2 resource right-sizing from the 2026-10-21 allocation review" +domain: infotech +repo: activity-core +status: ready +flavor: implementation +owner: claude +topic_slug: activity-core +created: "2026-10-21" +updated: "2026-10-21" +related: + - CUST-WP-0071 + - RESOURCE-WP-0008 +--- + +# ACTIVITY-WP-0049 — Wave-2 resource right-sizing from the 2026-10-21 allocation review + +Receiving workplan in `activity-core` 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: ACTIVITY-WP-0049-T01 +status: wait +priority: medium +needs_human: true +blocking_reason: "Wave-2 cluster write; founder approval for wave 2 not yet given (2026-10-21 interview)" +``` + +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 | +|---|---:|---:|---:|---:|---:|---:|---:|---:|---| +| `activity-core/activity-core` | 10 | 100m → **100m** | 1000m (8 container(s) without CPU limit) | 62.8/132.5 | 256Mi → **944Mi** | 1024Mi | 811.0/1011.0 | 0.0 | keep + memory up | + +Source and container detail: + +- `activity-core/activity-core`: ten pods in `k8s/railiance/10-infrastructure.yaml` (StatefulSets `actcore-app-db`, `actcore-temporal-db` with 50m/256Mi each, `actcore-nats`; Deployments `actcore-temporal`, `actcore-temporal-ui`) and `k8s/railiance/20-runtime.yaml`. CPU stays at 100m (within tolerance). Memory p95 811Mi vs 256Mi requested: raise the requests to a 944Mi total, distributed by each pod's p95. Eight containers have no CPU request or limit; give each at least the 5m floor. + +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 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.