Skip to content

Add job pod ephemeral-storage request/limit flags#308

Draft
wesleyjellis wants to merge 1 commit into
mainfrom
add-job-pod-ephemeral-storage-flags
Draft

Add job pod ephemeral-storage request/limit flags#308
wesleyjellis wants to merge 1 commit into
mainfrom
add-job-pod-ephemeral-storage-flags

Conversation

@wesleyjellis

@wesleyjellis wesleyjellis commented Jul 6, 2026

Copy link
Copy Markdown

Why

During the 2026-07-06 us-prod incident, runner-jobs pods each wrote 14–26 GB of ephemeral storage with no request/limit declared (request is 0 in the kubelet eviction events). The scheduler packed ~10 such jobs per node, driving node root filesystems from ~24% to 95–99%, putting six nodes into DiskPressure, and causing the kubelet to evict job pods mid-run — surfacing as runner job timeouts. Investigation notebook: https://app.datadoghq.com/notebook/14931018

What

  • New flags --job-pod-requests-ephemeral-storage and --job-pod-limits-ephemeral-storage (both in MB, matching the memory flags' units)
  • Both default to 0 = unset, so existing deployments see no behavior change until they opt in
  • Wired into ReadPodConfig in src/pkg/k8s_config.go; ephemeral-storage entries are added to the ResourceLists only when > 0 (a literal 0 limit would kill any pod that writes anything). A pod config file can still override/extend resources as before.
  • Tests covering unset-by-default and set cases, plus a changie entry

Rollout

After release, set --job-pod-requests-ephemeral-storage=5120 (or similar) in opslevel-kubernetes runner deployments. A limit can follow once we settle on how to bound customer repo clones.

🤖 Generated with Claude Code

Add --job-pod-requests-ephemeral-storage and
--job-pod-limits-ephemeral-storage (both in MB, default 0 = unset) so
job pods can declare ephemeral storage. Without a request, the
scheduler packs disk-hungry jobs onto one node until the kubelet hits
DiskPressure and evicts them mid-run.

Both flags default to unset, so existing deployments are unaffected
until they opt in. A pod config file can still override or extend
Resources as before.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@wesleyjellis wesleyjellis force-pushed the add-job-pod-ephemeral-storage-flags branch from 0603bf7 to ccd0a52 Compare July 6, 2026 19:21
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.

1 participant