Summary
The OpenCode app container ships with a hardcoded resources.limits.memory: 4Gi in opencode/templates/opencode.yaml, while the app's own OlaresManifest.yaml declares limitedMemory: 24Gi / limitedCpu: 13. On an Olares One (96 GB RAM) this 4 GiB cap is routinely exceeded by memory-heavy subprocesses that OpenCode legitimately runs inside its sessions (dev servers, vitest --max-old-space-size=8192, etc.), producing OOMKilled restarts that silently kill every active session.
Evidence (live diagnosis, 2026-08-08)
- Pod
opencode container: reason: OOMKilled, exitCode: 137 — 31 restarts in 23 h.
- cgroup memory reached 4.26 GiB (over the 4 GiB limit) during a
npx vitest --max-old-space-size=8192 run, ~40 s before the next OOM kill.
- Every restart kills all in-flight sessions "silently"; reloading afterwards fails with envoy
upstream connect error or disconnect/reset before headers ... Connection refused until the container is back up.
- Hardcoded block in
opencode/templates/opencode.yaml:
resources:
limits:
cpu: "4"
memory: 4Gi
requests:
cpu: 200m
memory: 1Gi
vs. the manifest:
requiredMemory: 2304Mi
limitedMemory: 24Gi
limitedCpu: 13
Suggested fix
- Raise the hardcoded container memory limit (e.g. 8–12 GiB) to match the declared
limitedMemory: 24Gi, and/or
- Make the resource limits configurable via
values.yaml / an env var instead of hardcoding them.
Workaround (applied successfully)
Patching the Deployment to limits.memory: 12Gi resolves the OOM loop (0 restarts after rollout).
Environment
- Olares app:
opencode 1.0.18 (image beclab/opencode:1.18.9.1), source market.olares
- Olares One, 96 GB RAM / 24 cores, NVIDIA RTX 5090
Summary
The OpenCode app container ships with a hardcoded
resources.limits.memory: 4Giinopencode/templates/opencode.yaml, while the app's ownOlaresManifest.yamldeclareslimitedMemory: 24Gi/limitedCpu: 13. On an Olares One (96 GB RAM) this 4 GiB cap is routinely exceeded by memory-heavy subprocesses that OpenCode legitimately runs inside its sessions (dev servers,vitest --max-old-space-size=8192, etc.), producing OOMKilled restarts that silently kill every active session.Evidence (live diagnosis, 2026-08-08)
opencodecontainer:reason: OOMKilled,exitCode: 137— 31 restarts in 23 h.npx vitest --max-old-space-size=8192run, ~40 s before the next OOM kill.upstream connect error or disconnect/reset before headers ... Connection refuseduntil the container is back up.opencode/templates/opencode.yaml:vs. the manifest:
Suggested fix
limitedMemory: 24Gi, and/orvalues.yaml/ an env var instead of hardcoding them.Workaround (applied successfully)
Patching the Deployment to
limits.memory: 12Giresolves the OOM loop (0 restarts after rollout).Environment
opencode1.0.18 (imagebeclab/opencode:1.18.9.1), sourcemarket.olares