From 5f818e9d1adc4247e2c0c4c1519b1ac0a41b4fc7 Mon Sep 17 00:00:00 2001 From: Matheus Pimenta Date: Tue, 3 Mar 2026 01:03:47 +0000 Subject: [PATCH] supervisor: accept Orchestrator interface instead of concrete type Signed-off-by: Matheus Pimenta --- connection/connection.go | 2 ++ connection/connection_test.go | 4 ++++ supervisor/supervisor.go | 5 ++--- supervisor/tunnel.go | 5 ++--- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/connection/connection.go b/connection/connection.go index 4803e930f84..663dad01c32 100644 --- a/connection/connection.go +++ b/connection/connection.go @@ -15,6 +15,7 @@ import ( "github.com/google/uuid" "github.com/pkg/errors" + cfdflow "github.com/cloudflare/cloudflared/flow" "github.com/cloudflare/cloudflared/tracing" "github.com/cloudflare/cloudflared/tunnelrpc/pogs" "github.com/cloudflare/cloudflared/websocket" @@ -53,6 +54,7 @@ type Orchestrator interface { UpdateConfig(version int32, config []byte) *pogs.UpdateConfigurationResponse GetConfigJSON() ([]byte, error) GetOriginProxy() (OriginProxy, error) + GetFlowLimiter() cfdflow.Limiter } type TunnelProperties struct { diff --git a/connection/connection_test.go b/connection/connection_test.go index a9dc5901f71..fc3e450bffd 100644 --- a/connection/connection_test.go +++ b/connection/connection_test.go @@ -63,6 +63,10 @@ func (mcr *mockOrchestrator) GetOriginProxy() (OriginProxy, error) { return mcr.originProxy, nil } +func (*mockOrchestrator) GetFlowLimiter() cfdflow.Limiter { + return nil +} + func (mcr *mockOrchestrator) WarpRoutingEnabled() (enabled bool) { return true } diff --git a/supervisor/supervisor.go b/supervisor/supervisor.go index 5bd49749a49..07bfb9de139 100644 --- a/supervisor/supervisor.go +++ b/supervisor/supervisor.go @@ -13,7 +13,6 @@ import ( "github.com/cloudflare/cloudflared/connection" "github.com/cloudflare/cloudflared/edgediscovery" - "github.com/cloudflare/cloudflared/orchestration" v3 "github.com/cloudflare/cloudflared/quic/v3" "github.com/cloudflare/cloudflared/retry" "github.com/cloudflare/cloudflared/signal" @@ -31,7 +30,7 @@ const ( // reconnects them if they disconnect. type Supervisor struct { config *TunnelConfig - orchestrator *orchestration.Orchestrator + orchestrator connection.Orchestrator edgeIPs *edgediscovery.Edge edgeTunnelServer TunnelServer tunnelErrors chan tunnelError @@ -56,7 +55,7 @@ type tunnelError struct { err error } -func NewSupervisor(config *TunnelConfig, orchestrator *orchestration.Orchestrator, reconnectCh chan ReconnectSignal, gracefulShutdownC <-chan struct{}) (*Supervisor, error) { +func NewSupervisor(config *TunnelConfig, orchestrator connection.Orchestrator, reconnectCh chan ReconnectSignal, gracefulShutdownC <-chan struct{}) (*Supervisor, error) { isStaticEdge := len(config.EdgeAddrs) > 0 var err error diff --git a/supervisor/tunnel.go b/supervisor/tunnel.go index 97013f5a0b2..5931224fabd 100644 --- a/supervisor/tunnel.go +++ b/supervisor/tunnel.go @@ -26,7 +26,6 @@ import ( "github.com/cloudflare/cloudflared/ingress" "github.com/cloudflare/cloudflared/ingress/origins" "github.com/cloudflare/cloudflared/management" - "github.com/cloudflare/cloudflared/orchestration" quicpogs "github.com/cloudflare/cloudflared/quic" v3 "github.com/cloudflare/cloudflared/quic/v3" "github.com/cloudflare/cloudflared/retry" @@ -86,7 +85,7 @@ func (c *TunnelConfig) connectionOptions(originLocalAddr string, previousAttempt func StartTunnelDaemon( ctx context.Context, config *TunnelConfig, - orchestrator *orchestration.Orchestrator, + orchestrator connection.Orchestrator, connectedSignal *signal.Signal, reconnectCh chan ReconnectSignal, graceShutdownC <-chan struct{}, @@ -168,7 +167,7 @@ func (f *ipAddrFallback) ShouldGetNewAddress(connIndex uint8, err error) (needsN type EdgeTunnelServer struct { config *TunnelConfig - orchestrator *orchestration.Orchestrator + orchestrator connection.Orchestrator sessionManager v3.SessionManager datagramMetrics v3.Metrics edgeAddrHandler EdgeAddrHandler