Merge pull request #123481 from sanposhiho/mindomain-stable
graduate MinDomainsInPodTopologySpread to stable
This commit is contained in:
@@ -998,173 +998,6 @@ func TestValidatePodDeletionCostOption(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestDropDisabledTopologySpreadConstraintsFields(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
enabled bool
|
||||
podSpec *api.PodSpec
|
||||
oldPodSpec *api.PodSpec
|
||||
wantPodSpec *api.PodSpec
|
||||
}{
|
||||
{
|
||||
name: "TopologySpreadConstraints is nil",
|
||||
podSpec: &api.PodSpec{},
|
||||
oldPodSpec: &api.PodSpec{},
|
||||
wantPodSpec: &api.PodSpec{},
|
||||
},
|
||||
{
|
||||
name: "TopologySpreadConstraints is empty",
|
||||
podSpec: &api.PodSpec{TopologySpreadConstraints: []api.TopologySpreadConstraint{}},
|
||||
oldPodSpec: &api.PodSpec{TopologySpreadConstraints: []api.TopologySpreadConstraint{}},
|
||||
wantPodSpec: &api.PodSpec{TopologySpreadConstraints: []api.TopologySpreadConstraint{}},
|
||||
},
|
||||
{
|
||||
name: "TopologySpreadConstraints is not empty, but all constraints don't have minDomains",
|
||||
podSpec: &api.PodSpec{TopologySpreadConstraints: []api.TopologySpreadConstraint{
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
}},
|
||||
oldPodSpec: &api.PodSpec{TopologySpreadConstraints: []api.TopologySpreadConstraint{
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
}},
|
||||
wantPodSpec: &api.PodSpec{TopologySpreadConstraints: []api.TopologySpreadConstraint{
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
}},
|
||||
},
|
||||
{
|
||||
name: "one constraint in podSpec has non-empty minDomains, feature gate is disabled " +
|
||||
"and all constraint in oldPodSpec doesn't have minDomains",
|
||||
enabled: false,
|
||||
podSpec: &api.PodSpec{
|
||||
TopologySpreadConstraints: []api.TopologySpreadConstraint{
|
||||
{
|
||||
MinDomains: pointer.Int32(2),
|
||||
},
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
},
|
||||
},
|
||||
oldPodSpec: &api.PodSpec{
|
||||
TopologySpreadConstraints: []api.TopologySpreadConstraint{
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
},
|
||||
},
|
||||
wantPodSpec: &api.PodSpec{
|
||||
TopologySpreadConstraints: []api.TopologySpreadConstraint{
|
||||
{
|
||||
// cleared.
|
||||
MinDomains: nil,
|
||||
},
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "one constraint in podSpec has non-empty minDomains, feature gate is disabled " +
|
||||
"and one constraint in oldPodSpec has minDomains",
|
||||
enabled: false,
|
||||
podSpec: &api.PodSpec{
|
||||
TopologySpreadConstraints: []api.TopologySpreadConstraint{
|
||||
{
|
||||
MinDomains: pointer.Int32(2),
|
||||
},
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
},
|
||||
},
|
||||
oldPodSpec: &api.PodSpec{
|
||||
TopologySpreadConstraints: []api.TopologySpreadConstraint{
|
||||
{
|
||||
MinDomains: pointer.Int32(2),
|
||||
},
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
},
|
||||
},
|
||||
wantPodSpec: &api.PodSpec{
|
||||
TopologySpreadConstraints: []api.TopologySpreadConstraint{
|
||||
{
|
||||
// not cleared.
|
||||
MinDomains: pointer.Int32(2),
|
||||
},
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "one constraint in podSpec has non-empty minDomains, feature gate is enabled" +
|
||||
"and all constraint in oldPodSpec doesn't have minDomains",
|
||||
enabled: true,
|
||||
podSpec: &api.PodSpec{
|
||||
TopologySpreadConstraints: []api.TopologySpreadConstraint{
|
||||
{
|
||||
MinDomains: pointer.Int32(2),
|
||||
},
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
},
|
||||
},
|
||||
oldPodSpec: &api.PodSpec{
|
||||
TopologySpreadConstraints: []api.TopologySpreadConstraint{
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
},
|
||||
},
|
||||
wantPodSpec: &api.PodSpec{
|
||||
TopologySpreadConstraints: []api.TopologySpreadConstraint{
|
||||
{
|
||||
// not cleared.
|
||||
MinDomains: pointer.Int32(2),
|
||||
},
|
||||
{
|
||||
MinDomains: nil,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.MinDomainsInPodTopologySpread, tc.enabled)()
|
||||
dropDisabledFields(tc.podSpec, nil, tc.oldPodSpec, nil)
|
||||
if diff := cmp.Diff(tc.wantPodSpec, tc.podSpec); diff != "" {
|
||||
t.Errorf("unexpected pod spec (-want, +got):\n%s", diff)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestDropDisabledPodStatusFields(t *testing.T) {
|
||||
podWithHostIPs := func() *api.PodStatus {
|
||||
return &api.PodStatus{
|
||||
|
Reference in New Issue
Block a user