From e64aaed618fdf816a29bbdda92b644afa991526a Mon Sep 17 00:00:00 2001 From: matthewberry Date: Wed, 4 Nov 2026 09:46:13 -0600 Subject: [PATCH 1/2] fix: give the oed-api container a 1Gi memory limit With no limit, a large /api/v1/data request could use all of a node's memory. On 2026-11-04 the kernel OOM-killed this container while the node itself went NotReady, evicting every pod on it, three times in about 75 minutes. With a limit, only this container is killed. --- chart/templates/deployment.yaml | 4 ++++ chart/values.yaml | 11 ++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml index 31f4f22..7f3014d 100644 --- a/chart/templates/deployment.yaml +++ b/chart/templates/deployment.yaml @@ -22,6 +22,10 @@ spec: imagePullPolicy: {{ .Values.controller.image.pullPolicy }} ports: - containerPort: {{ .Values.service.port }} +{{- with .Values.controller.resources }} + resources: + {{- toYaml . | nindent 12 }} +{{- end }} {{- if .Values.config.existingSecret }} # Load environment variable values from existing Secret envFrom: diff --git a/chart/values.yaml b/chart/values.yaml index 6426bd9..013d2e0 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -29,7 +29,16 @@ controller: pullPolicy: Always #pullSecrets: [] - # TODO: parameterize labels, tolerations, nodeSelector, resources, etc? + # Without a memory limit, one large request can exhaust the node's memory and take + # down every other pod on it (2026-11-04). With one, only this container is killed. + # A 5000-record /api/v1/data request peaks at about 260Mi. + resources: + requests: + memory: 256Mi + limits: + memory: 1Gi + + # TODO: parameterize labels, tolerations, nodeSelector, etc? # Define how to access this application over the network From aa58d13a81248bcf91bea3ab2ba5016e1a20b133 Mon Sep 17 00:00:00 2001 From: matthewberry Date: Wed, 4 Nov 2026 09:59:07 -0600 Subject: [PATCH 2/2] docs: drop the per-request memory figure that #8 makes stale --- chart/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chart/values.yaml b/chart/values.yaml index 013d2e0..37c0603 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -31,7 +31,7 @@ controller: # Without a memory limit, one large request can exhaust the node's memory and take # down every other pod on it (2026-11-04). With one, only this container is killed. - # A 5000-record /api/v1/data request peaks at about 260Mi. + # Idle, the container uses about 50-110Mi. resources: requests: memory: 256Mi