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

kubernetes-sigs / lws / 35909535330
85%
main: 85%

Build:
Build:
LAST BUILD BRANCH: fix-whole-lws-size-change
DEFAULT BRANCH: main
Ran 23 Sep 2026 07:32PM 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

23 Sep 2026 07:28PM UTC coverage: 85.258% (-0.04%) from 85.296%
35909535330

push

github

web-flow
[release-0.11] KEP-666: Support workload-aware scheduling with groupIdentity Hash (#1089)

* KEP-666: Support workload-aware scheduling with groupIdentity Hash

Phase 1 gang scheduling only worked with groupIdentity Ordinal, where the
LeaderWorkerSet controller can enumerate every replica instance from the
replica count. Admission rejected spec.scheduling with groupIdentity Hash.

With Hash identity a group is named by a key that admission draws for each
leader pod, so the replica and leader/worker PodGroups do not have names until
their leader exists. Every hash leader is already admitted with the
group-replacement scheduling gate, which gives the point where those PodGroups
can be created while the leader still cannot be scheduled. That preserves the
KEP-666 rule that a pod's leaf PodGroup exists before the pod is schedulable,
and keeps the PodGroups controller-owned by the LeaderWorkerSet rather than by
the leader pod.

- The Deployment reconcile path now compiles the Workload, and the whole-LWS
  PodGroup whose name is group independent, before applying the leader
  Deployment. Both identity modes share one helper.
- The kubernetes provider defers replica and role PodGroups to
  CreatePodGroupIfNotExists under Hash, materializing them from the persisted
  Workload template with the group key the pod webhook already stamped into the
  group index label. Cleanup keeps any group that still has member pods, which
  covers the names the controller cannot enumerate.
- The pod controller creates the PodGroups before it lifts the replacement
  gate, instead of after.
- The Volcano provider skips its ordinal pre-creation loop under Hash and
  relies on the pod-driven path it already implements.

* Retain PodGroups of active Hash leader pods during cleanup

Under groupIdentity Hash, replica instances cannot be enumerated from
the replica count alone at the start of ReconcileScheduling, so desiredGroups
was previously empty. Cleanup relied solely on inUseGro... (continued)

160 of 183 new or added lines in 5 files covered. (87.43%)

1 existing line in 1 file now uncovered.

5234 of 6139 relevant lines covered (85.26%)

39.71 hits per line

Uncovered Changes

Lines Coverage ∆ File
15
80.57
0.77% pkg/schedulerprovider/kubernetes_provider.go
3
80.21
-1.17% pkg/controllers/leaderworkerset_hash.go
3
90.91
-1.74% pkg/schedulerprovider/volcano_provider.go
2
88.7
0.04% pkg/controllers/pod_controller.go

Coverage Regressions

Lines Coverage ∆ File
1
77.74
-0.22% pkg/webhooks/leaderworkerset_webhook.go
Jobs
ID Job ID Ran Files Coverage
1 35909535330.1 23 Sep 2026 07:32PM UTC 31
85.26
GitHub Action Run
Source Files on build 35909535330
  • Tree
  • List 31
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 1eb6e49d on github
  • Prev Build on release-0.11 (#35902984914)
  • Next Build on release-0.11 (#36773556259)
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