Merge pull request #112785 from MartinForReal/master

CloudProvider: service update event should be triggered when appProtocol in port is changed
This commit is contained in:
Kubernetes Prow Robot 2022-10-12 09:39:00 -07:00 committed by GitHub
commit 71ca3dad89
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 73 additions and 0 deletions

View File

@ -640,6 +640,10 @@ func portEqualForLB(x, y *v1.ServicePort) bool {
return false return false
} }
if !reflect.DeepEqual(x.AppProtocol, y.AppProtocol) {
return false
}
return true return true
} }

View File

@ -1391,6 +1391,75 @@ func TestNeedsUpdate(t *testing.T) {
}, },
expectedNeedsUpdate: true, expectedNeedsUpdate: true,
}, },
{
testName: "If appProtocol is the same",
updateFn: func() {
oldSvc = &v1.Service{
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()
},
expectedNeedsUpdate: false,
},
{
testName: "If appProtocol is set when previously unset",
updateFn: func() {
oldSvc = &v1.Service{
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()
protocol := "http"
newSvc.Spec.Ports[0].AppProtocol = &protocol
},
expectedNeedsUpdate: true,
},
{
testName: "If appProtocol is set to a different value",
updateFn: func() {
protocol := "http"
oldSvc = &v1.Service{
ObjectMeta: metav1.ObjectMeta{
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()
newProtocol := "tcp"
newSvc.Spec.Ports[0].AppProtocol = &newProtocol
},
expectedNeedsUpdate: true,
},
} }
controller, _, _ := newController() controller, _, _ := newController()