From 2d4958c309e4bc2844ca7213da16cba2ddff319b Mon Sep 17 00:00:00 2001 From: Nitya Dhanushkodi Date: Tue, 17 Oct 2023 13:29:04 -0700 Subject: [PATCH] only listener port+path is unique, not local port, so use that for routes --- .../sidecarproxy/builder/expose_paths.go | 11 ++++++----- .../testdata/source/l7-expose-paths.golden | 16 ++++++++-------- .../source/local-and-inbound-connections.golden | 16 ++++++++-------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/internal/mesh/internal/controllers/sidecarproxy/builder/expose_paths.go b/internal/mesh/internal/controllers/sidecarproxy/builder/expose_paths.go index 0d0c71c0fd2b4..8ae2033cc5e98 100644 --- a/internal/mesh/internal/controllers/sidecarproxy/builder/expose_paths.go +++ b/internal/mesh/internal/controllers/sidecarproxy/builder/expose_paths.go @@ -55,7 +55,7 @@ func (b *ListenerBuilder) addExposePathsRouter(exposePath *pbmesh.ExposePath) *L if b.listener == nil { return b } - destinationName := exposePathDestinationName(exposePath) + destinationName := exposePathRouteName(exposePath) var l7Protocol pbproxystate.L7Protocol @@ -88,7 +88,7 @@ func (b *ListenerBuilder) addExposePathsRouter(exposePath *pbmesh.ExposePath) *L } func (b *Builder) addExposePathsRoute(exposePath *pbmesh.ExposePath, clusterName string) *Builder { - routeName := exposePathDestinationName(exposePath) + routeName := exposePathRouteName(exposePath) routeRule := &pbproxystate.RouteRule{ Match: &pbproxystate.RouteMatch{ PathMatch: &pbproxystate.PathMatch{ @@ -132,9 +132,10 @@ func exposePathListenerName(exposePath *pbmesh.ExposePath) string { return listenerName } -func exposePathDestinationName(exposePath *pbmesh.ExposePath) string { - // The destination of the expose path is to the local port. - return fmt.Sprintf("exposed_path_destination_%s%d", exposePathName(exposePath), exposePath.LocalPathPort) +func exposePathRouteName(exposePath *pbmesh.ExposePath) string { + // The path could be empty, so the unique name for this exposed path is the path and listener port. + pathPort := fmt.Sprintf("%s%d", exposePathName(exposePath), exposePath.ListenerPort) + return fmt.Sprintf("exposed_path_route_%s", pathPort) } func exposePathClusterName(exposePath *pbmesh.ExposePath) string { diff --git a/internal/mesh/internal/controllers/sidecarproxy/builder/testdata/source/l7-expose-paths.golden b/internal/mesh/internal/controllers/sidecarproxy/builder/testdata/source/l7-expose-paths.golden index 160167e0dbd44..2d62699ecfbf9 100644 --- a/internal/mesh/internal/controllers/sidecarproxy/builder/testdata/source/l7-expose-paths.golden +++ b/internal/mesh/internal/controllers/sidecarproxy/builder/testdata/source/l7-expose-paths.golden @@ -114,9 +114,9 @@ { "l7": { "route": { - "name": "exposed_path_destination_health9090" + "name": "exposed_path_route_health1234" }, - "statPrefix": "exposed_path_destination_health9090", + "statPrefix": "exposed_path_route_health1234", "staticRoute": true } } @@ -134,9 +134,9 @@ "l7": { "protocol": "L7_PROTOCOL_HTTP2", "route": { - "name": "exposed_path_destination_GetHealth9091" + "name": "exposed_path_route_GetHealth1235" }, - "statPrefix": "exposed_path_destination_GetHealth9091", + "statPrefix": "exposed_path_route_GetHealth1235", "staticRoute": true } } @@ -144,13 +144,13 @@ } ], "routes": { - "exposed_path_destination_GetHealth9091": { + "exposed_path_route_GetHealth1235": { "virtualHosts": [ { "domains": [ "*" ], - "name": "exposed_path_destination_GetHealth9091", + "name": "exposed_path_route_GetHealth1235", "routeRules": [ { "destination": { @@ -168,13 +168,13 @@ } ] }, - "exposed_path_destination_health9090": { + "exposed_path_route_health1234": { "virtualHosts": [ { "domains": [ "*" ], - "name": "exposed_path_destination_health9090", + "name": "exposed_path_route_health1234", "routeRules": [ { "destination": { diff --git a/internal/mesh/internal/controllers/sidecarproxy/builder/testdata/source/local-and-inbound-connections.golden b/internal/mesh/internal/controllers/sidecarproxy/builder/testdata/source/local-and-inbound-connections.golden index 498ff83868725..77d52fd90b04c 100644 --- a/internal/mesh/internal/controllers/sidecarproxy/builder/testdata/source/local-and-inbound-connections.golden +++ b/internal/mesh/internal/controllers/sidecarproxy/builder/testdata/source/local-and-inbound-connections.golden @@ -176,9 +176,9 @@ { "l7": { "route": { - "name": "exposed_path_destination_health9090" + "name": "exposed_path_route_health1234" }, - "statPrefix": "exposed_path_destination_health9090", + "statPrefix": "exposed_path_route_health1234", "staticRoute": true } } @@ -196,9 +196,9 @@ "l7": { "protocol": "L7_PROTOCOL_HTTP2", "route": { - "name": "exposed_path_destination_GetHealth9091" + "name": "exposed_path_route_GetHealth1235" }, - "statPrefix": "exposed_path_destination_GetHealth9091", + "statPrefix": "exposed_path_route_GetHealth1235", "staticRoute": true } } @@ -206,13 +206,13 @@ } ], "routes": { - "exposed_path_destination_GetHealth9091": { + "exposed_path_route_GetHealth1235": { "virtualHosts": [ { "domains": [ "*" ], - "name": "exposed_path_destination_GetHealth9091", + "name": "exposed_path_route_GetHealth1235", "routeRules": [ { "destination": { @@ -230,13 +230,13 @@ } ] }, - "exposed_path_destination_health9090": { + "exposed_path_route_health1234": { "virtualHosts": [ { "domains": [ "*" ], - "name": "exposed_path_destination_health9090", + "name": "exposed_path_route_health1234", "routeRules": [ { "destination": {