@@ -820,7 +820,7 @@ func (r *RootCmd) Server(newAPI func(context.Context, *coderd.Options) (*coderd.
820
820
for i := int64 (0 ); i < cfg .Provisioner .Daemons .Value (); i ++ {
821
821
daemonCacheDir := filepath .Join (cacheDir , fmt .Sprintf ("provisioner-%d" , i ))
822
822
daemon , err := newProvisionerDaemon (
823
- ctx , coderAPI , provisionerdMetrics , logger , cfg , daemonCacheDir , errCh , false , & provisionerdWaitGroup ,
823
+ ctx , coderAPI , provisionerdMetrics , logger , cfg , daemonCacheDir , errCh , & provisionerdWaitGroup ,
824
824
)
825
825
if err != nil {
826
826
return xerrors .Errorf ("create provisioner daemon: %w" , err )
@@ -1176,7 +1176,6 @@ func newProvisionerDaemon(
1176
1176
cfg * codersdk.DeploymentValues ,
1177
1177
cacheDir string ,
1178
1178
errCh chan error ,
1179
- dev bool ,
1180
1179
wg * sync.WaitGroup ,
1181
1180
) (srv * provisionerd.Server , err error ) {
1182
1181
ctx , cancel := context .WithCancel (ctx )
@@ -1191,53 +1190,14 @@ func newProvisionerDaemon(
1191
1190
return nil , xerrors .Errorf ("mkdir %q: %w" , cacheDir , err )
1192
1191
}
1193
1192
1194
- tfDir := filepath .Join (cacheDir , "tf" )
1195
- err = os .MkdirAll (tfDir , 0o700 )
1196
- if err != nil {
1197
- return nil , xerrors .Errorf ("mkdir terraform dir: %w" , err )
1198
- }
1199
-
1200
- tracer := coderAPI .TracerProvider .Tracer (tracing .TracerName )
1201
- terraformClient , terraformServer := provisionersdk .MemTransportPipe ()
1202
- wg .Add (1 )
1203
- go func () {
1204
- defer wg .Done ()
1205
- <- ctx .Done ()
1206
- _ = terraformClient .Close ()
1207
- _ = terraformServer .Close ()
1208
- }()
1209
- wg .Add (1 )
1210
- go func () {
1211
- defer wg .Done ()
1212
- defer cancel ()
1213
-
1214
- err := terraform .Serve (ctx , & terraform.ServeOptions {
1215
- ServeOptions : & provisionersdk.ServeOptions {
1216
- Listener : terraformServer ,
1217
- },
1218
- CachePath : tfDir ,
1219
- Logger : logger ,
1220
- Tracer : tracer ,
1221
- })
1222
- if err != nil && ! xerrors .Is (err , context .Canceled ) {
1223
- select {
1224
- case errCh <- err :
1225
- default :
1226
- }
1227
- }
1228
- }()
1229
-
1230
1193
workDir := filepath .Join (cacheDir , "work" )
1231
1194
err = os .MkdirAll (workDir , 0o700 )
1232
1195
if err != nil {
1233
1196
return nil , xerrors .Errorf ("mkdir work dir: %w" , err )
1234
1197
}
1235
1198
1236
- provisioners := provisionerd.Provisioners {
1237
- string (database .ProvisionerTypeTerraform ): sdkproto .NewDRPCProvisionerClient (terraformClient ),
1238
- }
1239
- // include echo provisioner when in dev mode
1240
- if dev {
1199
+ provisioners := provisionerd.Provisioners {}
1200
+ if cfg .Provisioner .DaemonsEcho {
1241
1201
echoClient , echoServer := provisionersdk .MemTransportPipe ()
1242
1202
wg .Add (1 )
1243
1203
go func () {
@@ -1260,7 +1220,46 @@ func newProvisionerDaemon(
1260
1220
}
1261
1221
}()
1262
1222
provisioners [string (database .ProvisionerTypeEcho )] = sdkproto .NewDRPCProvisionerClient (echoClient )
1223
+ } else {
1224
+ tfDir := filepath .Join (cacheDir , "tf" )
1225
+ err = os .MkdirAll (tfDir , 0o700 )
1226
+ if err != nil {
1227
+ return nil , xerrors .Errorf ("mkdir terraform dir: %w" , err )
1228
+ }
1229
+
1230
+ tracer := coderAPI .TracerProvider .Tracer (tracing .TracerName )
1231
+ terraformClient , terraformServer := provisionersdk .MemTransportPipe ()
1232
+ wg .Add (1 )
1233
+ go func () {
1234
+ defer wg .Done ()
1235
+ <- ctx .Done ()
1236
+ _ = terraformClient .Close ()
1237
+ _ = terraformServer .Close ()
1238
+ }()
1239
+ wg .Add (1 )
1240
+ go func () {
1241
+ defer wg .Done ()
1242
+ defer cancel ()
1243
+
1244
+ err := terraform .Serve (ctx , & terraform.ServeOptions {
1245
+ ServeOptions : & provisionersdk.ServeOptions {
1246
+ Listener : terraformServer ,
1247
+ },
1248
+ CachePath : tfDir ,
1249
+ Logger : logger ,
1250
+ Tracer : tracer ,
1251
+ })
1252
+ if err != nil && ! xerrors .Is (err , context .Canceled ) {
1253
+ select {
1254
+ case errCh <- err :
1255
+ default :
1256
+ }
1257
+ }
1258
+ }()
1259
+
1260
+ provisioners [string (database .ProvisionerTypeTerraform )] = sdkproto .NewDRPCProvisionerClient (terraformClient )
1263
1261
}
1262
+
1264
1263
debounce := time .Second
1265
1264
return provisionerd .New (func (ctx context.Context ) (proto.DRPCProvisionerDaemonClient , error ) {
1266
1265
// This debounces calls to listen every second. Read the comment
0 commit comments