• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kubernetes-sigs / lws / 29021475537
58%

Build:
DEFAULT BRANCH: main
Ran 09 Jul 2026 01:31PM UTC
Jobs 1
Files 25
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

09 Jul 2026 01:28PM UTC coverage: 55.818%. Remained the same
29021475537

push

github

web-flow
KEP-849: Per-role HPA support for DisaggregatedSet (#910)

* KEP-849: Per-role HPA support for DisaggregatedSet

Adds a KEP proposing per-role autoscaling for DisaggregatedSet through a
new lightweight DisaggregatedSetRoleScaler CRD that exposes the /scale
subresource. HPA, KEDA, or any /scale-aware controller can then drive
replicas for a single role (e.g., prefill or decode) independently.

Motivation: pointing an HPA directly at the underlying LeaderWorkerSet
breaks because LWS names include a revision hash (e.g.,
myds-6ad7c921-prefill), so the HPA orphans on every rolling update.

Design:
- A DisaggregatedSetRoleScaler targets exactly one (DisaggregatedSet,
  role) pair via targetRef and exposes /scale.
- DisaggregatedRoleSpec gains a Scaling sub-struct with Mode:
  Static (default, today's behavior) or External.
- When a role is External, the DS controller reads the desired replica
  count from the scaler and writes back status.replicas and
  status.selector so the HPA feedback loop closes across rollouts.
- Fully opt-in and per-role: DisaggregatedSets without any scaler
  behave exactly as they do today.

Rolling-update interaction is specified: the scaler drives only the
new-revision target, old revisions keep their existing snapshot-and-drain
behavior, and a monotonicity guard prevents an HPA scale-down from
reversing a rollout in progress.

Refs: #849

* KEP-849: Scope alpha to single-slice; document slices interaction

KEP-846 (DisaggregatedSet Slices) was merged after this KEP was drafted.
It adds spec.slices to DisaggregatedSet, replicating the whole role
topology into N independent copies with slice-aware LWS naming and
per-slice rollouts.

This raises unresolved design questions for scaler scope, selector
composition, and rolling-update interaction when slices > 1. Rather
than prejudge them, alpha scopes explicitly to spec.slices == 1:

- Add a "Interaction with DisaggregatedSet Slices" section that
  summarizes KEP-846's impact and enum... (continued)

2173 of 3893 relevant lines covered (55.82%)

47.57 hits per line

Jobs
ID Job ID Ran Files Coverage
1 29021475537.1 09 Jul 2026 01:31PM UTC 25
55.82
GitHub Action Run
Source Files on build 29021475537
  • Tree
  • List 25
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 7072b297 on github
  • Prev Build on main (#28961064020)
  • Next Build on main (#29336971349)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc