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

kubernetes-sigs / lws / 35967827648
85%

Build:
DEFAULT BRANCH: main
Ran 24 Sep 2026 07:08AM UTC
Jobs 1
Files 31
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

24 Sep 2026 07:06AM UTC coverage: 84.199% (-1.1%) from 85.258%
35967827648

push

github

web-flow
Add bounded group recovery for LeaderWorkerSet (#877)

* feat(lws): add fail-fast restart budget and dns publish opt-in

Signed-off-by: Peter Pan <Peter.Pan@daocloud.io>

* fix(lws): reconcile failed condition on leader pod updates

Signed-off-by: Peter Pan <Peter.Pan@daocloud.io>

* fix(lws): persist group restart counts across leader recreate

Signed-off-by: Peter Pan <Peter.Pan@daocloud.io>

* docs(kep): align KEP-820 publishNotReadyAddresses default with implementation

publishNotReadyAddresses is a *bool that defaults to true (unset/absent
preserves the historical behavior where LWS-owned headless Services
publish not-ready addresses). Also documents the eager per-leader
headless Service creation that closes the init-phase DNS timing race.

Signed-off-by: Peter Pan <Peter.Pan@daocloud.io>

* fix(lws): cap group restart counter growth and lock in publishNotReadyAddresses legacy default

- Only bump the group-restart-count annotation on the transition into the
  exhausted state (count == maxGroupRestarts). Repeated failure events from a
  crash-looping pod no longer grow the counter without bound or generate
  annotation patch churn on every event.
- Add a unit test for CreateHeadlessServiceIfNotExists covering the
  nil/unset -> true (historical hardcoded) default and the explicit
  true/false reconciliation on both create and update paths.

Signed-off-by: Peter Pan <Peter.Pan@daocloud.io>

* fix(lws): converge restart counters and filter the leader-pod watch

Review feedback:
- The budget read path now takes max(persisted, pod-annotation) instead of
  treating persisted==0 as "absent", and syncLeaderRestartCountAnnotation
  only raises the pod annotation (never downgrades), so a lagging side of
  the non-atomic patch pair can never undercount the budget. Added unit
  tests for both drift directions.
- The leader-pod watch on the LWS reconciler now uses a predicate:
  create/delete events still enqueue, and updates enqueue only when the
  group-re... (continued)

313 of 451 new or added lines in 4 files covered. (69.4%)

2 existing lines in 2 files now uncovered.

5526 of 6563 relevant lines covered (84.2%)

38.25 hits per line

Uncovered Changes

Lines Coverage ∆ File
104
80.69
-8.0% pkg/controllers/pod_controller.go
34
82.62
-1.35% pkg/controllers/leaderworkerset_controller.go

Coverage Regressions

Lines Coverage ∆ File
1
82.62
-1.35% pkg/controllers/leaderworkerset_controller.go
1
80.69
-8.0% pkg/controllers/pod_controller.go
Jobs
ID Job ID Ran Files Coverage
1 35967827648.1 24 Sep 2026 07:08AM UTC 31
84.2
GitHub Action Run
Source Files on build 35967827648
  • Tree
  • List 31
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • bfa360ac on github
  • Prev Build on main (#35962011961)
  • Next Build on main (#35969970682)
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