Skip to content

Commit d95f35d

Browse files
committed
update the default filter chain name
Signed-off-by: Huabing (Robin) Zhao <[email protected]>
1 parent 7928d48 commit d95f35d

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

internal/xds/translator/listener.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,6 @@ func (t *Translator) addHCMToXDSListener(
457457

458458
filterChain := &listenerv3.FilterChain{
459459
Filters: filters,
460-
Name: httpsListenerFilterChainName(irListener),
461460
}
462461

463462
if irListener.TLS != nil {
@@ -481,6 +480,7 @@ func (t *Translator) addHCMToXDSListener(
481480
}
482481
}
483482
filterChain.TransportSocket = tSocket
483+
filterChain.Name = httpsListenerFilterChainName(irListener)
484484

485485
if err := addServerNamesMatch(xdsListener, filterChain, irListener.Hostnames); err != nil {
486486
return err
@@ -490,10 +490,10 @@ func (t *Translator) addHCMToXDSListener(
490490
} else {
491491
// Add the HTTP filter chain as the default filter chain
492492
// Make sure one does not exist
493-
// TODO(zhaohuabing): this branch never gets called, clean the code
494493
if xdsListener.DefaultFilterChain != nil {
495494
return errors.New("default filter chain already exists")
496495
}
496+
filterChain.Name = httpListenerDefaultFilterChainName(irListener, t.xdsNameSchemeV2() )
497497
xdsListener.DefaultFilterChain = filterChain
498498
}
499499

@@ -505,6 +505,16 @@ func routeConfigName(irListener *ir.HTTPListener) string {
505505
return irListener.Name
506506
}
507507

508+
// port value is used for the default filter chain name for HTTP listeners, as multiple HTTP listeners are merged into
509+
// one filter chain.
510+
func httpListenerDefaultFilterChainName(irListener *ir.HTTPListener, nameSchemeV2 bool) string {
511+
if nameSchemeV2 {
512+
return fmt.Sprint("http-", irListener.ExternalPort)
513+
}
514+
// For backward compatibility, we use the listener name as the filter chain name.
515+
return irListener.Name
516+
}
517+
508518
// irListener name is used as the filter chain name for HTTPS listener, as Listener is 1:1 mapping to the filter chain
509519
// The Gateway API layer ensures that each listener has a unique combination of hostname and port.
510520
func httpsListenerFilterChainName(irListener *ir.HTTPListener) string {

internal/xds/translator/testdata/out/xds-ir/xds-name-scheme-v2.listeners.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
serverHeaderTransformation: PASS_THROUGH
3030
statPrefix: http-10080
3131
useRemoteAddress: true
32-
name: envoy-gateway/gateway-1/http1
32+
name: http-80
3333
maxConnectionsToAcceptPerSocketEvent: 1
3434
name: tcp-80
3535
perConnectionBufferLimitBytes: 32768

0 commit comments

Comments
 (0)