Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3590102

Browse files
authored
feat(agent): add CODER_AGENT_DEVCONTAINERS_ENABLE option (#16525)
1 parent34b46f9 commit3590102

File tree

3 files changed

+44
-15
lines changed

3 files changed

+44
-15
lines changed

‎agent/agentcontainers/containers.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,3 +140,10 @@ type Lister interface {
140140
// This should include running and stopped containers.
141141
List(ctx context.Context) (codersdk.WorkspaceAgentListContainersResponse,error)
142142
}
143+
144+
// NoopLister is a Lister interface that never returns any containers.
145+
typeNoopListerstruct{}
146+
147+
func (NoopLister)List(_ context.Context) (codersdk.WorkspaceAgentListContainersResponse,error) {
148+
return codersdk.WorkspaceAgentListContainersResponse{},nil
149+
}

‎cli/agent.go

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"cdr.dev/slog/sloggers/slogjson"
2626
"cdr.dev/slog/sloggers/slogstackdriver"
2727
"github.com/coder/coder/v2/agent"
28+
"github.com/coder/coder/v2/agent/agentcontainers"
2829
"github.com/coder/coder/v2/agent/agentexec"
2930
"github.com/coder/coder/v2/agent/agentssh"
3031
"github.com/coder/coder/v2/agent/reaper"
@@ -37,21 +38,22 @@ import (
3738

3839
func (r*RootCmd)workspaceAgent()*serpent.Command {
3940
var (
40-
authstring
41-
logDirstring
42-
scriptDataDirstring
43-
pprofAddressstring
44-
noReapbool
45-
sshMaxTimeout time.Duration
46-
tailnetListenPortint64
47-
prometheusAddressstring
48-
debugAddressstring
49-
slogHumanPathstring
50-
slogJSONPathstring
51-
slogStackdriverPathstring
52-
blockFileTransferbool
53-
agentHeaderCommandstring
54-
agentHeader []string
41+
authstring
42+
logDirstring
43+
scriptDataDirstring
44+
pprofAddressstring
45+
noReapbool
46+
sshMaxTimeout time.Duration
47+
tailnetListenPortint64
48+
prometheusAddressstring
49+
debugAddressstring
50+
slogHumanPathstring
51+
slogJSONPathstring
52+
slogStackdriverPathstring
53+
blockFileTransferbool
54+
agentHeaderCommandstring
55+
agentHeader []string
56+
devcontainersEnabledbool
5557
)
5658
cmd:=&serpent.Command{
5759
Use:"agent",
@@ -314,6 +316,15 @@ func (r *RootCmd) workspaceAgent() *serpent.Command {
314316
returnxerrors.Errorf("create agent execer: %w",err)
315317
}
316318

319+
varcontainerLister agentcontainers.Lister
320+
if!devcontainersEnabled {
321+
logger.Info(ctx,"agent devcontainer detection not enabled")
322+
containerLister=&agentcontainers.NoopLister{}
323+
}else {
324+
logger.Info(ctx,"agent devcontainer detection enabled")
325+
containerLister=agentcontainers.NewDocker(execer)
326+
}
327+
317328
agnt:=agent.New(agent.Options{
318329
Client:client,
319330
Logger:logger,
@@ -339,6 +350,7 @@ func (r *RootCmd) workspaceAgent() *serpent.Command {
339350
PrometheusRegistry:prometheusRegistry,
340351
BlockFileTransfer:blockFileTransfer,
341352
Execer:execer,
353+
ContainerLister:containerLister,
342354
})
343355

344356
promHandler:=agent.PrometheusMetricsHandler(prometheusRegistry,logger)
@@ -461,6 +473,13 @@ func (r *RootCmd) workspaceAgent() *serpent.Command {
461473
Description:fmt.Sprintf("Block file transfer using known applications: %s.",strings.Join(agentssh.BlockedFileTransferCommands,",")),
462474
Value:serpent.BoolOf(&blockFileTransfer),
463475
},
476+
{
477+
Flag:"devcontainers-enable",
478+
Default:"true",
479+
Env:"CODER_AGENT_DEVCONTAINERS_ENABLE",
480+
Description:"Allow the agent to automatically detect running devcontainers.",
481+
Value:serpent.BoolOf(&devcontainersEnabled),
482+
},
464483
}
465484

466485
returncmd

‎cli/testdata/coder_agent_--help.golden

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ OPTIONS:
3333
--debug-address string, $CODER_AGENT_DEBUG_ADDRESS (default: 127.0.0.1:2113)
3434
The bind address to serve a debug HTTP server.
3535

36+
--devcontainers-enable bool, $CODER_AGENT_DEVCONTAINERS_ENABLE (default: true)
37+
Allow the agent to automatically detect running devcontainers.
38+
3639
--log-dir string, $CODER_AGENT_LOG_DIR (default: /tmp)
3740
Specify the location for the agent log files.
3841

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp