mirror of
https://github.com/coder/coder.git
synced 2025-07-12 00:14:10 +00:00
docs: add coderd terraform provider (#14374)
This commit is contained in:
@ -4,8 +4,9 @@ All actions possible through the Coder dashboard can also be automated as it
|
||||
utilizes the same public REST API. There are several ways to extend/automate
|
||||
Coder:
|
||||
|
||||
- [CLI](../reference/cli/README.md)
|
||||
- [REST API](../reference/api/README.md)
|
||||
- [coderd Terraform Provider](https://registry.terraform.io/providers/coder/coderd/latest)
|
||||
- [CLI](../reference/cli)
|
||||
- [REST API](../reference/api)
|
||||
- [Coder SDK](https://pkg.go.dev/github.com/coder/coder/v2/codersdk)
|
||||
|
||||
## Quickstart
|
||||
@ -32,21 +33,25 @@ curl https://coder.example.com/api/v2/workspaces?q=owner:me \
|
||||
|
||||
## Documentation
|
||||
|
||||
We publish an [API reference](../reference/api/README.md) in our documentation.
|
||||
You can also enable a
|
||||
[Swagger endpoint](../reference/cli/server.md#--swagger-enable) on your Coder
|
||||
deployment.
|
||||
We publish an [API reference](../reference/api) in our documentation. You can
|
||||
also enable a [Swagger endpoint](../reference/cli/server.md#--swagger-enable) on
|
||||
your Coder deployment.
|
||||
|
||||
## Use cases
|
||||
|
||||
We strive to keep the following use cases up to date, but please note that
|
||||
changes to API queries and routes can occur. For the most recent queries and
|
||||
payloads, we recommend checking the CLI and API documentation.
|
||||
payloads, we recommend checking the relevant documentation.
|
||||
|
||||
### Users & Groups
|
||||
|
||||
- [Manage Users via Terraform](https://registry.terraform.io/providers/coder/coderd/latest/docs/resources/user)
|
||||
- [Manage Groups via Terraform](https://registry.terraform.io/providers/coder/coderd/latest/docs/resources/group)
|
||||
|
||||
### Templates
|
||||
|
||||
- [Update templates in CI](../templates/change-management.md): Store all
|
||||
templates and git and update templates in CI/CD pipelines.
|
||||
- [Manage templates via Terraform or CLI](../templates/change-management.md):
|
||||
Store all templates in git and update them in CI/CD pipelines.
|
||||
|
||||
### Workspace agents
|
||||
|
||||
|
@ -1,8 +1,9 @@
|
||||
# Groups
|
||||
|
||||
Groups can be used with [template RBAC](./rbac.md) to give groups of users
|
||||
access to specific templates. They can be defined in Coder or
|
||||
[synced from your identity provider](./auth.md#group-sync-enterprise).
|
||||
access to specific templates. They can be defined via the Coder web UI,
|
||||
[synced from your identity provider](./auth.md) or
|
||||
[managed via Terraform](https://registry.terraform.io/providers/coder/coderd/latest/docs/resources/template).
|
||||
|
||||

|
||||
|
||||
|
@ -1,8 +1,9 @@
|
||||
# Role Based Access Control (RBAC)
|
||||
|
||||
Use RBAC to define which users and [groups](./groups.md) can use specific
|
||||
templates in Coder. These can be defined in Coder or
|
||||
[synced from your identity provider](./auth.md)
|
||||
templates in Coder. These can be defined via the Coder web UI,
|
||||
[synced from your identity provider](./auth.md) or
|
||||
[managed via Terraform](https://registry.terraform.io/providers/coder/coderd/latest/docs/resources/template).
|
||||
|
||||

|
||||
|
||||
|
@ -26,8 +26,12 @@ Workspace proxies can be used in the browser by navigating to the user
|
||||
|
||||
## Requirements
|
||||
|
||||
- The [Coder CLI](../reference/cli/README.md) must be installed and
|
||||
authenticated as a user with the Owner role.
|
||||
- The [Coder CLI](../reference/cli) must be installed and authenticated as a
|
||||
user with the Owner role.
|
||||
- Alternatively, the
|
||||
[coderd Terraform Provider](https://registry.terraform.io/providers/coder/coderd/latest)
|
||||
can be used to create and manage workspace proxies, if authenticated as a user
|
||||
with the Owner role.
|
||||
|
||||
## Step 1: Create the proxy
|
||||
|
||||
@ -198,6 +202,49 @@ FROM ghcr.io/coder/coder:latest
|
||||
ENTRYPOINT ["/opt/coder", "wsproxy", "server"]
|
||||
```
|
||||
|
||||
### Managing via Terraform
|
||||
|
||||
The
|
||||
[coderd Terraform Provider](https://registry.terraform.io/providers/coder/coderd/latest)
|
||||
can also be used to create and manage workspace proxies in the same Terraform
|
||||
configuration as your deployment.
|
||||
|
||||
```hcl
|
||||
|
||||
provider "coderd" {
|
||||
url = "https://coder.example.com"
|
||||
token = "****"
|
||||
}
|
||||
|
||||
resource "coderd_workspace_proxy" "sydney-wsp" {
|
||||
name = "sydney-wsp"
|
||||
display_name = "Australia (Sydney)"
|
||||
icon = "/emojis/1f1e6-1f1fa.png"
|
||||
}
|
||||
resource "kubernetes_deployment" "syd_wsproxy" {
|
||||
metadata { /* ... */ }
|
||||
spec {
|
||||
template {
|
||||
metadata { /* ... */ }
|
||||
spec {
|
||||
container {
|
||||
name = "syd-wsp"
|
||||
image = "ghcr.io/coder/coder:latest"
|
||||
args = ["wsproxy", "server"]
|
||||
env {
|
||||
name = "CODER_PROXY_SESSION_TOKEN"
|
||||
value = coderd_workspace_proxy.sydney-wsp.session_token
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Selecting a proxy
|
||||
|
||||
Users can select a workspace proxy at the top-right of the browser-based Coder
|
||||
|
Reference in New Issue
Block a user