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
4 KiB
| id | type | title | domain | repo | status | flavor | owner | topic_slug | created | updated | related | state_hub_workstream_id | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NK-WP-0052 | workplan | Wave-2 resource right-sizing from the 2026-10-21 allocation review | infotech | net-kingdom | ready | implementation | claude | netkingdom | 2026-10-21 | 2026-10-21 |
|
7eaae0ab-19e6-533a-b3d1-11d11fa56210 |
NK-WP-0052 — Wave-2 resource right-sizing from the 2026-10-21 allocation review
Receiving workplan in net-kingdom for the wave-2 request changes below. Login path for the whole fleet; apply one Deployment at a time and test sign-in after each.
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
id: NK-WP-0052-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)"
state_hub_task_id: "a69cd984-3c32-5087-9438-913c37e309f6"
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 |
|---|---|---|---|---|---|---|---|---|---|
mfa/net-kingdom-sso-mfa |
1 | 110m → 20m | 1000m | 12.2/23.1 | 384Mi → 272Mi | 896Mi | 225.6/225.8 | 0.049 | decrease + memory down |
sso/net-kingdom-sso-mfa |
4 | 150m → 40m | 1150m | 22.4/34.5 | 256Mi → 176Mi | 640Mi | 140.5/179.1 | 0.537 | decrease + review CPU limit (throttled) + memory down |
Source and container detail:
mfa/net-kingdom-sso-mfa: namespacemfa: Deploymentprivacyidea, containerprivacyidea(sso-mfa/k8s/privacyidea/deployment.yaml, 100m/256Mi) plus the remaining 10m/128Mi in the same pod (confirm which container) — split the 20m/272Mi proposal across them. Also ~5% throttling at the 500m container limit.sso/net-kingdom-sso-mfa: namespacesso, four Deployments:keycape(25m/32Mi, limit 200m,sso-mfa/k8s/keycape/deployment.yaml),lldap(50m/64Mi, limit 200m),authelia(50m/128Mi, limit 500m),identity-provisioner(25m/32Mi, limit 250m). 53.7% of CFS periods throttled on the login path: find the throttled container(s) and review their CPU limit independently of the request decrease.
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:
- 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.jsonand keep the sum at the proposed value. - Prepare the source change as a reviewed commit (no push, no sync) and record the before values here.
- 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.