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

kubernetes-sigs / lws / 31589707578
59%

Build:
DEFAULT BRANCH: main
Ran 12 Aug 2026 11:00AM UTC
Jobs 1
Files 28
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

12 Aug 2026 10:57AM UTC coverage: 59.23% (+0.3%) from 58.882%
31589707578

push

github

web-flow
Populate DisaggregatedSet .status from owned LWS objects (#933)

* Populate DisaggregatedSet .status from owned LWS objects

The DisaggregatedSet controller reconciled LWS objects but never wrote
.status, leaving it permanently empty ({}). This adds:

- status.observedGeneration, mirroring LeaderWorkerSetStatus.
- status.roleStatuses[]: replicas/readyReplicas/updatedReplicas per role,
  aggregated across all slices and revisions of that role's LWS objects.
- status.conditions: Available when every role's replicas are fully
  ready and updated to the current revision, Progressing otherwise.

* Preserve LastTransitionTime when a condition's Status does not change

setDisaggregatedSetCondition reset LastTransitionTime on every write,
including when only ObservedGeneration advanced but the condition's
Status stayed the same. Per the metav1.Condition contract,
LastTransitionTime must only change on an actual Status transition;
otherwise every reconcile after a spec change looks like a fresh
transition to clients.

Reported by @Copilot in review.

* Filter LWS listing by controller owner UID; document role-removal contract

Address two review points from @yankay on #868:

- LeaderWorkerSetManager.List (and GetRevisionRolesList, which uses it)
  matched LWS by name/role labels only. An LWS that happens to carry the
  same labels but isn't actually owned by this DisaggregatedSet -
  hand-crafted, or left over from a same-named DisaggregatedSet that was
  deleted and recreated - could inflate the status replica counts. List
  now takes the DisaggregatedSet object and additionally filters results
  by metav1.IsControlledBy, matching every LWS this manager creates
  (which already carries a controller owner reference). Existing test
  fixtures that build LWS via a bare OwnerReference (missing
  Controller: true) are updated to match what the real Create() path
  sets, plus a new "unowned" fixture in TestManagerListSliceBucketing
  pins the exclusion directly.

-... (continued)

45 of 57 new or added lines in 3 files covered. (78.95%)

1 existing line in 1 file now uncovered.

2570 of 4339 relevant lines covered (59.23%)

47.19 hits per line

Uncovered Changes

Lines Coverage ∆ File
11
71.47
1.15% pkg/controllers/disaggregatedset/disaggregatedset_controller.go
1
93.43
1.05% pkg/controllers/disaggregatedset/lws_manager.go

Coverage Regressions

Lines Coverage ∆ File
1
93.43
1.05% pkg/controllers/disaggregatedset/lws_manager.go
Jobs
ID Job ID Ran Files Coverage
1 31589707578.1 12 Aug 2026 11:00AM UTC 28
59.23
GitHub Action Run
Source Files on build 31589707578
  • Tree
  • List 28
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • fb80447a on github
  • Prev Build on main (#31509650396)
  • Next Build on main (#31769206449)
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