mirror of
https://github.com/coder/coder.git
synced 2025-07-12 00:14:10 +00:00
docs: add new section on managing provisioners from the dashboard (#16563)
closes #16513 [preview](https://coder.com/docs/@16513-manage-ext-provisioners/admin/provisioners/manage-provisioner-jobs) --------- Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
This commit is contained in:
5
.vscode/settings.json
vendored
5
.vscode/settings.json
vendored
@ -57,5 +57,8 @@
|
|||||||
"[css][html][markdown][yaml]": {
|
"[css][html][markdown][yaml]": {
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||||
},
|
},
|
||||||
"typos.config": ".github/workflows/typos.toml"
|
"typos.config": ".github/workflows/typos.toml",
|
||||||
|
"[markdown]": {
|
||||||
|
"editor.defaultFormatter": "DavidAnson.vscode-markdownlint"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -518,7 +518,7 @@ func TestAcquirer_MatchTags(t *testing.T) {
|
|||||||
|
|
||||||
t.Run("GenTable", func(t *testing.T) {
|
t.Run("GenTable", func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
// Generate a table that can be copy-pasted into docs/admin/provisioners.md
|
// Generate a table that can be copy-pasted into docs/admin/provisioners/index.md
|
||||||
lines := []string{
|
lines := []string{
|
||||||
"\n",
|
"\n",
|
||||||
"| Provisioner Tags | Job Tags | Same Org | Can Run Job? |",
|
"| Provisioner Tags | Job Tags | Same Org | Can Run Job? |",
|
||||||
@ -547,7 +547,7 @@ func TestAcquirer_MatchTags(t *testing.T) {
|
|||||||
s := fmt.Sprintf("| %s | %s | %s | %s |", kvs(tt.acquireJobTags), kvs(tt.provisionerJobTags), sameOrg, acquire)
|
s := fmt.Sprintf("| %s | %s | %s | %s |", kvs(tt.acquireJobTags), kvs(tt.provisionerJobTags), sameOrg, acquire)
|
||||||
lines = append(lines, s)
|
lines = append(lines, s)
|
||||||
}
|
}
|
||||||
t.Log("You can paste this into docs/admin/provisioners.md")
|
t.Log("You can paste this into docs/admin/provisioners/index.md")
|
||||||
t.Log(strings.Join(lines, "\n"))
|
t.Log(strings.Join(lines, "\n"))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ _provisionerd_ is the execution context for infrastructure modifying providers.
|
|||||||
At the moment, the only provider is Terraform (running `terraform`).
|
At the moment, the only provider is Terraform (running `terraform`).
|
||||||
|
|
||||||
By default, the Coder server runs multiple provisioner daemons.
|
By default, the Coder server runs multiple provisioner daemons.
|
||||||
[External provisioners](../provisioners.md) can be added for security or
|
[External provisioners](../provisioners/index.md) can be added for security or
|
||||||
scalability purposes.
|
scalability purposes.
|
||||||
|
|
||||||
### Workspaces
|
### Workspaces
|
||||||
|
@ -294,7 +294,7 @@ be built until there is at least one provisioner daemon running.
|
|||||||
**Solution:**
|
**Solution:**
|
||||||
|
|
||||||
If you are using
|
If you are using
|
||||||
[External Provisioner Daemons](../provisioners.md#external-provisioners), ensure
|
[External Provisioner Daemons](../provisioners/index.md#external-provisioners), ensure
|
||||||
that they are able to successfully connect to Coder. Otherwise, ensure
|
that they are able to successfully connect to Coder. Otherwise, ensure
|
||||||
[`--provisioner-daemons`](../../reference/cli/server.md#--provisioner-daemons)
|
[`--provisioner-daemons`](../../reference/cli/server.md#--provisioner-daemons)
|
||||||
is set to a value greater than 0.
|
is set to a value greater than 0.
|
||||||
|
@ -24,7 +24,7 @@ Connect logs are all captured in the `coderd` logs.
|
|||||||
|
|
||||||
## `provisionerd` Logs
|
## `provisionerd` Logs
|
||||||
|
|
||||||
Logs for [external provisioners](../provisioners.md) are structured
|
Logs for [external provisioners](../provisioners/index.md) are structured
|
||||||
[and configured](../../reference/cli/provisioner_start.md#--log-human) similarly
|
[and configured](../../reference/cli/provisioner_start.md#--log-human) similarly
|
||||||
to `coderd` logs. Use these logs to troubleshoot and monitor the Terraform
|
to `coderd` logs. Use these logs to troubleshoot and monitor the Terraform
|
||||||
operations behind workspaces and templates.
|
operations behind workspaces and templates.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# External provisioners
|
# External provisioners
|
||||||
|
|
||||||
By default, the Coder server runs
|
By default, the Coder server runs
|
||||||
[built-in provisioner daemons](../reference/cli/server.md#--provisioner-daemons),
|
[built-in provisioner daemons](../../reference/cli/server.md#--provisioner-daemons),
|
||||||
which execute `terraform` during workspace and template builds. However, there
|
which execute `terraform` during workspace and template builds. However, there
|
||||||
are often benefits to running external provisioner daemons:
|
are often benefits to running external provisioner daemons:
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ are often benefits to running external provisioner daemons:
|
|||||||
- **Isolate APIs:** Deploy provisioners in isolated environments (on-prem, AWS,
|
- **Isolate APIs:** Deploy provisioners in isolated environments (on-prem, AWS,
|
||||||
Azure) instead of exposing APIs (Docker, Kubernetes, VMware) to the Coder
|
Azure) instead of exposing APIs (Docker, Kubernetes, VMware) to the Coder
|
||||||
server. See
|
server. See
|
||||||
[Provider Authentication](../admin/templates/extending-templates/provider-authentication.md)
|
[Provider Authentication](../../admin/templates/extending-templates/provider-authentication.md)
|
||||||
for more details.
|
for more details.
|
||||||
|
|
||||||
- **Isolate secrets**: Keep Coder unaware of cloud secrets, manage/rotate
|
- **Isolate secrets**: Keep Coder unaware of cloud secrets, manage/rotate
|
||||||
@ -19,19 +19,21 @@ are often benefits to running external provisioner daemons:
|
|||||||
|
|
||||||
- **Reduce server load**: External provisioners reduce load and build queue
|
- **Reduce server load**: External provisioners reduce load and build queue
|
||||||
times from the Coder server. See
|
times from the Coder server. See
|
||||||
[Scaling Coder](../admin/infrastructure/index.md#scale-tests) for more
|
[Scaling Coder](../../admin/infrastructure/index.md#scale-tests) for more
|
||||||
details.
|
details.
|
||||||
|
|
||||||
Each provisioner runs a single
|
Each provisioner runs a single
|
||||||
[concurrent workspace build](../admin/infrastructure/scale-testing.md#control-plane-provisionerd).
|
[concurrent workspace build](../../admin/infrastructure/scale-testing.md#control-plane-provisionerd).
|
||||||
For example, running 30 provisioner containers will allow 30 users to start
|
For example, running 30 provisioner containers will allow 30 users to start
|
||||||
workspaces at the same time.
|
workspaces at the same time.
|
||||||
|
|
||||||
Provisioners are started with the
|
Provisioners are started with the
|
||||||
[`coder provisioner start`](../reference/cli/provisioner_start.md) command in
|
[`coder provisioner start`](../../reference/cli/provisioner_start.md) command in
|
||||||
the [full Coder binary](https://github.com/coder/coder/releases). Keep reading
|
the [full Coder binary](https://github.com/coder/coder/releases). Keep reading
|
||||||
to learn how to start provisioners via Docker, Kubernetes, Systemd, etc.
|
to learn how to start provisioners via Docker, Kubernetes, Systemd, etc.
|
||||||
|
|
||||||
|
You can use the dashboard, CLI, or API to [manage provisioners](./manage-provisioner-jobs.md).
|
||||||
|
|
||||||
## Authentication
|
## Authentication
|
||||||
|
|
||||||
The provisioner daemon must authenticate with your Coder deployment.
|
The provisioner daemon must authenticate with your Coder deployment.
|
||||||
@ -83,7 +85,7 @@ Kubernetes/Docker/etc.
|
|||||||
|
|
||||||
A user account with the role `Template Admin` or `Owner` can start provisioners
|
A user account with the role `Template Admin` or `Owner` can start provisioners
|
||||||
using their user account. This may be beneficial if you are running provisioners
|
using their user account. This may be beneficial if you are running provisioners
|
||||||
via [automation](../reference/index.md).
|
via [automation](../../reference/index.md).
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
coder login https://<your-coder-url>
|
coder login https://<your-coder-url>
|
||||||
@ -110,7 +112,7 @@ Global pre-shared keys (PSK) make it difficult to rotate keys or isolate provisi
|
|||||||
|
|
||||||
A deployment-wide PSK can be used to authenticate any provisioner. To use a
|
A deployment-wide PSK can be used to authenticate any provisioner. To use a
|
||||||
global PSK, set a
|
global PSK, set a
|
||||||
[provisioner daemon pre-shared key (PSK)](../reference/cli/server.md#--provisioner-daemon-psk)
|
[provisioner daemon pre-shared key (PSK)](../../reference/cli/server.md#--provisioner-daemon-psk)
|
||||||
on the Coder server.
|
on the Coder server.
|
||||||
|
|
||||||
Next, start the provisioner:
|
Next, start the provisioner:
|
||||||
@ -157,12 +159,12 @@ coder templates push on-prem-chicago \
|
|||||||
|
|
||||||
This can also be done in the UI when building a template:
|
This can also be done in the UI when building a template:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Alternatively, a template can target a provisioner via
|
Alternatively, a template can target a provisioner via
|
||||||
[workspace tags](https://github.com/coder/coder/tree/main/examples/workspace-tags)
|
[workspace tags](https://github.com/coder/coder/tree/main/examples/workspace-tags)
|
||||||
inside the Terraform. See the
|
inside the Terraform. See the
|
||||||
[workspace tags documentation](../admin/templates/extending-templates/workspace-tags.md)
|
[workspace tags documentation](../../admin/templates/extending-templates/workspace-tags.md)
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
@ -237,17 +239,17 @@ This is illustrated in the below table:
|
|||||||
|
|
||||||
Provisioners can broadly be categorized by scope: `organization` or `user`. The
|
Provisioners can broadly be categorized by scope: `organization` or `user`. The
|
||||||
scope of a provisioner can be specified with
|
scope of a provisioner can be specified with
|
||||||
[`-tag=scope=<scope>`](../reference/cli/provisioner_start.md#-t---tag) when
|
[`-tag=scope=<scope>`](../../reference/cli/provisioner_start.md#-t---tag) when
|
||||||
starting the provisioner daemon. Only users with at least the
|
starting the provisioner daemon. Only users with at least the
|
||||||
[Template Admin](./users/index.md#roles) role or higher may create
|
[Template Admin](../users/index.md#roles) role or higher may create
|
||||||
organization-scoped provisioner daemons.
|
organization-scoped provisioner daemons.
|
||||||
|
|
||||||
There are two exceptions:
|
There are two exceptions:
|
||||||
|
|
||||||
- [Built-in provisioners](../reference/cli/server.md#--provisioner-daemons) are
|
- [Built-in provisioners](../../reference/cli/server.md#--provisioner-daemons) are
|
||||||
always organization-scoped.
|
always organization-scoped.
|
||||||
- External provisioners started using a
|
- External provisioners started using a
|
||||||
[pre-shared key (PSK)](../reference/cli/provisioner_start.md#--psk) are always
|
[pre-shared key (PSK)](../../reference/cli/provisioner_start.md#--psk) are always
|
||||||
organization-scoped.
|
organization-scoped.
|
||||||
|
|
||||||
### Organization-Scoped Provisioners
|
### Organization-Scoped Provisioners
|
||||||
@ -371,7 +373,7 @@ docker run --rm -it \
|
|||||||
|
|
||||||
As mentioned above, the Coder server will run built-in provisioners by default.
|
As mentioned above, the Coder server will run built-in provisioners by default.
|
||||||
This can be disabled with a server-wide
|
This can be disabled with a server-wide
|
||||||
[flag or environment variable](../reference/cli/server.md#--provisioner-daemons).
|
[flag or environment variable](../../reference/cli/server.md#--provisioner-daemons).
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
coder server --provisioner-daemons=0
|
coder server --provisioner-daemons=0
|
||||||
@ -390,3 +392,7 @@ address.
|
|||||||
|
|
||||||
If you have provisioners daemons deployed as pods, it is advised to monitor them
|
If you have provisioners daemons deployed as pods, it is advised to monitor them
|
||||||
separately.
|
separately.
|
||||||
|
|
||||||
|
## Next
|
||||||
|
|
||||||
|
- [Manage Provisioners](./manage-provisioner-jobs.md)
|
80
docs/admin/provisioners/manage-provisioner-jobs.md
Normal file
80
docs/admin/provisioners/manage-provisioner-jobs.md
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
# Manage provisioner jobs
|
||||||
|
|
||||||
|
[Provisioners](./index.md) start and run provisioner jobs to create or delete workspaces.
|
||||||
|
Each time a workspace is built, rebuilt, or destroyed, it generates a new job and assigns
|
||||||
|
the job to an available provisioner daemon for execution.
|
||||||
|
|
||||||
|
While most jobs complete smoothly, issues with templates, cloud resources, or misconfigured
|
||||||
|
provisioners can cause jobs to fail or hang indefinitely (these are in a `Pending` state).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## How to find provisioner jobs
|
||||||
|
|
||||||
|
Coder admins can view and manage provisioner jobs.
|
||||||
|
|
||||||
|
Use the dashboard, CLI, or API:
|
||||||
|
|
||||||
|
- **Dashboard**:
|
||||||
|
|
||||||
|
Select **Admin settings** > **Organizations** > **Provisioner Jobs**
|
||||||
|
|
||||||
|
Provisioners are organization-specific. If you have more than one organization, select it first.
|
||||||
|
|
||||||
|
- **CLI**: `coder provisioner jobs list`
|
||||||
|
- **API**: `/api/v2/provisioner/jobs`
|
||||||
|
|
||||||
|
## Manage provisioner jobs from the dashboard
|
||||||
|
|
||||||
|
View more information about and manage your provisioner jobs from the Coder dashboard.
|
||||||
|
|
||||||
|
1. Under **Admin settings** select **Organizations**, then select **Provisioner jobs**.
|
||||||
|
|
||||||
|
1. Select the **>** to expand each entry for more information.
|
||||||
|
|
||||||
|
1. To delete a job, select the 🚫 at the end of the entry's row.
|
||||||
|
|
||||||
|
If your user doesn't have the correct permissions, this option is greyed out.
|
||||||
|
|
||||||
|
## Provisioner job status
|
||||||
|
|
||||||
|
Each provisioner job has a lifecycle state:
|
||||||
|
|
||||||
|
| Status | Description |
|
||||||
|
|---------------|----------------------------------------------------------------|
|
||||||
|
| **Pending** | Job is queued but has not yet been picked up by a provisioner. |
|
||||||
|
| **Running** | A provisioner is actively working on the job. |
|
||||||
|
| **Completed** | Job succeeded. |
|
||||||
|
| **Failed** | Provisioner encountered an error while executing the job. |
|
||||||
|
| **Canceled** | Job was manually terminated by an admin. |
|
||||||
|
|
||||||
|
## When to cancel provisioner jobs
|
||||||
|
|
||||||
|
A job might need to be cancelled when:
|
||||||
|
|
||||||
|
- It has been stuck in **Pending** for too long. This can be due to misconfigured tags or unavailable provisioners.
|
||||||
|
- It is **Running** indefinitely, often caused by external system failures or buggy templates.
|
||||||
|
- An admin wants to abort a failed attempt, fix the root cause, and retry provisioning.
|
||||||
|
- A workspace was deleted in the UI but the underlying cloud resource wasn’t cleaned up, causing a hanging delete job.
|
||||||
|
|
||||||
|
Cancelling a job does not automatically retry the operation.
|
||||||
|
It clears the stuck state and allows the admin or user to trigger the action again if needed.
|
||||||
|
|
||||||
|
## Troubleshoot provisioner jobs
|
||||||
|
|
||||||
|
Provisioner jobs can fail or slow workspace creation for a number of reasons.
|
||||||
|
Follow these steps to identify problematic jobs or daemons:
|
||||||
|
|
||||||
|
1. Filter jobs by `pending` status in the dashboard, or use the CLI:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
coder provisioner jobs list -s pending
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Look for daemons with multiple failed jobs and for template [tag mismatches](./index.md#provisioner-tags).
|
||||||
|
|
||||||
|
1. Cancel the job through the dashboard, or use the CLI:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
coder provisioner jobs cancel <job-id>
|
||||||
|
```
|
@ -7,7 +7,7 @@ guide to
|
|||||||
|
|
||||||
This article explains how to use secrets in a workspace. To authenticate the
|
This article explains how to use secrets in a workspace. To authenticate the
|
||||||
workspace provisioner, see the
|
workspace provisioner, see the
|
||||||
<a href="../provisioners.md#authentication">provisioners documentation</a>.
|
<a href="../provisioners/index.md#authentication">provisioners documentation</a>.
|
||||||
|
|
||||||
## Before you begin
|
## Before you begin
|
||||||
|
|
||||||
|
@ -154,4 +154,4 @@ more information.
|
|||||||
## Up Next
|
## Up Next
|
||||||
|
|
||||||
- [Setup and manage templates](../templates/index.md)
|
- [Setup and manage templates](../templates/index.md)
|
||||||
- [Setup external provisioners](../provisioners.md)
|
- [Setup external provisioners](../provisioners/index.md)
|
||||||
|
@ -68,7 +68,7 @@ coder templates push
|
|||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> If `template push` fails, Coder is likely not authorized to deploy
|
> If `template push` fails, Coder is likely not authorized to deploy
|
||||||
> infrastructure in the given location. Learn how to configure
|
> infrastructure in the given location. Learn how to configure
|
||||||
> [provisioner authentication](../provisioners.md).
|
> [provisioner authentication](../provisioners/index.md).
|
||||||
|
|
||||||
You can edit the metadata of the template such as the display name with the
|
You can edit the metadata of the template such as the display name with the
|
||||||
[`templates edit`](../../reference/cli/templates_edit.md) command:
|
[`templates edit`](../../reference/cli/templates_edit.md) command:
|
||||||
|
@ -120,7 +120,7 @@ template as the underlying module.
|
|||||||
### Private git repository
|
### Private git repository
|
||||||
|
|
||||||
If you are importing a module from a private git repository, the Coder server or
|
If you are importing a module from a private git repository, the Coder server or
|
||||||
[provisioner](../../provisioners.md) needs git credentials. Since this token
|
[provisioner](../../provisioners/index.md) needs git credentials. Since this token
|
||||||
will only be used for cloning your repositories with modules, it is best to
|
will only be used for cloning your repositories with modules, it is best to
|
||||||
create a token with access limited to the repository and no extra permissions.
|
create a token with access limited to the repository and no extra permissions.
|
||||||
In GitHub, you can generate a
|
In GitHub, you can generate a
|
||||||
|
@ -46,7 +46,7 @@ There are two ways to use a remote Docker host for authentication:
|
|||||||
|
|
||||||
- Configure the Docker provider to use a
|
- Configure the Docker provider to use a
|
||||||
[remote host over SSH or TCP](https://registry.terraform.io/providers/kreuzwerker/docker/latest/docs#remote-hosts).
|
[remote host over SSH or TCP](https://registry.terraform.io/providers/kreuzwerker/docker/latest/docs#remote-hosts).
|
||||||
- Run an [external provisioner](../../provisioners.md) on the remote docker
|
- Run an [external provisioner](../../provisioners/index.md) on the remote docker
|
||||||
host.
|
host.
|
||||||
|
|
||||||
Other providers might also support authenticated environments. Check the
|
Other providers might also support authenticated environments. Check the
|
||||||
|
@ -24,7 +24,7 @@ Roles determine which actions users can take within the platform.
|
|||||||
| Manage **ALL** Templates | | | ✅ | ✅ |
|
| Manage **ALL** Templates | | | ✅ | ✅ |
|
||||||
| View **ALL** Workspaces | | | ✅ | ✅ |
|
| View **ALL** Workspaces | | | ✅ | ✅ |
|
||||||
| Update and delete **ALL** Workspaces | | | | ✅ |
|
| Update and delete **ALL** Workspaces | | | | ✅ |
|
||||||
| Run [external provisioners](../provisioners.md) | | | ✅ | ✅ |
|
| Run [external provisioners](../provisioners/index.md) | | | ✅ | ✅ |
|
||||||
| Execute and use **ALL** Workspaces | | | | ✅ |
|
| Execute and use **ALL** Workspaces | | | | ✅ |
|
||||||
| View all user operation [Audit Logs](../security/audit-logs.md) | ✅ | | | ✅ |
|
| View all user operation [Audit Logs](../security/audit-logs.md) | ✅ | | | ✅ |
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ Note that these permissions only apply to the scope of an
|
|||||||
A malicious Template Admin could write a template that executes commands on the
|
A malicious Template Admin could write a template that executes commands on the
|
||||||
host (or `coder server` container), which potentially escalates their privileges
|
host (or `coder server` container), which potentially escalates their privileges
|
||||||
or shuts down the Coder server. To avoid this, run
|
or shuts down the Coder server. To avoid this, run
|
||||||
[external provisioners](../provisioners.md).
|
[external provisioners](../provisioners/index.md).
|
||||||
|
|
||||||
In low-trust environments, we do not recommend giving users direct access to
|
In low-trust environments, we do not recommend giving users direct access to
|
||||||
edit templates. Instead, use
|
edit templates. Instead, use
|
||||||
|
@ -37,7 +37,7 @@ From there, you can manage the name, icon, description, users, and groups:
|
|||||||
|
|
||||||
Any additional organizations have unique admins, users, templates, provisioners,
|
Any additional organizations have unique admins, users, templates, provisioners,
|
||||||
groups, and workspaces. Each organization must have at least one dedicated
|
groups, and workspaces. Each organization must have at least one dedicated
|
||||||
[provisioner](../provisioners.md) since the built-in provisioners only apply to
|
[provisioner](../provisioners/index.md) since the built-in provisioners only apply to
|
||||||
the default organization.
|
the default organization.
|
||||||
|
|
||||||
You can configure [organization/role/group sync](./idp-sync.md) from your
|
You can configure [organization/role/group sync](./idp-sync.md) from your
|
||||||
@ -71,7 +71,7 @@ Next deploy a provisioner and template for this organization.
|
|||||||
|
|
||||||
### 2. Deploy a provisioner
|
### 2. Deploy a provisioner
|
||||||
|
|
||||||
[Provisioners](../provisioners.md) are organization-scoped and are responsible
|
[Provisioners](../provisioners/index.md) are organization-scoped and are responsible
|
||||||
for executing Terraform/OpenTofu to provision the infrastructure for workspaces
|
for executing Terraform/OpenTofu to provision the infrastructure for workspaces
|
||||||
and testing templates. Before creating templates, we must deploy at least one
|
and testing templates. Before creating templates, we must deploy at least one
|
||||||
provisioner as the built-in provisioners are scoped to the default organization.
|
provisioner as the built-in provisioners are scoped to the default organization.
|
||||||
@ -90,7 +90,7 @@ provisioner as the built-in provisioners are scoped to the default organization.
|
|||||||
|
|
||||||
In this example, start the provisioner using the Coder CLI on a host with
|
In this example, start the provisioner using the Coder CLI on a host with
|
||||||
Docker. For instructions on using other platforms like Kubernetes, see our
|
Docker. For instructions on using other platforms like Kubernetes, see our
|
||||||
[provisioner documentation](../provisioners.md).
|
[provisioner documentation](../provisioners/index.md).
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
export CODER_URL=https://<your-coder-url>
|
export CODER_URL=https://<your-coder-url>
|
||||||
|
BIN
docs/images/admin/provisioners/provisioner-jobs.png
Normal file
BIN
docs/images/admin/provisioners/provisioner-jobs.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 78 KiB |
@ -499,9 +499,17 @@
|
|||||||
{
|
{
|
||||||
"title": "External Provisioners",
|
"title": "External Provisioners",
|
||||||
"description": "Learn how to run external provisioners with Coder",
|
"description": "Learn how to run external provisioners with Coder",
|
||||||
"path": "./admin/provisioners.md",
|
"path": "./admin/provisioners/index.md",
|
||||||
"icon_path": "./images/icons/key.svg",
|
"icon_path": "./images/icons/key.svg",
|
||||||
|
"state": ["enterprise", "premium"],
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"title": "Manage Provisioner Jobs",
|
||||||
|
"description": "Learn how to run external provisioners with Coder",
|
||||||
|
"path": "./admin/provisioners/manage-provisioner-jobs.md",
|
||||||
"state": ["enterprise", "premium"]
|
"state": ["enterprise", "premium"]
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "External Auth",
|
"title": "External Auth",
|
||||||
|
@ -141,7 +141,7 @@ maintenance window to minimize disruption.
|
|||||||
### Locality
|
### Locality
|
||||||
|
|
||||||
We recommend that you run one or more
|
We recommend that you run one or more
|
||||||
[provisioner daemon deployments external to Coder Server](../../admin/provisioners.md)
|
[provisioner daemon deployments external to Coder Server](../../admin/provisioners/index.md)
|
||||||
and disable provisioner daemons within your Coder Server.
|
and disable provisioner daemons within your Coder Server.
|
||||||
This allows you to scale them independently of the Coder Server:
|
This allows you to scale them independently of the Coder Server:
|
||||||
|
|
||||||
|
@ -161,7 +161,7 @@ provision:
|
|||||||
|
|
||||||
### Authentication
|
### Authentication
|
||||||
|
|
||||||
1. Use a [scoped key](../../admin/provisioners.md#scoped-key-recommended) to
|
1. Use a [scoped key](../../admin/provisioners/index.md#scoped-key-recommended) to
|
||||||
authenticate the provisioner daemons with Coder. These keys can only be used
|
authenticate the provisioner daemons with Coder. These keys can only be used
|
||||||
to authenticate provisioner daemons (not other APIs on the Coder Server).
|
to authenticate provisioner daemons (not other APIs on the Coder Server).
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ config option.
|
|||||||
You risk overloading Coder if you use too many built-in provisioners, so we
|
You risk overloading Coder if you use too many built-in provisioners, so we
|
||||||
recommend a maximum of five built-in provisioners per `coderd` replica. For more
|
recommend a maximum of five built-in provisioners per `coderd` replica. For more
|
||||||
than five provisioners, we recommend that you move to
|
than five provisioners, we recommend that you move to
|
||||||
[External Provisioners](../../admin/provisioners.md) and also consider
|
[External Provisioners](../../admin/provisioners/index.md) and also consider
|
||||||
[High Availability](../../admin/networking/high-availability.md) to run multiple
|
[High Availability](../../admin/networking/high-availability.md) to run multiple
|
||||||
`coderd` replicas.
|
`coderd` replicas.
|
||||||
|
|
||||||
@ -165,4 +165,4 @@ directory.
|
|||||||
|
|
||||||
Ensure that this directory is set to a location on disk which will persist
|
Ensure that this directory is set to a location on disk which will persist
|
||||||
across restarts of Coder or
|
across restarts of Coder or
|
||||||
[external provisioners](../../admin/provisioners.md), if you're using them.
|
[external provisioners](../../admin/provisioners/index.md), if you're using them.
|
||||||
|
Reference in New Issue
Block a user