mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 23:37:01 +00:00
Revert "Remove AllowServiceLBStatusOnNonLB gate"
This reverts commit 128e189fcd
.
This commit is contained in:
parent
b7fb82f9d8
commit
06321f4a0e
@ -7491,7 +7491,7 @@ var (
|
||||
func ValidateLoadBalancerStatus(status *core.LoadBalancerStatus, fldPath *field.Path, spec *core.ServiceSpec) field.ErrorList {
|
||||
allErrs := field.ErrorList{}
|
||||
ingrPath := fldPath.Child("ingress")
|
||||
if spec.Type != core.ServiceTypeLoadBalancer && len(status.Ingress) != 0 {
|
||||
if !utilfeature.DefaultFeatureGate.Enabled(features.AllowServiceLBStatusOnNonLB) && spec.Type != core.ServiceTypeLoadBalancer && len(status.Ingress) != 0 {
|
||||
allErrs = append(allErrs, field.Forbidden(ingrPath, "may only be used when `spec.type` is 'LoadBalancer'"))
|
||||
} else {
|
||||
for i, ingress := range status.Ingress {
|
||||
|
@ -24044,12 +24044,14 @@ func TestValidateLoadBalancerStatus(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
ipModeEnabled bool
|
||||
nonLBAllowed bool
|
||||
tweakLBStatus func(s *core.LoadBalancerStatus)
|
||||
tweakSvcSpec func(s *core.ServiceSpec)
|
||||
numErrs int
|
||||
}{
|
||||
{
|
||||
name: "type is not LB",
|
||||
name: "type is not LB",
|
||||
nonLBAllowed: false,
|
||||
tweakSvcSpec: func(s *core.ServiceSpec) {
|
||||
s.Type = core.ServiceTypeClusterIP
|
||||
},
|
||||
@ -24059,6 +24061,18 @@ func TestValidateLoadBalancerStatus(t *testing.T) {
|
||||
}}
|
||||
},
|
||||
numErrs: 1,
|
||||
}, {
|
||||
name: "type is not LB. back-compat",
|
||||
nonLBAllowed: true,
|
||||
tweakSvcSpec: func(s *core.ServiceSpec) {
|
||||
s.Type = core.ServiceTypeClusterIP
|
||||
},
|
||||
tweakLBStatus: func(s *core.LoadBalancerStatus) {
|
||||
s.Ingress = []core.LoadBalancerIngress{{
|
||||
IP: "1.2.3.4",
|
||||
}}
|
||||
},
|
||||
numErrs: 0,
|
||||
}, {
|
||||
name: "valid vip ipMode",
|
||||
ipModeEnabled: true,
|
||||
@ -24124,6 +24138,7 @@ func TestValidateLoadBalancerStatus(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateEmulationVersionDuringTest(t, utilfeature.DefaultFeatureGate, version.MustParse("1.31"))
|
||||
}
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.LoadBalancerIPMode, tc.ipModeEnabled)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.AllowServiceLBStatusOnNonLB, tc.nonLBAllowed)
|
||||
status := core.LoadBalancerStatus{}
|
||||
tc.tweakLBStatus(&status)
|
||||
spec := core.ServiceSpec{Type: core.ServiceTypeLoadBalancer}
|
||||
|
@ -48,6 +48,13 @@ const (
|
||||
// Allow spec.terminationGracePeriodSeconds to be overridden by MaxPodGracePeriodSeconds in soft evictions.
|
||||
AllowOverwriteTerminationGracePeriodSeconds featuregate.Feature = "AllowOverwriteTerminationGracePeriodSeconds"
|
||||
|
||||
// owner: @thockin
|
||||
// deprecated: v1.29
|
||||
//
|
||||
// Enables Service.status.ingress.loadBanace to be set on
|
||||
// services of types other than LoadBalancer.
|
||||
AllowServiceLBStatusOnNonLB featuregate.Feature = "AllowServiceLBStatusOnNonLB"
|
||||
|
||||
// owner: @bswartz
|
||||
//
|
||||
// Enables usage of any object for volume data source in PVCs
|
||||
|
Loading…
Reference in New Issue
Block a user