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

Commit16384f8

Browse files
authored
feat: Add provisioner force-cancel flag (#4947)
* feat: Add provisionerd force cancel flag* Golden files* Fix: typesGenerated.ts* Use single struct for Provisioner config
1 parentf6130e2 commit16384f8

File tree

7 files changed

+221
-189
lines changed

7 files changed

+221
-189
lines changed

‎cli/deployment/config.go

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -151,12 +151,6 @@ func newConfig() *codersdk.DeploymentConfig {
151151
Flag:"in-memory",
152152
Hidden:true,
153153
},
154-
ProvisionerDaemons:&codersdk.DeploymentConfigField[int]{
155-
Name:"Provisioner Daemons",
156-
Usage:"Number of provisioner daemons to create on start. If builds are stuck in queued state for a long time, consider increasing this.",
157-
Flag:"provisioner-daemons",
158-
Default:3,
159-
},
160154
PostgresURL:&codersdk.DeploymentConfigField[string]{
161155
Name:"Postgres Connection URL",
162156
Usage:"URL of a PostgreSQL database. If empty, PostgreSQL binaries will be downloaded from Maven (https://repo1.maven.org/maven2) and store all data in the config root. Access the built-in database with\"coder server postgres-builtin-url\".",
@@ -359,6 +353,20 @@ func newConfig() *codersdk.DeploymentConfig {
359353
Flag:"user-workspace-quota",
360354
Enterprise:true,
361355
},
356+
Provisioner:&codersdk.ProvisionerConfig{
357+
Daemons:&codersdk.DeploymentConfigField[int]{
358+
Name:"Provisioner Daemons",
359+
Usage:"Number of provisioner daemons to create on start. If builds are stuck in queued state for a long time, consider increasing this.",
360+
Flag:"provisioner-daemons",
361+
Default:3,
362+
},
363+
ForceCancelInterval:&codersdk.DeploymentConfigField[time.Duration]{
364+
Name:"Force Cancel Interval",
365+
Usage:"Time to force cancel provisioning tasks that are stuck.",
366+
Flag:"provisioner-force-cancel-interval",
367+
Default:10*time.Minute,
368+
},
369+
},
362370
}
363371
}
364372

‎cli/deployment/config_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func TestConfig(t *testing.T) {
4747
require.Equal(t,config.Pprof.Enable.Value,true)
4848
require.Equal(t,config.Prometheus.Address.Value,"hello-world")
4949
require.Equal(t,config.Prometheus.Enable.Value,true)
50-
require.Equal(t,config.ProvisionerDaemons.Value,5)
50+
require.Equal(t,config.Provisioner.Daemons.Value,5)
5151
require.Equal(t,config.SecureAuthCookie.Value,true)
5252
require.Equal(t,config.SSHKeygenAlgorithm.Value,"potato")
5353
require.Equal(t,config.Telemetry.Enable.Value,false)

‎cli/server.go

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -562,8 +562,8 @@ func Server(vip *viper.Viper, newAPI func(context.Context, *coderd.Options) (*co
562562
}
563563
}()
564564
provisionerdMetrics:=provisionerd.NewMetrics(options.PrometheusRegistry)
565-
fori:=0;i<cfg.ProvisionerDaemons.Value;i++ {
566-
daemon,err:=newProvisionerDaemon(ctx,coderAPI,provisionerdMetrics,logger,cfg.CacheDirectory.Value,errCh,false)
565+
fori:=0;i<cfg.Provisioner.Daemons.Value;i++ {
566+
daemon,err:=newProvisionerDaemon(ctx,coderAPI,provisionerdMetrics,logger,cfg,errCh,false)
567567
iferr!=nil {
568568
returnxerrors.Errorf("create provisioner daemon: %w",err)
569569
}
@@ -832,7 +832,7 @@ func newProvisionerDaemon(
832832
coderAPI*coderd.API,
833833
metrics provisionerd.Metrics,
834834
logger slog.Logger,
835-
cacheDirstring,
835+
cfg*codersdk.DeploymentConfig,
836836
errChchanerror,
837837
devbool,
838838
) (srv*provisionerd.Server,errerror) {
@@ -843,9 +843,9 @@ func newProvisionerDaemon(
843843
}
844844
}()
845845

846-
err=os.MkdirAll(cacheDir,0o700)
846+
err=os.MkdirAll(cfg.CacheDirectory.Value,0o700)
847847
iferr!=nil {
848-
returnnil,xerrors.Errorf("mkdir %q: %w",cacheDir,err)
848+
returnnil,xerrors.Errorf("mkdir %q: %w",cfg.CacheDirectory.Value,err)
849849
}
850850

851851
terraformClient,terraformServer:=provisionersdk.TransportPipe()
@@ -861,7 +861,7 @@ func newProvisionerDaemon(
861861
ServeOptions:&provisionersdk.ServeOptions{
862862
Listener:terraformServer,
863863
},
864-
CachePath:cacheDir,
864+
CachePath:cfg.CacheDirectory.Value,
865865
Logger:logger,
866866
})
867867
iferr!=nil&&!xerrors.Is(err,context.Canceled) {
@@ -902,13 +902,14 @@ func newProvisionerDaemon(
902902
provisioners[string(database.ProvisionerTypeEcho)]=proto.NewDRPCProvisionerClient(provisionersdk.Conn(echoClient))
903903
}
904904
returnprovisionerd.New(coderAPI.ListenProvisionerDaemon,&provisionerd.Options{
905-
Logger:logger,
906-
PollInterval:500*time.Millisecond,
907-
UpdateInterval:500*time.Millisecond,
908-
Provisioners:provisioners,
909-
WorkDirectory:tempDir,
910-
TracerProvider:coderAPI.TracerProvider,
911-
Metrics:&metrics,
905+
Logger:logger,
906+
PollInterval:500*time.Millisecond,
907+
UpdateInterval:500*time.Millisecond,
908+
ForceCancelInterval:cfg.Provisioner.ForceCancelInterval.Value,
909+
Provisioners:provisioners,
910+
WorkDirectory:tempDir,
911+
TracerProvider:coderAPI.TracerProvider,
912+
Metrics:&metrics,
912913
}),nil
913914
}
914915

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp