Engprod 10109 right size ephemeral resources - #1802
Draft
ffeghali wants to merge 2 commits into
Draft
Conversation
ENGPROD-10109 Right-size CPU/memory requests and limits for all 7 Clowder-internal ephemeral containers based on 30-day Prometheus usage data (12,572 namespaces, July 2026). Values computed using ADR-046 formula: CPU req = P95×1.2/2, CPU lim = Max×1.2, Mem req = P95×1.2, Mem lim = Max×1.2. Containers reduced (over-provisioned): - keycloak-db: CPU 50m/100m → 23m/70m, Mem 100Mi/200Mi → 57Mi/258Mi - featureflags-db: CPU 50m/100m → 17m/77m, Mem 100Mi/200Mi → 58Mi/262Mi - featureflags-edge: CPU 100m/200m → 7m/20m, Mem 200Mi/400Mi → 24Mi/139Mi - mbop: CPU 50m/100m → 1m/6m, Mem 100Mi/200Mi → 18Mi/113Mi - mocktitlements: CPU 50m/100m → 1m/3m, Mem 100Mi/200Mi → 10Mi/40Mi Containers raised (under-provisioned): - keycloak: CPU 100m/1000m → 598m/1201m, Mem 400Mi/750Mi → 728Mi/1434Mi - featureflags: CPU 50m/100m → 40m/118m, Mem 100Mi/200Mi → 240Mi/423Mi Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ENGPROD-10109 Right-size CPU/memory requests and limits for all 7 Clowder-internal ephemeral containers based on June 2026 Prometheus usage data. Values computed using ADR-046 formula: CPU lim = Max×1.2, CPU req = lim/2, Mem lim = Max×1.2, Mem req = lim. Containers reduced (over-provisioned): - keycloak-db: CPU 50m/100m → 26m/53m, Mem 100Mi/200Mi → 257Mi/257Mi - featureflags-db: CPU 50m/100m → 19m/39m, Mem 100Mi/200Mi → 137Mi/137Mi - featureflags-edge: CPU 100m/200m → 8m/17m, Mem 200Mi/400Mi → 72Mi/72Mi - mbop: CPU 50m/100m → 2m/3m, Mem 100Mi/200Mi → 111Mi/111Mi - mocktitlements: CPU 50m/100m → 1m/2m, Mem 100Mi/200Mi → 24Mi/24Mi Containers raised (under-provisioned): - keycloak: CPU 100m/1000m → 600m/1200m, Mem 400Mi/750Mi → 1089Mi/1089Mi - featureflags: CPU 50m/100m → 49m/99m, Mem 100Mi/200Mi → 366Mi/366Mi
Contributor
Author
|
/test-e2e |
ffeghali
marked this pull request as draft
July 17, 2026 18:15
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Right-size CPU and memory requests/limits for all 7 Clowder-managed ephemeral containers based on June 2026 Prometheus usage data.
Values are computed using the ADR-046 formula (same as app-interface-recommendations):
Over-provisioned (reduced)
5 containers were significantly over-provisioned — some by 90%+ on CPU:
Under-provisioned (raised)
2 containers were running at or above their limits:
Keycloak's max CPU hit 1000m against a 1000m limit, and max memory was 907Mi against a 750Mi limit — already exceeding its limit. Featureflags max memory was 305Mi against a 200Mi limit.
Net impact per namespace
Overall CPU limits decrease. Memory requests increase because the formula sets req = lim (safer scheduling). Memory limits decrease slightly net. The 2 under-provisioned containers (keycloak, featureflags) account for all the increases — the other 5 are pure savings.
Data source
recommend_clowder.py --month 2026-06namespace=~"ephemeral-.*"Files changed
controllers/cloud.redhat.com/providers/web/resources_keycloak.go— keycloak-db, keycloakcontrollers/cloud.redhat.com/providers/featureflags/localfeatureflags.go— featureflags-db, featureflags, featureflags-edgecontrollers/cloud.redhat.com/providers/web/resources_mbop.go— mbopcontrollers/cloud.redhat.com/providers/web/resources_mocktitlements.go— mocktitlements