SIGN IN SIGN UP

[feat] Add placement policy field and support to DisaggregatedSet (#916)

* Implement DisaggregatedSet placement policy

* Address review: require slice label in slice-0 spread and validate subgroup-exclusive-topology

- SetPlacementAffinities: for slice 0, require the slice label to exist in
  the slice-spread anti-affinity term so unlabeled legacy pods (semantically
  slice 0) don't repel the new slice-0 pod during upgrade.
- Webhook: validatePlacement now rejects the subgroup-exclusive-topology
  annotation as well, and the error names the annotation actually found.

* Address review: scope ExclusiveTopology cross-set term to labeled pods

NotIn matches pods that lack the key entirely, so the cross-set
anti-affinity term could repel unrelated pods that carry the slice label
without the set-name label. Require the set-name label to exist so the
term only matches DisaggregatedSet-managed pods.

* Add integration test for placement policy vs LWS exclusive placement

Registers the DisaggregatedSet webhook in the envtest suite and adds
API-server-level coverage for composing spec.placementPolicy with the
LWS exclusive-topology annotations: either mechanism alone is admitted,
combining them is rejected on both create and update.

Signed-off-by: Benjamin Braun <benjaminbraun@google.com>

* Wait for placement e2e pods to be fully deleted between specs

Signed-off-by: Benjamin Braun <benjaminbraun@google.com>

---------

Signed-off-by: Benjamin Braun <benjaminbraun@google.com>
B
BenjaminBraunDev committed
f3d21344213fa39caca9073d554be8a85363d85f
Parent: 13ad1b9
Committed by GitHub <noreply@github.com> on 7/21/2026, 9:29:46 PM