Chore: add load balancer tweak function

This commit is contained in:
mowangdk 2023-03-26 12:19:50 +08:00
parent 1c465c51e8
commit 28db34a231

View File

@ -99,6 +99,12 @@ func tweakAddPorts(protocol v1.Protocol, targetPort int) serviceTweak {
} }
} }
func tweakAddLBClass(loadBalancerClass *string) serviceTweak {
return func(s *v1.Service) {
s.Spec.LoadBalancerClass = loadBalancerClass
}
}
// Wrap newService so that you don't have to call default arguments again and again. // Wrap newService so that you don't have to call default arguments again and again.
func defaultExternalService() *v1.Service { func defaultExternalService() *v1.Service {
return newService("external-balancer", v1.ServiceTypeLoadBalancer) return newService("external-balancer", v1.ServiceTypeLoadBalancer)
@ -201,16 +207,7 @@ func TestSyncLoadBalancerIfNeeded(t *testing.T) {
}, },
{ {
desc: "service specifies loadBalancerClass", desc: "service specifies loadBalancerClass",
service: &v1.Service{ service: newService("with-external-balancer", v1.ServiceTypeLoadBalancer, tweakAddLBClass(utilpointer.String("custom-loadbalancer"))),
ObjectMeta: metav1.ObjectMeta{
Name: "with-external-balancer",
Namespace: "default",
},
Spec: v1.ServiceSpec{
Type: v1.ServiceTypeLoadBalancer,
LoadBalancerClass: utilpointer.StringPtr("custom-loadbalancer"),
},
},
expectOp: deleteLoadBalancer, expectOp: deleteLoadBalancer,
expectCreateAttempt: false, expectCreateAttempt: false,
expectPatchStatus: false, expectPatchStatus: false,
@ -218,20 +215,7 @@ func TestSyncLoadBalancerIfNeeded(t *testing.T) {
}, },
{ {
desc: "service doesn't specify loadBalancerClass", desc: "service doesn't specify loadBalancerClass",
service: &v1.Service{ service: newService("with-external-balancer", v1.ServiceTypeLoadBalancer, tweakAddLBClass(nil), tweakAddPorts(v1.ProtocolSCTP, 0)),
ObjectMeta: metav1.ObjectMeta{
Name: "with-external-balancer",
Namespace: "default",
},
Spec: v1.ServiceSpec{
Ports: []v1.ServicePort{{
Port: 80,
Protocol: v1.ProtocolSCTP,
}},
Type: v1.ServiceTypeLoadBalancer,
LoadBalancerClass: nil,
},
},
expectOp: ensureLoadBalancer, expectOp: ensureLoadBalancer,
expectCreateAttempt: true, expectCreateAttempt: true,
expectPatchStatus: true, expectPatchStatus: true,