From 33509f2c2054ad4d4a83d3d98ac3850ddf034b8d Mon Sep 17 00:00:00 2001 From: Kacper Sawicki Date: Thu, 28 Aug 2025 10:12:08 +0200 Subject: [PATCH] feat(docs): add docs for external workspaces (#19437) ## Description This PR introduces documentation for recently merged feature: external workspaces. https://github.com/coder/coder/pull/19285 https://github.com/coder/coder/pull/19286 https://github.com/coder/coder/pull/19287 https://github.com/coder/coder/pull/19288 --------- Co-authored-by: Atif Ali --- docs/admin/templates/index.md | 1 + .../managing-templates/external-workspaces.md | 131 ++++++++++++++++++ .../admin/templates/external-workspace.png | Bin 0 -> 53806 bytes docs/manifest.json | 6 + 4 files changed, 138 insertions(+) create mode 100644 docs/admin/templates/managing-templates/external-workspaces.md create mode 100644 docs/images/admin/templates/external-workspace.png diff --git a/docs/admin/templates/index.md b/docs/admin/templates/index.md index cc9a08cf26..e5b0314120 100644 --- a/docs/admin/templates/index.md +++ b/docs/admin/templates/index.md @@ -61,5 +61,6 @@ needs of different teams. changes are reviewed and tested. - [Permissions and Policies](./template-permissions.md): Control who may access and modify your template. +- [External Workspaces](./managing-templates/external-workspaces.md): Learn how to connect your existing infrastructure to Coder workspaces. diff --git a/docs/admin/templates/managing-templates/external-workspaces.md b/docs/admin/templates/managing-templates/external-workspaces.md new file mode 100644 index 0000000000..25a97db468 --- /dev/null +++ b/docs/admin/templates/managing-templates/external-workspaces.md @@ -0,0 +1,131 @@ +# External Workspaces + +External workspaces allow you to seamlessly connect externally managed infrastructure as Coder workspaces. This enables you to integrate existing servers, on-premises systems, or any capable machine with the Coder environment, ensuring a smooth and efficient development workflow without requiring Coder to provision additional compute resources. + +## Prerequisites + +- Access to external compute resources that can run the Coder agent: + - **Windows**: amd64 or arm64 architecture + - **Linux**: amd64, arm64, or armv7 architecture + - **macOS**: amd64 or arm64 architecture + - **Examples**: VMs, bare-metal servers, Kubernetes nodes, or any machine meeting the above requirements. +- Networking access to your Coder deployment. +- A workspace template that includes a [`coder_external_agent`](https://registry.terraform.io/providers/coder/coder/latest/docs/resources/external_agent) resource. + +We provide an example template on how to set up external workspaces in the [Coder Registry](https://registry.coder.com/templates/coder-labs/externally-managed-workspace) + +## Benefits + +External workspaces offer flexibility and control in complex environments: + +- **Incremental adoption of Coder** + + Integrate with existing infrastructure gradually without needing to migrate everything at once. This is particularly useful when gradually migrating worklods to Coder without refactoring current infrastructure. + +- **Flexibility** + + Attach cloud, hybrid, or on-premises machines as developer workspaces. This enables connecting existing on-premises GPU servers for ML development or bringing manually provisioned VMs in restricted networks under Coder's workspace management. + +- **Separation of concerns** + + Provision compute resources externally (using your existing IaC or manual processes) while managing workspace configuration (apps, scripts) with Terraform. This approach is ideal for running agents in CI pipelines to provision short-lived, externally managed workspaces for testing or build automation. + +## Known limitations + +- **Lifecycle control** + + Start/stop/restart actions in the Coder UI are disabled for external workspaces. +- **No automatic deprovisioning** + + Deleting an external workspace in Coder removes the agent token and record, but does not delete the underlying compute resource. +- **Manual agent management** + + Administrators are responsible for deploying and maintaining agents on external resources. +- **Limited UI indicators** + + External workspaces are marked in the UI, but underlying infrastructure health is not monitored by Coder. + +## When to use it? + +Use external workspaces if: + +- You have compute resources provisioned outside of Coder’s Terraform flows. +- You want to connect specialized or legacy systems to your Coder deployment. +- You are migrating incrementally to Coder and need hybrid support. +- You need finer control over how and where agents run, while still benefiting from Coder’s workspace experience. + +## How to use it? + +You can create and manage external workspaces using either the **CLI** or the **UI**. + +
+ +## CLI + +1. **Create an external workspace** + + ```bash + coder external-workspaces create hello-world \ + --template=externally-managed-workspace -y + ``` + + - Validates that the template includes a `coder_external_agent` resource. + - Once created, the workspace is registered in Coder but marked as requiring an external agent. + +2. **List external workspaces** + + ```bash + coder external-workspaces list + ``` + + Example output: + + ```bash + WORKSPACE TEMPLATE STATUS HEALTHY LAST BUILT CURRENT VERSION OUTDATED + hello-world externally-managed-workspace Started true 15m happy_mendel9 false + ``` + +3. **Retrieve agent connection instructions** + + Use this command to query the script you must run on the external machine: + + ```bash + coder external-workspaces agent-instructions hello-world + ``` + + Example: + + ```bash + Please run the following command to attach external agent to the workspace hello-world: + + curl -fsSL "https:///api/v2/init-script/linux/amd64" | CODER_AGENT_TOKEN="" sh + ``` + + You can also output JSON for automation: + + ```bash + coder external-workspaces agent-instructions hello-world --output=json + ``` + + ```json + { + "workspace_name": "hello-world", + "agent_name": "main", + "auth_type": "token", + "auth_token": "", + "init_script": "curl -fsSL \"https:///api/v2/init-script/linux/arm64\" | CODER_AGENT_TOKEN=\"\" sh" + } + ``` + +## UI + +1. Import the external workspace template (see prerequisites). +2. In the Coder UI, go to **Workspaces → New workspace** and select the imported template. +3. Once the workspace is created, Coder will display **connection details** with the command users need to run on the external machine to start the agent. +4. The workspace will appear in the dashboard, but with the following differences: + - **Start**, **Stop**, and **Restart** actions are disabled. + - Users are provided with instructions for launching the agent manually on the external machine. + +![External Workspace View](../../../images/admin/templates/external-workspace.png) + +
diff --git a/docs/images/admin/templates/external-workspace.png b/docs/images/admin/templates/external-workspace.png new file mode 100644 index 0000000000000000000000000000000000000000..d4e3dc02b27556080fa2e69d908eda118d1f1845 GIT binary patch literal 53806 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 aml=EZg5d2dUuF-1e~NM{vN^X+{QnoRFglh1 literal 0 HcmV?d00001 diff --git a/docs/manifest.json b/docs/manifest.json index 4a382da8ec..4d2a62c994 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -537,6 +537,12 @@ "title": "Workspace Scheduling", "description": "Learn how to control how workspaces are started and stopped", "path": "./admin/templates/managing-templates/schedule.md" + }, + { + "title": "External Workspaces", + "description": "Learn how to manage external workspaces", + "path": "./admin/templates/managing-templates/external-workspaces.md", + "state": ["early access"] } ] },