11# External provisioners
22
33By default, the Coder server runs
4- [ built-in provisioner daemons] ( ../reference/cli/server.md#--provisioner-daemons ) ,
4+ [ built-in provisioner daemons] ( ../../ reference/cli/server.md#--provisioner-daemons ) ,
55which execute ` terraform ` during workspace and template builds. However, there
66are often benefits to running external provisioner daemons:
77
@@ -11,27 +11,29 @@ are often benefits to running external provisioner daemons:
1111- ** Isolate APIs:** Deploy provisioners in isolated environments (on-prem, AWS,
1212 Azure) instead of exposing APIs (Docker, Kubernetes, VMware) to the Coder
1313 server. See
14- [ Provider Authentication] ( ../admin/templates/extending-templates/provider-authentication.md )
14+ [ Provider Authentication] ( ../../ admin/templates/extending-templates/provider-authentication.md )
1515 for more details.
1616
1717- ** Isolate secrets** : Keep Coder unaware of cloud secrets, manage/rotate
1818 secrets on provisioner servers.
1919
2020- ** Reduce server load** : External provisioners reduce load and build queue
2121 times from the Coder server. See
22- [ Scaling Coder] ( ../admin/infrastructure/index.md#scale-tests ) for more
22+ [ Scaling Coder] ( ../../ admin/infrastructure/index.md#scale-tests ) for more
2323 details.
2424
2525Each provisioner runs a single
26- [ concurrent workspace build] ( ../admin/infrastructure/scale-testing.md#control-plane-provisionerd ) .
26+ [ concurrent workspace build] ( ../../ admin/infrastructure/scale-testing.md#control-plane-provisionerd ) .
2727For example, running 30 provisioner containers will allow 30 users to start
2828workspaces at the same time.
2929
3030Provisioners are started with the
31- [ ` coder provisioner start ` ] ( ../reference/cli/provisioner_start.md ) command in
31+ [ ` coder provisioner start ` ] ( ../../ reference/cli/provisioner_start.md ) command in
3232the [ full Coder binary] ( https://github.com/coder/coder/releases ) . Keep reading
3333to learn how to start provisioners via Docker, Kubernetes, Systemd, etc.
3434
35+ You can use the dashboard, CLI, or API to [ manage provisioners] ( ./manage-provisioner-jobs.md ) .
36+
3537## Authentication
3638
3739The provisioner daemon must authenticate with your Coder deployment.
@@ -83,7 +85,7 @@ Kubernetes/Docker/etc.
8385
8486A user account with the role ` Template Admin` or ` Owner` can start provisioners
8587using their user account. This may be beneficial if you are running provisioners
86- via [automation](../reference/index.md).
88+ via [automation](../../ reference/index.md).
8789
8890` ` ` sh
8991coder login https://< your-coder-url>
@@ -110,7 +112,7 @@ Global pre-shared keys (PSK) make it difficult to rotate keys or isolate provisi
110112
111113A deployment-wide PSK can be used to authenticate any provisioner. To use a
112114global PSK, set a
113- [provisioner daemon pre-shared key (PSK)](../reference/cli/server.md#--provisioner-daemon-psk)
115+ [provisioner daemon pre-shared key (PSK)](../../ reference/cli/server.md#--provisioner-daemon-psk)
114116on the Coder server.
115117
116118Next, start the provisioner:
@@ -157,12 +159,12 @@ coder templates push on-prem-chicago \
157159
158160This can also be done in the UI when building a template:
159161
160- ! [template tags](../images/admin/provisioner-tags.png)
162+ ! [template tags](../../ images/admin/provisioner-tags.png)
161163
162164Alternatively, a template can target a provisioner via
163165[workspace tags](https://github.com/coder/coder/tree/main/examples/workspace-tags)
164166inside the Terraform. See the
165- [workspace tags documentation](../admin/templates/extending-templates/workspace-tags.md)
167+ [workspace tags documentation](../../ admin/templates/extending-templates/workspace-tags.md)
166168for more information.
167169
168170> [! NOTE]
@@ -237,17 +239,17 @@ This is illustrated in the below table:
237239
238240Provisioners can broadly be categorized by scope: ` organization` or ` user` . The
239241scope of a provisioner can be specified with
240- [` -tag=scope=< scope> ` ](../reference/cli/provisioner_start.md#-t---tag) when
242+ [` -tag=scope=< scope> ` ](../../ reference/cli/provisioner_start.md#-t---tag) when
241243starting the provisioner daemon. Only users with at least the
242- [Template Admin](./users/index.md#roles) role or higher may create
244+ [Template Admin](.. /users/index.md#roles) role or higher may create
243245organization-scoped provisioner daemons.
244246
245247There are two exceptions:
246248
247- - [Built-in provisioners](../reference/cli/server.md#--provisioner-daemons) are
249+ - [Built-in provisioners](../../ reference/cli/server.md#--provisioner-daemons) are
248250 always organization-scoped.
249251- External provisioners started using a
250- [pre-shared key (PSK)](../reference/cli/provisioner_start.md#--psk) are always
252+ [pre-shared key (PSK)](../../ reference/cli/provisioner_start.md#--psk) are always
251253 organization-scoped.
252254
253255# ## Organization-Scoped Provisioners
@@ -371,7 +373,7 @@ docker run --rm -it \
371373
372374As mentioned above, the Coder server will run built-in provisioners by default.
373375This can be disabled with a server-wide
374- [flag or environment variable](../reference/cli/server.md#--provisioner-daemons).
376+ [flag or environment variable](../../ reference/cli/server.md#--provisioner-daemons).
375377
376378` ` ` sh
377379coder server --provisioner-daemons=0
@@ -390,3 +392,7 @@ address.
390392
391393If you have provisioners daemons deployed as pods, it is advised to monitor them
392394separately.
395+
396+ # # Next
397+
398+ - [Manage Provisioners](./manage-provisioner-jobs.md)
0 commit comments