44 "fmt"
55 gotemplate "text/template"
66
7+ "github.com/go-logr/logr"
78 "github.com/nginx/nginx-gateway-fabric/v2/internal/controller/nginx/config/shared"
89 "github.com/nginx/nginx-gateway-fabric/v2/internal/controller/nginx/config/stream"
910 "github.com/nginx/nginx-gateway-fabric/v2/internal/controller/state/dataplane"
@@ -13,7 +14,7 @@ import (
1314var streamServersTemplate = gotemplate .Must (gotemplate .New ("streamServers" ).Parse (streamServersTemplateText ))
1415
1516func (g GeneratorImpl ) executeStreamServers (conf dataplane.Configuration ) []executeResult {
16- streamServers := createStreamServers (conf )
17+ streamServers := createStreamServers (g . logger , conf )
1718
1819 streamServerConfig := stream.ServerConfig {
1920 Servers : streamServers ,
@@ -32,7 +33,7 @@ func (g GeneratorImpl) executeStreamServers(conf dataplane.Configuration) []exec
3233 }
3334}
3435
35- func createStreamServers (conf dataplane.Configuration ) []stream.Server {
36+ func createStreamServers (logger logr. Logger , conf dataplane.Configuration ) []stream.Server {
3637 totalServers := len (conf .TLSPassthroughServers ) + len (conf .TCPServers ) + len (conf .UDPServers )
3738 if totalServers == 0 {
3839 return nil
@@ -85,8 +86,23 @@ func createStreamServers(conf dataplane.Configuration) []stream.Server {
8586 streamServers = append (streamServers , streamServer )
8687 }
8788
89+ // Process Layer4 servers (TCP and UDP)
90+ processLayer4Servers (logger , conf .TCPServers , conf .UDPServers , upstreams , portSet , & streamServers )
91+
92+ return streamServers
93+ }
94+
95+ // processLayer4Servers processes TCP and UDP servers to create stream servers.
96+ func processLayer4Servers (
97+ logger logr.Logger ,
98+ tcpServers []dataplane.Layer4VirtualServer ,
99+ udpServers []dataplane.Layer4VirtualServer ,
100+ upstreams map [string ]dataplane.Upstream ,
101+ portSet map [int32 ]struct {},
102+ streamServers * []stream.Server ,
103+ ) {
88104 // Process TCP servers
89- for i , server := range conf . TCPServers {
105+ for i , server := range tcpServers {
90106 if _ , inPortSet := portSet [server .Port ]; inPortSet {
91107 continue // Skip if port already in use
92108 }
@@ -97,15 +113,19 @@ func createStreamServers(conf dataplane.Configuration) []stream.Server {
97113 StatusZone : fmt .Sprintf ("tcp_%d" , server .Port ),
98114 ProxyPass : server .UpstreamName ,
99115 }
100- streamServers = append (streamServers , streamServer )
116+ * streamServers = append (* streamServers , streamServer )
101117 portSet [server .Port ] = struct {}{}
102118 } else {
103- fmt .Printf ("DEBUG: createStreamServers - TCP Server %d: Skipped - upstream not found or no endpoints\n " , i )
119+ logger .V (1 ).Info ("TCP Server skipped - upstream not found or no endpoints" ,
120+ "serverIndex" , i ,
121+ "port" , server .Port ,
122+ "upstreamName" , server .UpstreamName ,
123+ )
104124 }
105125 }
106126
107127 // Process UDP servers
108- for _ , server := range conf . UDPServers {
128+ for _ , server := range udpServers {
109129 if _ , inPortSet := portSet [server .Port ]; inPortSet {
110130 continue // Skip if port already in use
111131 }
@@ -120,12 +140,10 @@ func createStreamServers(conf dataplane.Configuration) []stream.Server {
120140 ProxyTimeout : "1s" ,
121141 },
122142 }
123- streamServers = append (streamServers , streamServer )
143+ * streamServers = append (* streamServers , streamServer )
124144 portSet [server .Port ] = struct {}{}
125145 }
126146 }
127-
128- return streamServers
129147}
130148
131149func getRewriteClientIPSettingsForStream (
0 commit comments