@@ -30,19 +30,18 @@ func UpdateBridgeConfigForMultiKeyListener(siteId string, mkl *skupperv2alpha1.M
3030func UpdateBridgeConfigForMultiKeyListenerWithHostAndPort (siteId string , mkl * skupperv2alpha1.MultiKeyListener , host string , port int , config * qdr.BridgeConfig ) {
3131 name := mkl .Name
3232 tcpListenerName := multiAddressTcpListenerName (name )
33-
34- config .AddTcpListener (qdr.TcpEndpoint {
35- Name : tcpListenerName ,
36- SiteId : siteId ,
37- Host : host ,
38- Port : strconv .Itoa (port ),
39- SslProfile : mkl .Spec .TlsCredentials ,
40- MultiAddressStrategy : "priority" ,
41- AuthenticatePeer : mkl .Spec .RequireClientCert ,
42- })
33+ tcpListenerConfig := qdr.TcpEndpoint {
34+ Name : tcpListenerName ,
35+ SiteId : siteId ,
36+ Host : host ,
37+ Port : strconv .Itoa (port ),
38+ SslProfile : mkl .Spec .TlsCredentials ,
39+ AuthenticatePeer : mkl .Spec .RequireClientCert ,
40+ }
4341
4442 // Create listenerAddress entities for each routing key in the strategy
4543 if mkl .Spec .Strategy .Priority != nil {
44+ tcpListenerConfig .MultiAddressStrategy = "priority"
4645 numKeys := len (mkl .Spec .Strategy .Priority .RoutingKeys )
4746 for i , routingKey := range mkl .Spec .Strategy .Priority .RoutingKeys {
4847 laName := listenerAddressName (name , routingKey )
@@ -53,7 +52,19 @@ func UpdateBridgeConfigForMultiKeyListenerWithHostAndPort(siteId string, mkl *sk
5352 Listener : tcpListenerName ,
5453 })
5554 }
55+ } else if mkl .Spec .Strategy .Weighted != nil {
56+ tcpListenerConfig .MultiAddressStrategy = "weighted"
57+ for routingKey , weight := range mkl .Spec .Strategy .Weighted .RoutingKeys {
58+ laName := listenerAddressName (name , routingKey )
59+ config .AddListenerAddress (qdr.ListenerAddress {
60+ Name : laName ,
61+ Address : routingKey ,
62+ Value : int (weight ),
63+ Listener : tcpListenerName ,
64+ })
65+ }
5666 }
67+ config .AddTcpListener (tcpListenerConfig )
5768}
5869
5970// RemoveBridgeConfigForMultiKeyListener removes the tcpListener and listenerAddress
0 commit comments