From 0b17228017e2c422ee089b41dc62396498f1e1ee Mon Sep 17 00:00:00 2001 From: fangyunyun Date: Mon, 9 May 2022 15:43:34 +0800 Subject: [PATCH] fix tcp match error --- .../virtualservice/virtualservice_controller.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkg/controller/virtualservice/virtualservice_controller.go b/pkg/controller/virtualservice/virtualservice_controller.go index 6e0d8e229..2e77d4668 100644 --- a/pkg/controller/virtualservice/virtualservice_controller.go +++ b/pkg/controller/virtualservice/virtualservice_controller.go @@ -537,7 +537,13 @@ func (v *VirtualServiceController) generateVirtualServiceSpec(strategy *servicem } if len(strategyTempSpec.Tcp) > 0 && !servicemesh.SupportHttpProtocol(port.Name) { for _, tcp := range strategyTempSpec.Tcp { - tcp.Match = []*apinetworkingv1alpha3.L4MatchAttributes{{Port: uint32(port.Port)}} + if len(tcp.Match) == 0 { + tcp.Match = []*apinetworkingv1alpha3.L4MatchAttributes{{Port: uint32(port.Port)}} + } else { + for _, match := range tcp.Match { + match.Port = uint32(port.Port) + } + } for _, r := range tcp.Route { r.Destination.Port = &apinetworkingv1alpha3.PortSelector{Number: uint32(port.Port)} }