From b50ea4f095f6ec3510a221ef6561d80c43b2547c Mon Sep 17 00:00:00 2001 From: Kacper Sawicki Date: Wed, 20 Aug 2025 07:35:13 +0000 Subject: [PATCH 1/4] add docs for external workspaces --- docs/admin/templates/index.md | 1 + .../managing-templates/external-workspaces.md | 129 ++++++++++++++++++ docs/manifest.json | 5 + 3 files changed, 135 insertions(+) create mode 100644 docs/admin/templates/managing-templates/external-workspaces.md diff --git a/docs/admin/templates/index.md b/docs/admin/templates/index.md index cc9a08cf26a25..554dd39041444 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. +- [Early Access 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 0000000000000..102cf9f6d68d0 --- /dev/null +++ b/docs/admin/templates/managing-templates/external-workspaces.md @@ -0,0 +1,129 @@ +# External workspaces + +External workspaces allow you to connect agents running on external infrastructure to your Coder deployment. This feature enables you to bring existing servers, on-premises infrastructure, or any machine that can run the Coder agent into your development environment without requiring Coder to provision the compute resources. + +## Prerequisites + +- Access to external compute resources (VMs, bare-metal servers, Kubernetes nodes, etc.) that can run the Coder agent. +- Networking configured so the external agent can reach your Coder deployment. +- A workspace template that includes a coder_external_agent resource. +- To import the template and begin configuring it, follow the [documentation in the Coder Registry](https://registry.coder.com/templates/coder-labs/externally-managed-workspace) + +## Benefits of external workspaces + +External workspaces provide flexibility and control in complex environments: + +- **Incremental adoption of Coder** + + Connect existing infrastructure without migrating everything at once. +- **Flexibility** + + Attach cloud, hybrid, or on-prem machines as developer workspaces. +- **Separation of concerns** + + Provision compute resources externally (your existing IaC or manual processes) while still using Terraform to manage workspace configuration (apps, scripts). + +## Use cases + +- Connecting an existing on-premises GPU server for ML development. +- Bringing a manually provisioned VM in a restricted network under Coder’s workspace management. +- Gradually migrating workloads to Coder without refactoring current infrastructure. +- 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 workflow + +#### 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 workflow + +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. diff --git a/docs/manifest.json b/docs/manifest.json index 66f4e6dbaf476..b3f1ffd246b72 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -519,6 +519,11 @@ "title": "Workspace Scheduling", "description": "Learn how to control how workspaces are started and stopped", "path": "./admin/templates/managing-templates/schedule.md" + }, + { + "title": "Early Access External Workspaces", + "description": "Learn how to manage external workspaces", + "path": "./admin/templates/managing-templates/external-workspaces.md" } ] }, From ddfd65111a742f0c25c728093e8e690651e823cd Mon Sep 17 00:00:00 2001 From: Kacper Sawicki Date: Fri, 22 Aug 2025 08:23:23 +0200 Subject: [PATCH 2/4] Apply suggestions from code review Co-authored-by: Atif Ali --- docs/admin/templates/index.md | 2 +- .../managing-templates/external-workspaces.md | 24 +++++++++++-------- docs/manifest.json | 3 ++- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/docs/admin/templates/index.md b/docs/admin/templates/index.md index 554dd39041444..e5b0314120371 100644 --- a/docs/admin/templates/index.md +++ b/docs/admin/templates/index.md @@ -61,6 +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. -- [Early Access External Workspaces](./managing-templates/external-workspaces.md): Learn how to connect your existing infrastructure to Coder workspaces. +- [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 index 102cf9f6d68d0..e5e25077f1706 100644 --- a/docs/admin/templates/managing-templates/external-workspaces.md +++ b/docs/admin/templates/managing-templates/external-workspaces.md @@ -1,27 +1,31 @@ -# External workspaces +# External Workspaces -External workspaces allow you to connect agents running on external infrastructure to your Coder deployment. This feature enables you to bring existing servers, on-premises infrastructure, or any machine that can run the Coder agent into your development environment without requiring Coder to provision the compute resources. +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 (VMs, bare-metal servers, Kubernetes nodes, etc.) that can run the Coder agent. -- Networking configured so the external agent can reach your Coder deployment. -- A workspace template that includes a coder_external_agent resource. -- To import the template and begin configuring it, follow the [documentation in the Coder Registry](https://registry.coder.com/templates/coder-labs/externally-managed-workspace) +- 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. -## Benefits of external workspaces -External workspaces provide flexibility and control in complex environments: +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** - Connect existing infrastructure without migrating everything at once. + Integrate with existing infrastructure gradually without needing to migrate everything at once. + - **Flexibility** - Attach cloud, hybrid, or on-prem machines as developer workspaces. + Attach cloud, hybrid, or on-premises machines as developer workspaces. + - **Separation of concerns** - Provision compute resources externally (your existing IaC or manual processes) while still using Terraform to manage workspace configuration (apps, scripts). + Provision compute resources externally (using your existing IaC or manual processes) while managing workspace configuration (apps, scripts) with Terraform. ## Use cases diff --git a/docs/manifest.json b/docs/manifest.json index b3f1ffd246b72..36f199920bfd0 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -523,7 +523,8 @@ { "title": "Early Access External Workspaces", "description": "Learn how to manage external workspaces", - "path": "./admin/templates/managing-templates/external-workspaces.md" + "path": "./admin/templates/managing-templates/external-workspaces.md", + "state": ["early access"] } ] }, From 2a2b5570f8e9abc131f8be6e769585611c07b4dc Mon Sep 17 00:00:00 2001 From: Kacper Sawicki Date: Fri, 22 Aug 2025 07:48:26 +0000 Subject: [PATCH 3/4] Apply review suggestions --- .../managing-templates/external-workspaces.md | 22 ++++++++---------- .../admin/templates/external-workspace.png | Bin 0 -> 53806 bytes 2 files changed, 10 insertions(+), 12 deletions(-) create mode 100644 docs/images/admin/templates/external-workspace.png diff --git a/docs/admin/templates/managing-templates/external-workspaces.md b/docs/admin/templates/managing-templates/external-workspaces.md index e5e25077f1706..ff20a736cc8f1 100644 --- a/docs/admin/templates/managing-templates/external-workspaces.md +++ b/docs/admin/templates/managing-templates/external-workspaces.md @@ -4,11 +4,14 @@ External workspaces allow you to seamlessly connect externally managed infrastru ## Prerequisites -- Access to external compute resources (VMs, bare-metal servers, Kubernetes nodes, etc.) that can run the Coder agent. +- 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 @@ -17,22 +20,15 @@ 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. + 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. + 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. - -## Use cases - -- Connecting an existing on-premises GPU server for ML development. -- Bringing a manually provisioned VM in a restricted network under Coder’s workspace management. -- Gradually migrating workloads to Coder without refactoring current infrastructure. -- Running agents in CI pipelines to provision short-lived, externally managed workspaces for testing or build automation. + 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 @@ -131,3 +127,5 @@ coder external-workspaces agent-instructions hello-world --output=json 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 From 496f1a3fa685f45111818746c9762a7bf859e8ff Mon Sep 17 00:00:00 2001 From: Kacper Sawicki Date: Fri, 22 Aug 2025 09:44:10 +0000 Subject: [PATCH 4/4] fix lint --- docs/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manifest.json b/docs/manifest.json index 36f199920bfd0..d1c1875b601fc 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -524,7 +524,7 @@ "title": "Early Access External Workspaces", "description": "Learn how to manage external workspaces", "path": "./admin/templates/managing-templates/external-workspaces.md", - "state": ["early access"] + "state": ["early access"] } ] }, pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy