Skip to content

Commit e01f507

Browse files
qb0C80aEnluaces
authored andcommitted
fix original service restoration (#1224)
1 parent 46c811e commit e01f507

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

cmd/service-controller/definition_monitor.go

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
jsonencoding "encoding/json"
66
"fmt"
77
"reflect"
8-
"strconv"
98
"strings"
109
"time"
1110

@@ -768,9 +767,26 @@ func restoreServiceDefinitions(cli *client.VanClient, name string) error {
768767
}
769768
if hasOriginalTargetPort(*service) {
770769
updated = true
771-
originalTargetPort, _ := strconv.Atoi(service.ObjectMeta.Annotations[types.OriginalTargetPortQualifier])
770+
originalTargetPortMap := kube.GetOriginalTargetPorts(service)
771+
restoredPorts := make([]corev1.ServicePort, 0, len(originalTargetPortMap))
772+
for _, port := range service.Spec.Ports {
773+
originalTargetPort, exists := originalTargetPortMap[int(port.Port)]
774+
if exists {
775+
port.TargetPort = intstr.FromInt(originalTargetPort)
776+
restoredPorts = append(restoredPorts, port)
777+
delete(originalTargetPortMap, int(port.Port))
778+
}
779+
}
780+
for iPort, tPort := range originalTargetPortMap {
781+
restoredPorts = append(restoredPorts, corev1.ServicePort{
782+
Name: fmt.Sprintf("port%d", iPort),
783+
Protocol: "TCP",
784+
Port: int32(iPort),
785+
TargetPort: intstr.FromInt(tPort),
786+
})
787+
}
772788
delete(service.ObjectMeta.Annotations, types.OriginalTargetPortQualifier)
773-
service.Spec.Ports[0].TargetPort = intstr.FromInt(originalTargetPort)
789+
service.Spec.Ports = restoredPorts
774790
}
775791
if hasOriginalAssigned(*service) {
776792
updated = true

0 commit comments

Comments
 (0)