mirror of
https://github.com/optim-enterprises-bv/kubernetes.git
synced 2025-11-02 11:18:16 +00:00
Merge pull request #116741 from gjkim42/promote-expanded-dns-config-to-ga
Promote ExpandedDNSConfig feature to the GA stage
This commit is contained in:
@@ -342,37 +342,6 @@ func usesIndivisibleHugePagesValues(podSpec *api.PodSpec) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// haveSameExpandedDNSConfig returns true if the oldPodSpec already had
|
||||
// ExpandedDNSConfig and podSpec has the same DNSConfig
|
||||
func haveSameExpandedDNSConfig(podSpec, oldPodSpec *api.PodSpec) bool {
|
||||
if oldPodSpec == nil || oldPodSpec.DNSConfig == nil {
|
||||
return false
|
||||
}
|
||||
if podSpec == nil || podSpec.DNSConfig == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
if len(oldPodSpec.DNSConfig.Searches) <= apivalidation.MaxDNSSearchPathsLegacy &&
|
||||
len(strings.Join(oldPodSpec.DNSConfig.Searches, " ")) <= apivalidation.MaxDNSSearchListCharsLegacy {
|
||||
// didn't have ExpandedDNSConfig
|
||||
return false
|
||||
}
|
||||
|
||||
if len(oldPodSpec.DNSConfig.Searches) != len(podSpec.DNSConfig.Searches) {
|
||||
// updates DNSConfig
|
||||
return false
|
||||
}
|
||||
|
||||
for i, oldSearch := range oldPodSpec.DNSConfig.Searches {
|
||||
if podSpec.DNSConfig.Searches[i] != oldSearch {
|
||||
// updates DNSConfig
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// hasInvalidTopologySpreadConstraintLabelSelector return true if spec.TopologySpreadConstraints have any entry with invalid labelSelector
|
||||
func hasInvalidTopologySpreadConstraintLabelSelector(spec *api.PodSpec) bool {
|
||||
for _, constraint := range spec.TopologySpreadConstraints {
|
||||
@@ -390,9 +359,7 @@ func GetValidationOptionsFromPodSpecAndMeta(podSpec, oldPodSpec *api.PodSpec, po
|
||||
opts := apivalidation.PodValidationOptions{
|
||||
AllowInvalidPodDeletionCost: !utilfeature.DefaultFeatureGate.Enabled(features.PodDeletionCost),
|
||||
// Do not allow pod spec to use non-integer multiple of huge page unit size default
|
||||
AllowIndivisibleHugePagesValues: false,
|
||||
// Allow pod spec with expanded DNS configuration
|
||||
AllowExpandedDNSConfig: utilfeature.DefaultFeatureGate.Enabled(features.ExpandedDNSConfig) || haveSameExpandedDNSConfig(podSpec, oldPodSpec),
|
||||
AllowIndivisibleHugePagesValues: false,
|
||||
AllowInvalidLabelValueInSelector: false,
|
||||
AllowInvalidTopologySpreadConstraintLabelSelector: false,
|
||||
AllowMutableNodeSelectorAndNodeAffinity: utilfeature.DefaultFeatureGate.Enabled(features.PodSchedulingReadiness),
|
||||
|
||||
@@ -1094,365 +1094,6 @@ func TestValidatePodDeletionCostOption(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestHaveSameExpandedDNSConfig(t *testing.T) {
|
||||
testCases := []struct {
|
||||
desc string
|
||||
podSpec *api.PodSpec
|
||||
oldPodSpec *api.PodSpec
|
||||
want bool
|
||||
}{
|
||||
{
|
||||
desc: "nil DNSConfig",
|
||||
podSpec: &api.PodSpec{},
|
||||
oldPodSpec: &api.PodSpec{},
|
||||
want: false,
|
||||
},
|
||||
{
|
||||
desc: "empty DNSConfig",
|
||||
podSpec: &api.PodSpec{
|
||||
DNSConfig: &api.PodDNSConfig{},
|
||||
},
|
||||
oldPodSpec: &api.PodSpec{
|
||||
DNSConfig: &api.PodDNSConfig{},
|
||||
},
|
||||
want: false,
|
||||
},
|
||||
{
|
||||
desc: "same legacy DNSConfig",
|
||||
podSpec: &api.PodSpec{
|
||||
DNSConfig: &api.PodDNSConfig{
|
||||
Searches: []string{
|
||||
"foo.com",
|
||||
"bar.io",
|
||||
"3.com",
|
||||
"4.com",
|
||||
"5.com",
|
||||
"6.com",
|
||||
},
|
||||
},
|
||||
},
|
||||
oldPodSpec: &api.PodSpec{
|
||||
DNSConfig: &api.PodDNSConfig{
|
||||
Searches: []string{
|
||||
"foo.com",
|
||||
"bar.io",
|
||||
"3.com",
|
||||
"4.com",
|
||||
"5.com",
|
||||
"6.com",
|
||||
},
|
||||
},
|
||||
},
|
||||
want: false,
|
||||
},
|
||||
{
|
||||
desc: "update legacy DNSConfig",
|
||||
podSpec: &api.PodSpec{
|
||||
DNSConfig: &api.PodDNSConfig{
|
||||
Searches: []string{
|
||||
"foo.com",
|
||||
"bar.io",
|
||||
"baz.com",
|
||||
"4.com",
|
||||
"5.com",
|
||||
"6.com",
|
||||
},
|
||||
},
|
||||
},
|
||||
oldPodSpec: &api.PodSpec{
|
||||
DNSConfig: &api.PodDNSConfig{
|
||||
Searches: []string{
|
||||
"foo.com",
|
||||
"bar.io",
|
||||
"3.com",
|
||||
"4.com",
|
||||
"5.com",
|
||||
"6.com",
|
||||
},
|
||||
},
|
||||
},
|
||||
want: false,
|
||||
},
|
||||
{
|
||||
desc: "same expanded DNSConfig",
|
||||
podSpec: &api.PodSpec{
|
||||
DNSConfig: &api.PodDNSConfig{
|
||||
Searches: []string{
|
||||
"foo.com",
|
||||
"bar.io",
|
||||
"3.com",
|
||||
"4.com",
|
||||
"5.com",
|
||||
"6.com",
|
||||
"7.expanded.com",
|
||||
"8.expanded.com",
|
||||
"9.expanded.com",
|
||||
"10.expanded.com",
|
||||
"11.expanded.com",
|
||||
"12.expanded.com",
|
||||
"13.expanded.com",
|
||||
"14.expanded.com",
|
||||
"15.expanded.com",
|
||||
"16.expanded.com",
|
||||
"17.expanded.com",
|
||||
"18.expanded.com",
|
||||
"19.expanded.com",
|
||||
"20.expanded.com",
|
||||
"21.expanded.com",
|
||||
"22.expanded.com",
|
||||
"23.expanded.com",
|
||||
"24.expanded.com",
|
||||
"25.expanded.com",
|
||||
"26.expanded.com",
|
||||
"27.expanded.com",
|
||||
"28.expanded.com",
|
||||
"29.expanded.com",
|
||||
"30.expanded.com",
|
||||
"31.expanded.com",
|
||||
"32.expanded.com",
|
||||
},
|
||||
},
|
||||
},
|
||||
oldPodSpec: &api.PodSpec{
|
||||
DNSConfig: &api.PodDNSConfig{
|
||||
Searches: []string{
|
||||
"foo.com",
|
||||
"bar.io",
|
||||
"3.com",
|
||||
"4.com",
|
||||
"5.com",
|
||||
"6.com",
|
||||
"7.expanded.com",
|
||||
"8.expanded.com",
|
||||
"9.expanded.com",
|
||||
"10.expanded.com",
|
||||
"11.expanded.com",
|
||||
"12.expanded.com",
|
||||
"13.expanded.com",
|
||||
"14.expanded.com",
|
||||
"15.expanded.com",
|
||||
"16.expanded.com",
|
||||
"17.expanded.com",
|
||||
"18.expanded.com",
|
||||
"19.expanded.com",
|
||||
"20.expanded.com",
|
||||
"21.expanded.com",
|
||||
"22.expanded.com",
|
||||
"23.expanded.com",
|
||||
"24.expanded.com",
|
||||
"25.expanded.com",
|
||||
"26.expanded.com",
|
||||
"27.expanded.com",
|
||||
"28.expanded.com",
|
||||
"29.expanded.com",
|
||||
"30.expanded.com",
|
||||
"31.expanded.com",
|
||||
"32.expanded.com",
|
||||
},
|
||||
},
|
||||
},
|
||||
want: true,
|
||||
},
|
||||
{
|
||||
desc: "update expanded DNSConfig",
|
||||
podSpec: &api.PodSpec{
|
||||
DNSConfig: &api.PodDNSConfig{
|
||||
Searches: []string{
|
||||
"foo.com",
|
||||
"bar.io",
|
||||
"3.com",
|
||||
"4.com",
|
||||
"5.com",
|
||||
"6.com",
|
||||
"baz.expanded.com",
|
||||
"8.expanded.com",
|
||||
"9.expanded.com",
|
||||
"10.expanded.com",
|
||||
"11.expanded.com",
|
||||
"12.expanded.com",
|
||||
"13.expanded.com",
|
||||
"14.expanded.com",
|
||||
"15.expanded.com",
|
||||
"16.expanded.com",
|
||||
"17.expanded.com",
|
||||
"18.expanded.com",
|
||||
"19.expanded.com",
|
||||
"20.expanded.com",
|
||||
"21.expanded.com",
|
||||
"22.expanded.com",
|
||||
"23.expanded.com",
|
||||
"24.expanded.com",
|
||||
"25.expanded.com",
|
||||
"26.expanded.com",
|
||||
"27.expanded.com",
|
||||
"28.expanded.com",
|
||||
"29.expanded.com",
|
||||
"30.expanded.com",
|
||||
"31.expanded.com",
|
||||
"32.expanded.com",
|
||||
},
|
||||
},
|
||||
},
|
||||
oldPodSpec: &api.PodSpec{
|
||||
DNSConfig: &api.PodDNSConfig{
|
||||
Searches: []string{
|
||||
"foo.com",
|
||||
"bar.io",
|
||||
"3.com",
|
||||
"4.com",
|
||||
"5.com",
|
||||
"6.com",
|
||||
"7.expanded.com",
|
||||
"8.expanded.com",
|
||||
"9.expanded.com",
|
||||
"10.expanded.com",
|
||||
"11.expanded.com",
|
||||
"12.expanded.com",
|
||||
"13.expanded.com",
|
||||
"14.expanded.com",
|
||||
"15.expanded.com",
|
||||
"16.expanded.com",
|
||||
"17.expanded.com",
|
||||
"18.expanded.com",
|
||||
"19.expanded.com",
|
||||
"20.expanded.com",
|
||||
"21.expanded.com",
|
||||
"22.expanded.com",
|
||||
"23.expanded.com",
|
||||
"24.expanded.com",
|
||||
"25.expanded.com",
|
||||
"26.expanded.com",
|
||||
"27.expanded.com",
|
||||
"28.expanded.com",
|
||||
"29.expanded.com",
|
||||
"30.expanded.com",
|
||||
"31.expanded.com",
|
||||
"32.expanded.com",
|
||||
},
|
||||
},
|
||||
},
|
||||
want: false,
|
||||
},
|
||||
{
|
||||
desc: "update to legacy DNSConfig",
|
||||
podSpec: &api.PodSpec{
|
||||
DNSConfig: &api.PodDNSConfig{
|
||||
Searches: []string{
|
||||
"foo.com",
|
||||
"bar.io",
|
||||
"baz.com",
|
||||
"4.com",
|
||||
"5.com",
|
||||
"6.com",
|
||||
},
|
||||
},
|
||||
},
|
||||
oldPodSpec: &api.PodSpec{
|
||||
DNSConfig: &api.PodDNSConfig{
|
||||
Searches: []string{
|
||||
"foo.com",
|
||||
"bar.io",
|
||||
"3.com",
|
||||
"4.com",
|
||||
"5.com",
|
||||
"6.com",
|
||||
"7.expanded.com",
|
||||
"8.expanded.com",
|
||||
"9.expanded.com",
|
||||
"10.expanded.com",
|
||||
"11.expanded.com",
|
||||
"12.expanded.com",
|
||||
"13.expanded.com",
|
||||
"14.expanded.com",
|
||||
"15.expanded.com",
|
||||
"16.expanded.com",
|
||||
"17.expanded.com",
|
||||
"18.expanded.com",
|
||||
"19.expanded.com",
|
||||
"20.expanded.com",
|
||||
"21.expanded.com",
|
||||
"22.expanded.com",
|
||||
"23.expanded.com",
|
||||
"24.expanded.com",
|
||||
"25.expanded.com",
|
||||
"26.expanded.com",
|
||||
"27.expanded.com",
|
||||
"28.expanded.com",
|
||||
"29.expanded.com",
|
||||
"30.expanded.com",
|
||||
"31.expanded.com",
|
||||
"32.expanded.com",
|
||||
},
|
||||
},
|
||||
},
|
||||
want: false,
|
||||
},
|
||||
{
|
||||
desc: "update to expanded DNSConfig",
|
||||
podSpec: &api.PodSpec{
|
||||
DNSConfig: &api.PodDNSConfig{
|
||||
Searches: []string{
|
||||
"foo.com",
|
||||
"bar.io",
|
||||
"3.com",
|
||||
"4.com",
|
||||
"5.com",
|
||||
"6.com",
|
||||
"baz.expanded.com",
|
||||
"8.expanded.com",
|
||||
"9.expanded.com",
|
||||
"10.expanded.com",
|
||||
"11.expanded.com",
|
||||
"12.expanded.com",
|
||||
"13.expanded.com",
|
||||
"14.expanded.com",
|
||||
"15.expanded.com",
|
||||
"16.expanded.com",
|
||||
"17.expanded.com",
|
||||
"18.expanded.com",
|
||||
"19.expanded.com",
|
||||
"20.expanded.com",
|
||||
"21.expanded.com",
|
||||
"22.expanded.com",
|
||||
"23.expanded.com",
|
||||
"24.expanded.com",
|
||||
"25.expanded.com",
|
||||
"26.expanded.com",
|
||||
"27.expanded.com",
|
||||
"28.expanded.com",
|
||||
"29.expanded.com",
|
||||
"30.expanded.com",
|
||||
"31.expanded.com",
|
||||
"32.expanded.com",
|
||||
},
|
||||
},
|
||||
},
|
||||
oldPodSpec: &api.PodSpec{
|
||||
DNSConfig: &api.PodDNSConfig{
|
||||
Searches: []string{
|
||||
"foo.com",
|
||||
"bar.io",
|
||||
"3.com",
|
||||
"4.com",
|
||||
"5.com",
|
||||
"6.com",
|
||||
},
|
||||
},
|
||||
},
|
||||
want: false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
got := haveSameExpandedDNSConfig(tc.podSpec, tc.oldPodSpec)
|
||||
if tc.want != got {
|
||||
t.Errorf("unexpected diff, want: %v, got: %v", tc.want, got)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestDropDisabledTopologySpreadConstraintsFields(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
|
||||
Reference in New Issue
Block a user