Skip to content

Backlog ​

Open work on Headroom, highest priority first. 🔲 is ready to pick up, 🚫 is blocked, and 💤 is deferred until the trigger in its note fires. Each title opens the full item. Items live as files in docs/queue/ and are deleted when the work ships.

IDItemStSzNotes
Q74Stop release candidates moving latest and the Latest release🔲Sdocs/development/releasing.md offers a vX.Y.Z-rc.1 tag as a rehearsal, but release.yml treats every v* tag as final.
Q79Refuse a release tag on code no release candidate ran🔲SStep 3 of docs/development/releasing.md tags the release "on the same commit unless the validation …
Q58Measure controller memory, then strip pod fields from the cache🔲MThe controller caches full Pod objects for every pod in the cluster, where the design calls for stripping them.
Q69Settle how an empty pod-level resources block behaves on 1.35 and 1.36🔲SOn Kubernetes 1.35 and 1.36.1, a pod with an empty resources: {} is classed BestEffort whatever its containers request, so Headroom …
Q22Promote HeadroomConfig API to v1beta1🔲LEvent: the spec goes a full release cycle with no field changes and Q21 (Helm) has shipped — or Demand: an external consumer needs …
Q23Promote HeadroomConfig API to v1 (GA)💤LEvent: v1beta1 (Q22) soaks ≥2 releases with no incompatible change required, and Decision: Karl commits to GA backward-compat …
Q61Add the kubectl headroom explain plugin💤MDemand: an operator or tenant asks for per-pod arithmetic that the status annotation and dashboard do not answer.
Q62Ship a PrometheusRule with the recommended alerts💤SDemand: an operator asks for packaged alerts.
Q64Fix tenants.html scrolling sideways on phones🔲SThe landing page website/landing/tenants.html is 443px wide at both a 320px and a 390px viewport, so it scrolls sideways on a phone.
Q65Fix docs navbar overflowing tablets from 768 to 943px🔲SEvery docs page is 944px wide at any viewport from 768px to 943px, so it scrolls sideways on a tablet and a narrow desktop window.
Q68Manage pods with pod-level resources where the resize is allowed💤MDemand: someone runs pods with pod-level resources on a version whose InPlacePodLevelResourcesVerticalScaling gate is on and wants …
Q70Let a fractional LimitRange ratio cap reach the tight split🔲SUnder a fractional per-container maxLimitRequestRatio, a very small request holds a pod's cap at its total request, even though a higher …
Q77Keep the landing announcement banner readable on phones🔲SThe announcement banner on the landing page never wraps: .announce sets white-space: nowrap, overflow: hidden and `text-overflow …
Q71Share one client budget across REST clients, or state it per client🔲Scmd/main.go sets QPS and Burst on the rest config, and each REST client builds its own token bucket from them, so QPS 50 does not …
Q72Give pods skipped for a VPA a signal that outlives the event🔲SThe VPAManagesLimit warning is the only sign that a VPA is keeping Headroom off a pod.
Q75Clear the website dev-dependency Dependabot alerts🔲SOn 2026-11-06, gh api repos/karlkfi/kube-headroom/dependabot/alerts listed 12 open alerts, all development scope in …
Q76Stop e2e metric scrapes depending on a Docker Hub pull per pod🔲SThe e2e suite reads metrics by creating a pod from curlimages/curl:latest, as in …
Q80Cut e2e wall time back toward 10 minutes🔲SThe E2E Tests workflow on main took 13 min 40 s at 5b80a64 and at 7939147, up from about 10 min at aa95c0a and c8f64a7.
Q78Bring the contributor docs up to date with the repo🔲SThe v0.2.0 site review found contributor docs describing an earlier repo.