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