Merge pull request #119789 from thockin/deprecate_svc_lb_ingress_with_clusterip
Gate: disallow .status.loadBalancer on non-LB svc
This commit is contained in:
@@ -23377,11 +23377,36 @@ 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
|
||||
}{
|
||||
/* LoadBalancerIPMode*/
|
||||
{
|
||||
name: "type is not LB",
|
||||
nonLBAllowed: false,
|
||||
tweakSvcSpec: func(s *core.ServiceSpec) {
|
||||
s.Type = core.ServiceTypeClusterIP
|
||||
},
|
||||
tweakLBStatus: func(s *core.LoadBalancerStatus) {
|
||||
s.Ingress = []core.LoadBalancerIngress{{
|
||||
IP: "1.2.3.4",
|
||||
}}
|
||||
},
|
||||
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,
|
||||
tweakLBStatus: func(s *core.LoadBalancerStatus) {
|
||||
@@ -23443,9 +23468,14 @@ func TestValidateLoadBalancerStatus(t *testing.T) {
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.LoadBalancerIPMode, tc.ipModeEnabled)()
|
||||
s := core.LoadBalancerStatus{}
|
||||
tc.tweakLBStatus(&s)
|
||||
errs := ValidateLoadBalancerStatus(&s, field.NewPath("status"))
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.AllowServiceLBStatusOnNonLB, tc.nonLBAllowed)()
|
||||
status := core.LoadBalancerStatus{}
|
||||
tc.tweakLBStatus(&status)
|
||||
spec := core.ServiceSpec{Type: core.ServiceTypeLoadBalancer}
|
||||
if tc.tweakSvcSpec != nil {
|
||||
tc.tweakSvcSpec(&spec)
|
||||
}
|
||||
errs := ValidateLoadBalancerStatus(&status, field.NewPath("status"), &spec)
|
||||
if len(errs) != tc.numErrs {
|
||||
t.Errorf("Unexpected error list for case %q(expected:%v got %v) - Errors:\n %v", tc.name, tc.numErrs, len(errs), errs.ToAggregate())
|
||||
}
|
||||
|
Reference in New Issue
Block a user