From 0b9256617e6df5a1121536165184c83655b24f43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BE=84=E6=BD=AD?= Date: Mon, 16 Jun 2025 16:08:39 +0800 Subject: [PATCH] fix: When configuring an MCP server for SSE forwarding, the controller may crash (#2423) --- pkg/ingress/config/ingress_config.go | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/pkg/ingress/config/ingress_config.go b/pkg/ingress/config/ingress_config.go index 5875b3092..eac18c745 100644 --- a/pkg/ingress/config/ingress_config.go +++ b/pkg/ingress/config/ingress_config.go @@ -817,19 +817,23 @@ func (m *IngressConfig) convertDestinationRule(configs []common.WrapperConfig) [ destinationRuleWrapper.DestinationRule.TrafficPolicy.Tls != nil { dr.DestinationRule.TrafficPolicy.Tls = destinationRuleWrapper.DestinationRule.TrafficPolicy.Tls } - portTrafficPolicy := destinationRuleWrapper.DestinationRule.TrafficPolicy.PortLevelSettings[0] - portUpdated := false - for _, policy := range dr.DestinationRule.TrafficPolicy.PortLevelSettings { - if policy.Port.Number == portTrafficPolicy.Port.Number { - policy.Tls = portTrafficPolicy.Tls - portUpdated = true - break + // Directly inherit or override the port policy (if it exists) + if len(destinationRuleWrapper.DestinationRule.TrafficPolicy.PortLevelSettings) > 0 { + portTrafficPolicy := destinationRuleWrapper.DestinationRule.TrafficPolicy.PortLevelSettings[0] + portUpdated := false + for _, policy := range dr.DestinationRule.TrafficPolicy.PortLevelSettings { + if policy.Port.Number == portTrafficPolicy.Port.Number { + policy.Tls = portTrafficPolicy.Tls + policy.LoadBalancer = portTrafficPolicy.LoadBalancer + portUpdated = true + break + } } + if portUpdated { + continue + } + dr.DestinationRule.TrafficPolicy.PortLevelSettings = append(dr.DestinationRule.TrafficPolicy.PortLevelSettings, portTrafficPolicy) } - if portUpdated { - continue - } - dr.DestinationRule.TrafficPolicy.PortLevelSettings = append(dr.DestinationRule.TrafficPolicy.PortLevelSettings, portTrafficPolicy) } } }