mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-10 12:32:03 +00:00
Chore: add service port tweak function
This commit is contained in:
parent
0cc7369196
commit
1c465c51e8
@ -85,6 +85,20 @@ func tweakAddLBIngress(ip string) serviceTweak {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func makeServicePort(protocol v1.Protocol, targetPort int) []v1.ServicePort {
|
||||||
|
sp := v1.ServicePort{Port: 80, Protocol: protocol}
|
||||||
|
if targetPort > 0 {
|
||||||
|
sp.TargetPort = intstr.FromInt(targetPort)
|
||||||
|
}
|
||||||
|
return []v1.ServicePort{sp}
|
||||||
|
}
|
||||||
|
|
||||||
|
func tweakAddPorts(protocol v1.Protocol, targetPort int) serviceTweak {
|
||||||
|
return func(s *v1.Service) {
|
||||||
|
s.Spec.Ports = makeServicePort(protocol, targetPort)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 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)
|
||||||
@ -163,19 +177,7 @@ func TestSyncLoadBalancerIfNeeded(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
desc: "udp service that wants LB",
|
desc: "udp service that wants LB",
|
||||||
service: &v1.Service{
|
service: newService("udp-service", v1.ServiceTypeLoadBalancer, tweakAddPorts(v1.ProtocolUDP, 0)),
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
|
||||||
Name: "udp-service",
|
|
||||||
Namespace: "default",
|
|
||||||
},
|
|
||||||
Spec: v1.ServiceSpec{
|
|
||||||
Ports: []v1.ServicePort{{
|
|
||||||
Port: 80,
|
|
||||||
Protocol: v1.ProtocolUDP,
|
|
||||||
}},
|
|
||||||
Type: v1.ServiceTypeLoadBalancer,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
expectOp: ensureLoadBalancer,
|
expectOp: ensureLoadBalancer,
|
||||||
expectCreateAttempt: true,
|
expectCreateAttempt: true,
|
||||||
expectPatchStatus: true,
|
expectPatchStatus: true,
|
||||||
@ -183,19 +185,7 @@ func TestSyncLoadBalancerIfNeeded(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
desc: "tcp service that wants LB",
|
desc: "tcp service that wants LB",
|
||||||
service: &v1.Service{
|
service: newService("basic-service1", v1.ServiceTypeLoadBalancer, tweakAddPorts(v1.ProtocolTCP, 0)),
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
|
||||||
Name: "basic-service1",
|
|
||||||
Namespace: "default",
|
|
||||||
},
|
|
||||||
Spec: v1.ServiceSpec{
|
|
||||||
Ports: []v1.ServicePort{{
|
|
||||||
Port: 80,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
}},
|
|
||||||
Type: v1.ServiceTypeLoadBalancer,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
expectOp: ensureLoadBalancer,
|
expectOp: ensureLoadBalancer,
|
||||||
expectCreateAttempt: true,
|
expectCreateAttempt: true,
|
||||||
expectPatchStatus: true,
|
expectPatchStatus: true,
|
||||||
@ -203,19 +193,7 @@ func TestSyncLoadBalancerIfNeeded(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
desc: "sctp service that wants LB",
|
desc: "sctp service that wants LB",
|
||||||
service: &v1.Service{
|
service: newService("sctp-service", v1.ServiceTypeLoadBalancer, tweakAddPorts(v1.ProtocolSCTP, 0)),
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
|
||||||
Name: "sctp-service",
|
|
||||||
Namespace: "default",
|
|
||||||
},
|
|
||||||
Spec: v1.ServiceSpec{
|
|
||||||
Ports: []v1.ServicePort{{
|
|
||||||
Port: 80,
|
|
||||||
Protocol: v1.ProtocolSCTP,
|
|
||||||
}},
|
|
||||||
Type: v1.ServiceTypeLoadBalancer,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
expectOp: ensureLoadBalancer,
|
expectOp: ensureLoadBalancer,
|
||||||
expectCreateAttempt: true,
|
expectCreateAttempt: true,
|
||||||
expectPatchStatus: true,
|
expectPatchStatus: true,
|
||||||
@ -319,19 +297,7 @@ func TestSyncLoadBalancerIfNeeded(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
desc: "service without finalizer that wants LB",
|
desc: "service without finalizer that wants LB",
|
||||||
service: &v1.Service{
|
service: newService("basic-service1", v1.ServiceTypeLoadBalancer, tweakAddPorts(v1.ProtocolTCP, 0)),
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
|
||||||
Name: "basic-service1",
|
|
||||||
Namespace: "default",
|
|
||||||
},
|
|
||||||
Spec: v1.ServiceSpec{
|
|
||||||
Ports: []v1.ServicePort{{
|
|
||||||
Port: 80,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
}},
|
|
||||||
Type: v1.ServiceTypeLoadBalancer,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
expectOp: ensureLoadBalancer,
|
expectOp: ensureLoadBalancer,
|
||||||
expectCreateAttempt: true,
|
expectCreateAttempt: true,
|
||||||
expectPatchStatus: true,
|
expectPatchStatus: true,
|
||||||
@ -1518,20 +1484,7 @@ func TestNeedsUpdate(t *testing.T) {
|
|||||||
{
|
{
|
||||||
testName: "If TargetGroup is different 1",
|
testName: "If TargetGroup is different 1",
|
||||||
updateFn: func() {
|
updateFn: func() {
|
||||||
oldSvc = &v1.Service{
|
oldSvc = newService("tcp-service", v1.ServiceTypeLoadBalancer, tweakAddPorts(v1.ProtocolTCP, 20))
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
|
||||||
Name: "tcp-service",
|
|
||||||
Namespace: "default",
|
|
||||||
},
|
|
||||||
Spec: v1.ServiceSpec{
|
|
||||||
Ports: []v1.ServicePort{{
|
|
||||||
Port: 80,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
TargetPort: intstr.Parse("20"),
|
|
||||||
}},
|
|
||||||
Type: v1.ServiceTypeLoadBalancer,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
newSvc = oldSvc.DeepCopy()
|
newSvc = oldSvc.DeepCopy()
|
||||||
newSvc.Spec.Ports[0].TargetPort = intstr.Parse("21")
|
newSvc.Spec.Ports[0].TargetPort = intstr.Parse("21")
|
||||||
},
|
},
|
||||||
@ -1540,20 +1493,7 @@ func TestNeedsUpdate(t *testing.T) {
|
|||||||
{
|
{
|
||||||
testName: "If TargetGroup is different 2",
|
testName: "If TargetGroup is different 2",
|
||||||
updateFn: func() {
|
updateFn: func() {
|
||||||
oldSvc = &v1.Service{
|
oldSvc = newService("tcp-service", v1.ServiceTypeLoadBalancer, tweakAddPorts(v1.ProtocolTCP, 22))
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
|
||||||
Name: "tcp-service",
|
|
||||||
Namespace: "default",
|
|
||||||
},
|
|
||||||
Spec: v1.ServiceSpec{
|
|
||||||
Ports: []v1.ServicePort{{
|
|
||||||
Port: 80,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
TargetPort: intstr.Parse("22"),
|
|
||||||
}},
|
|
||||||
Type: v1.ServiceTypeLoadBalancer,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
newSvc = oldSvc.DeepCopy()
|
newSvc = oldSvc.DeepCopy()
|
||||||
newSvc.Spec.Ports[0].TargetPort = intstr.Parse("dns")
|
newSvc.Spec.Ports[0].TargetPort = intstr.Parse("dns")
|
||||||
},
|
},
|
||||||
@ -1562,20 +1502,7 @@ func TestNeedsUpdate(t *testing.T) {
|
|||||||
{
|
{
|
||||||
testName: "If appProtocol is the same",
|
testName: "If appProtocol is the same",
|
||||||
updateFn: func() {
|
updateFn: func() {
|
||||||
oldSvc = &v1.Service{
|
oldSvc = newService("tcp-service", v1.ServiceTypeLoadBalancer, tweakAddPorts(v1.ProtocolTCP, 22))
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
|
||||||
Name: "tcp-service",
|
|
||||||
Namespace: "default",
|
|
||||||
},
|
|
||||||
Spec: v1.ServiceSpec{
|
|
||||||
Ports: []v1.ServicePort{{
|
|
||||||
Port: 80,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
TargetPort: intstr.Parse("22"),
|
|
||||||
}},
|
|
||||||
Type: v1.ServiceTypeLoadBalancer,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
newSvc = oldSvc.DeepCopy()
|
newSvc = oldSvc.DeepCopy()
|
||||||
},
|
},
|
||||||
expectedNeedsUpdate: false,
|
expectedNeedsUpdate: false,
|
||||||
@ -1583,20 +1510,7 @@ func TestNeedsUpdate(t *testing.T) {
|
|||||||
{
|
{
|
||||||
testName: "If appProtocol is set when previously unset",
|
testName: "If appProtocol is set when previously unset",
|
||||||
updateFn: func() {
|
updateFn: func() {
|
||||||
oldSvc = &v1.Service{
|
oldSvc = newService("tcp-service", v1.ServiceTypeLoadBalancer, tweakAddPorts(v1.ProtocolTCP, 22))
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
|
||||||
Name: "tcp-service",
|
|
||||||
Namespace: "default",
|
|
||||||
},
|
|
||||||
Spec: v1.ServiceSpec{
|
|
||||||
Ports: []v1.ServicePort{{
|
|
||||||
Port: 80,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
TargetPort: intstr.Parse("22"),
|
|
||||||
}},
|
|
||||||
Type: v1.ServiceTypeLoadBalancer,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
newSvc = oldSvc.DeepCopy()
|
newSvc = oldSvc.DeepCopy()
|
||||||
protocol := "http"
|
protocol := "http"
|
||||||
newSvc.Spec.Ports[0].AppProtocol = &protocol
|
newSvc.Spec.Ports[0].AppProtocol = &protocol
|
||||||
@ -1607,21 +1521,8 @@ func TestNeedsUpdate(t *testing.T) {
|
|||||||
testName: "If appProtocol is set to a different value",
|
testName: "If appProtocol is set to a different value",
|
||||||
updateFn: func() {
|
updateFn: func() {
|
||||||
protocol := "http"
|
protocol := "http"
|
||||||
oldSvc = &v1.Service{
|
oldSvc = newService("tcp-service", v1.ServiceTypeLoadBalancer, tweakAddPorts(v1.ProtocolTCP, 22))
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
oldSvc.Spec.Ports[0].AppProtocol = &protocol
|
||||||
Name: "tcp-service",
|
|
||||||
Namespace: "default",
|
|
||||||
},
|
|
||||||
Spec: v1.ServiceSpec{
|
|
||||||
Ports: []v1.ServicePort{{
|
|
||||||
Port: 80,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
TargetPort: intstr.Parse("22"),
|
|
||||||
AppProtocol: &protocol,
|
|
||||||
}},
|
|
||||||
Type: v1.ServiceTypeLoadBalancer,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
newSvc = oldSvc.DeepCopy()
|
newSvc = oldSvc.DeepCopy()
|
||||||
newProtocol := "tcp"
|
newProtocol := "tcp"
|
||||||
newSvc.Spec.Ports[0].AppProtocol = &newProtocol
|
newSvc.Spec.Ports[0].AppProtocol = &newProtocol
|
||||||
|
Loading…
Reference in New Issue
Block a user