[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