Merge remote-tracking branch 'origin/main' into feature/shared-service-config-loader

# Conflicts:
#	go.mod
#	go.sum
This commit is contained in:
jnfrati
2026-09-25 17:26:20 +02:00
1084 changed files with 86715 additions and 27508 deletions
+14 -10
View File
@@ -121,7 +121,7 @@ func execute(cmd *cobra.Command, _ []string) error {
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
err = shutdownServers(ctx, servers.relaySrv, servers.healthcheck, servers.stunServer, servers.mgmtSrv, servers.metricsServer)
err = shutdownServers(ctx, servers.relaySrv, servers.healthcheck, servers.stunServer, servers.mgmtSrv, servers.signalSrv, servers.metricsServer)
wg.Wait()
return err
}
@@ -206,7 +206,7 @@ func createAllServers(ctx context.Context, cfg *CombinedConfig) (*serverInstance
metricsServer: metricsServer,
}
_, tlsSupport, err := handleTLSConfig(cfg)
tlsConfig, tlsSupport, err := handleTLSConfig(cfg)
if err != nil {
return nil, fmt.Errorf("failed to setup TLS config: %w", err)
}
@@ -215,7 +215,7 @@ func createAllServers(ctx context.Context, cfg *CombinedConfig) (*serverInstance
return nil, err
}
if err := servers.createManagementServer(ctx, cfg); err != nil {
if err := servers.createManagementServer(ctx, cfg, tlsConfig); err != nil {
return nil, err
}
@@ -265,7 +265,7 @@ func (s *serverInstances) createRelayServer(cfg *CombinedConfig, tlsSupport bool
return nil
}
func (s *serverInstances) createManagementServer(ctx context.Context, cfg *CombinedConfig) error {
func (s *serverInstances) createManagementServer(ctx context.Context, cfg *CombinedConfig, tlsConfig *tls.Config) error {
if !cfg.Management.Enabled {
return nil
}
@@ -298,7 +298,7 @@ func (s *serverInstances) createManagementServer(ctx context.Context, cfg *Combi
LogConfigInfo(mgmtConfig)
s.mgmtSrv, err = createManagementServer(cfg, mgmtConfig)
s.mgmtSrv, err = createManagementServer(cfg, mgmtConfig, tlsConfig)
if err != nil {
cleanupSTUNListeners(s.stunListeners)
return fmt.Errorf("failed to create management server: %w", err)
@@ -366,7 +366,6 @@ func setupServerHooks(servers *serverInstances, cfg *CombinedConfig) {
})
}
}
}
func startServers(wg *sync.WaitGroup, srv *relayServer.Server, httpHealthcheck *healthcheck.Server, stunServer *stun.Server, metricsServer *sharedMetrics.Metrics) {
@@ -401,7 +400,7 @@ func startServers(wg *sync.WaitGroup, srv *relayServer.Server, httpHealthcheck *
}
}
func shutdownServers(ctx context.Context, srv *relayServer.Server, httpHealthcheck *healthcheck.Server, stunServer *stun.Server, mgmtSrv mgmtServer.Server, metricsServer *sharedMetrics.Metrics) error {
func shutdownServers(ctx context.Context, srv *relayServer.Server, httpHealthcheck *healthcheck.Server, stunServer *stun.Server, mgmtSrv mgmtServer.Server, signalSrv *signalServer.Server, metricsServer *sharedMetrics.Metrics) error {
var errs error
if err := httpHealthcheck.Shutdown(ctx); err != nil {
@@ -427,6 +426,10 @@ func shutdownServers(ctx context.Context, srv *relayServer.Server, httpHealthche
}
}
if signalSrv != nil {
signalSrv.Stop()
}
if metricsServer != nil {
log.Infof("shutting down metrics server")
if err := metricsServer.Shutdown(ctx); err != nil {
@@ -515,7 +518,7 @@ func handleTLSConfig(cfg *CombinedConfig) (*tls.Config, bool, error) {
return nil, false, nil
}
func createManagementServer(cfg *CombinedConfig, mgmtConfig *nbconfig.Config) (mgmtServer.Server, error) {
func createManagementServer(cfg *CombinedConfig, mgmtConfig *nbconfig.Config, tlsConfig *tls.Config) (mgmtServer.Server, error) {
mgmt := cfg.Management
// Extract port from listen address
@@ -540,10 +543,11 @@ func createManagementServer(cfg *CombinedConfig, mgmtConfig *nbconfig.Config) (m
&mgmtServer.Config{
NbConfig: mgmtConfig,
DNSDomain: "",
MgmtSingleAccModeDomain: "",
MgmtSingleAccModeDomain: mgmtServer.DefaultSelfHostedDomain,
AutoResolveDomains: true,
MgmtPort: mgmtPort,
MgmtMetricsPort: cfg.Server.MetricsPort,
TLSConfig: tlsConfig,
DisableMetrics: mgmt.DisableAnonymousMetrics,
DisableGeoliteUpdate: mgmt.DisableGeoliteUpdate,
// Always enable user deletion from IDP in combined server (embedded IdP is always enabled)
@@ -555,7 +559,7 @@ func createManagementServer(cfg *CombinedConfig, mgmtConfig *nbconfig.Config) (m
}
// createCombinedHandler creates an HTTP handler that multiplexes Management, Signal (via wsproxy), and Relay WebSocket traffic
func createCombinedHandler(grpcServer *grpc.Server, httpHandler http.Handler, idpHandler http.Handler, relaySrv *relayServer.Server, meter metric.Meter, cfg *CombinedConfig) http.Handler {
func createCombinedHandler(grpcServer *grpc.Server, httpHandler, idpHandler http.Handler, relaySrv *relayServer.Server, meter metric.Meter, cfg *CombinedConfig) http.Handler {
wsProxy := wsproxyserver.New(grpcServer, wsproxyserver.WithOTelMeter(meter))
var relayAcceptFn func(conn listener.Conn)