From eadfe4a5461898623a2132e8686fc030b3fb2eb8 Mon Sep 17 00:00:00 2001 From: Amir Alavi Date: Thu, 10 Jul 2025 17:27:58 -0400 Subject: [PATCH] fix: topologyspreadconstraint plugin to not add PodNodeAffinity unless the inclusion policy is honor --- .../topologyspreadconstraint.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/framework/plugins/removepodsviolatingtopologyspreadconstraint/topologyspreadconstraint.go b/pkg/framework/plugins/removepodsviolatingtopologyspreadconstraint/topologyspreadconstraint.go index d62a15ebb..0544d5551 100644 --- a/pkg/framework/plugins/removepodsviolatingtopologyspreadconstraint/topologyspreadconstraint.go +++ b/pkg/framework/plugins/removepodsviolatingtopologyspreadconstraint/topologyspreadconstraint.go @@ -539,16 +539,16 @@ func newTopologySpreadConstraint(constraint v1.TopologySpreadConstraint, pod *v1 MaxSkew: constraint.MaxSkew, TopologyKey: constraint.TopologyKey, Selector: selector, - NodeAffinityPolicy: v1.NodeInclusionPolicyHonor, // If NodeAffinityPolicy is nil, we treat NodeAffinityPolicy as "Honor". - NodeTaintsPolicy: v1.NodeInclusionPolicyIgnore, // If NodeTaintsPolicy is nil, we treat NodeTaintsPolicy as "Ignore". - PodNodeAffinity: nodeaffinity.GetRequiredNodeAffinity(pod), - PodTolerations: pod.Spec.Tolerations, + NodeAffinityPolicy: utilptr.Deref(constraint.NodeAffinityPolicy, v1.NodeInclusionPolicyHonor), // If NodeAffinityPolicy is nil, we treat NodeAffinityPolicy as "Honor". + NodeTaintsPolicy: utilptr.Deref(constraint.NodeTaintsPolicy, v1.NodeInclusionPolicyIgnore), // If NodeTaintsPolicy is nil, we treat NodeTaintsPolicy as "Ignore". } - if constraint.NodeAffinityPolicy != nil { - tsc.NodeAffinityPolicy = *constraint.NodeAffinityPolicy + + if tsc.NodeAffinityPolicy == v1.NodeInclusionPolicyHonor { + tsc.PodNodeAffinity = nodeaffinity.GetRequiredNodeAffinity(pod) } - if constraint.NodeTaintsPolicy != nil { - tsc.NodeTaintsPolicy = *constraint.NodeTaintsPolicy + + if tsc.NodeTaintsPolicy == v1.NodeInclusionPolicyHonor { + tsc.PodTolerations = pod.Spec.Tolerations } return tsc, nil