@@ -22,7 +22,6 @@ import (
22
22
"cdr.dev/slog"
23
23
"github.com/coder/coder/v2/coderd/tracing"
24
24
"github.com/coder/coder/v2/coderd/workspaceapps"
25
- "github.com/coder/coder/v2/coderd/wsconncache"
26
25
"github.com/coder/coder/v2/codersdk"
27
26
"github.com/coder/coder/v2/site"
28
27
"github.com/coder/coder/v2/tailnet"
@@ -41,16 +40,14 @@ func init() {
41
40
42
41
var _ workspaceapps.AgentProvider = (* ServerTailnet )(nil )
43
42
44
- // NewServerTailnet creates a new tailnet intended for use by coderd. It
45
- // automatically falls back to wsconncache if a legacy agent is encountered.
43
+ // NewServerTailnet creates a new tailnet intended for use by coderd.
46
44
func NewServerTailnet (
47
45
ctx context.Context ,
48
46
logger slog.Logger ,
49
47
derpServer * derp.Server ,
50
48
derpMapFn func ()* tailcfg.DERPMap ,
51
49
derpForceWebSockets bool ,
52
50
getMultiAgent func (context.Context ) (tailnet.MultiAgentConn ,error ),
53
- cache * wsconncache.Cache ,
54
51
traceProvider trace.TracerProvider ,
55
52
) (* ServerTailnet ,error ) {
56
53
logger = logger .Named ("servertailnet" )
@@ -97,7 +94,6 @@ func NewServerTailnet(
97
94
conn :conn ,
98
95
coordinatee :conn ,
99
96
getMultiAgent :getMultiAgent ,
100
- cache :cache ,
101
97
agentConnectionTimes :map [uuid.UUID ]time.Time {},
102
98
agentTickets :map [uuid.UUID ]map [uuid.UUID ]struct {}{},
103
99
transport :tailnetTransport .Clone (),
@@ -299,7 +295,6 @@ type ServerTailnet struct {
299
295
300
296
getMultiAgent func (context.Context ) (tailnet.MultiAgentConn ,error )
301
297
agentConn atomic.Pointer [tailnet.MultiAgentConn ]
302
- cache * wsconncache.Cache
303
298
nodesMu sync.Mutex
304
299
// agentConnectionTimes is a map of agent tailnetNodes the server wants to
305
300
// keep a connection to. It contains the last time the agent was connected
@@ -311,7 +306,7 @@ type ServerTailnet struct {
311
306
transport * http.Transport
312
307
}
313
308
314
- func (s * ServerTailnet )ReverseProxy (targetURL ,dashboardURL * url.URL ,agentID uuid.UUID )( _ * httputil.ReverseProxy , release func (), _ error ) {
309
+ func (s * ServerTailnet )ReverseProxy (targetURL ,dashboardURL * url.URL ,agentID uuid.UUID )* httputil.ReverseProxy {
315
310
proxy := httputil .NewSingleHostReverseProxy (targetURL )
316
311
proxy .ErrorHandler = func (w http.ResponseWriter ,r * http.Request ,err error ) {
317
312
site .RenderStaticErrorPage (w ,r , site.ErrorPageData {
@@ -325,7 +320,7 @@ func (s *ServerTailnet) ReverseProxy(targetURL, dashboardURL *url.URL, agentID u
325
320
proxy .Director = s .director (agentID ,proxy .Director )
326
321
proxy .Transport = s .transport
327
322
328
- return proxy , func () {}, nil
323
+ return proxy
329
324
}
330
325
331
326
type agentIDKey struct {}
@@ -387,28 +382,17 @@ func (s *ServerTailnet) AgentConn(ctx context.Context, agentID uuid.UUID) (*code
387
382
ret func ()
388
383
)
389
384
390
- if s .getAgentConn ().AgentIsLegacy (agentID ) {
391
- s .logger .Debug (s .ctx ,"acquiring legacy agent" ,slog .F ("agent_id" ,agentID ))
392
- cconn ,release ,err := s .cache .Acquire (agentID )
393
- if err != nil {
394
- return nil ,nil ,xerrors .Errorf ("acquire legacy agent conn: %w" ,err )
395
- }
396
-
397
- conn = cconn .WorkspaceAgentConn
398
- ret = release
399
- }else {
400
- s .logger .Debug (s .ctx ,"acquiring agent" ,slog .F ("agent_id" ,agentID ))
401
- err := s .ensureAgent (agentID )
402
- if err != nil {
403
- return nil ,nil ,xerrors .Errorf ("ensure agent: %w" ,err )
404
- }
405
- ret = s .acquireTicket (agentID )
406
-
407
- conn = codersdk .NewWorkspaceAgentConn (s .conn , codersdk.WorkspaceAgentConnOptions {
408
- AgentID :agentID ,
409
- CloseFunc :func ()error {return codersdk .ErrSkipClose },
410
- })
385
+ s .logger .Debug (s .ctx ,"acquiring agent" ,slog .F ("agent_id" ,agentID ))
386
+ err := s .ensureAgent (agentID )
387
+ if err != nil {
388
+ return nil ,nil ,xerrors .Errorf ("ensure agent: %w" ,err )
411
389
}
390
+ ret = s .acquireTicket (agentID )
391
+
392
+ conn = codersdk .NewWorkspaceAgentConn (s .conn , codersdk.WorkspaceAgentConnOptions {
393
+ AgentID :agentID ,
394
+ CloseFunc :func ()error {return codersdk .ErrSkipClose },
395
+ })
412
396
413
397
// Since we now have an open conn, be careful to close it if we error
414
398
// without returning it to the user.
@@ -458,7 +442,6 @@ func (c *netConnCloser) Close() error {
458
442
459
443
func (s * ServerTailnet )Close ()error {
460
444
s .cancel ()
461
- _ = s .cache .Close ()
462
445
_ = s .conn .Close ()
463
446
s .transport .CloseIdleConnections ()
464
447
<- s .derpMapUpdaterClosed