Skip to content

fix(hermes-sre): lower hermes-ws session pod CPU request 500m -> 100m - #909

Open
igou-hermes[bot] wants to merge 1 commit into
mainfrom
sre/hermes-session-cpu-request
Open

fix(hermes-sre): lower hermes-ws session pod CPU request 500m -> 100m#909
igou-hermes[bot] wants to merge 1 commit into
mainfrom
sre/hermes-session-cpu-request

Conversation

@igou-hermes

@igou-hermes igou-hermes Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Proposed by hermes-sre from KubeCPUOvercommit (kube-system), firing 2026-09-09T02:23Z — incident issue igou-io/igou-inventory#718.

Diagnosis: The firing branch of KubeCPUOvercommit is the single-node-failure margin: OCP-side pod CPU requests must stay below total allocatable minus the largest node (58 - 19.5 = 38.5). At 2026-09-09T02:23Z requests were 38.922 → overcommit +0.422, exactly the alert value. Verified via Thanos with the OCP-only series split (the federated rk8s view sums to 98 allocatable and shows no overcommit; the alert evaluates on openshift-monitoring/k8s which sees only the 4 OCP nodes).

Attribution: 48h per-namespace request drift on the OCP source shows exactly one mover: hermes-sre +2.000 — the four hermes-ws-* session pods (MAX_SESSIONS=4), each requesting 500m. Actual namespace usage is ~0.109 cores over 1h — the requests are pure paper guarantee.

Change: applications/hermes-sre/hermesinstance.yaml — session workspace container resources.requests.cpu: 500m100m (limits untouched at 4 CPU / 8Gi). This is the remediation already recommended in the #718 thread on 2026-09-08 when the same crossing happened; it recurred today. Worst-case burst (4 sessions × 4 CPU limit) is unchanged; only the reservation drops. After the change, 4 idle sessions reserve 0.4 instead of 2.0, keeping the single-node-failure margin positive during normal operation.

Validation: kustomize build applications/hermes-sre renders 46 docs and the CR carries the new value; yamllint -c .yamllint clean.

Note: cursor-agent hit its provider usage limit, so this one-line value edit was applied directly by hermes-sre after its failure; diff reviewed and validated as above.

Not merging — human review requested. ArgoCD applies after merge.

Four concurrent session pods at 500m consume 2 full cores of requests;
combined with the rest of the cluster this repeatedly crosses the
KubeCPUOvercommit single-node-failure margin (38.922 requested vs 38.5
allowed when the largest node is lost). Real usage is ~0.1 core for the
namespace, so a 100m request keeps the guarantee while leaving limits
(4 CPU) untouched.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants