File tree Expand file tree Collapse file tree 3 files changed +88
-0
lines changed
registry/coder-labs/templates/externally-managed-workspace Expand file tree Collapse file tree 3 files changed +88
-0
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ display_name : Externally Managed Workspace
3+ description : A template to provision externally managed resources as Coder workspaces
4+ icon : ../../../../.icons/electric-plug-emoji.svg
5+ verified : true
6+ tags : [external]
7+ ---
8+
9+ # Externally Managed Workspace Template
10+
11+ This template provides a minimal scaffolding for creating Coder workspaces that connect to externally provisioned compute resources.
12+
13+ Use this template as a starting point to build your own custom templates for scenarios where you need to connect to existing infrastructure.
Original file line number Diff line number Diff line change 1+ terraform {
2+ required_providers {
3+ coder = {
4+ source = " coder/coder"
5+ version = " >= 2.10"
6+ }
7+ }
8+ }
9+
10+ data "coder_parameter" "agent_config" {
11+ name = " agent_config"
12+ display_name = " Agent Configuration"
13+ description = " Select the operating system and architecture combination for the agent"
14+ type = " string"
15+ default = " linux-amd64"
16+
17+ option {
18+ name = " Linux AMD64"
19+ value = " linux-amd64"
20+ }
21+ option {
22+ name = " Linux ARM64"
23+ value = " linux-arm64"
24+ }
25+ option {
26+ name = " Linux ARMv7"
27+ value = " linux-armv7"
28+ }
29+ option {
30+ name = " Windows AMD64"
31+ value = " windows-amd64"
32+ }
33+ option {
34+ name = " Windows ARM64"
35+ value = " windows-arm64"
36+ }
37+ option {
38+ name = " macOS AMD64"
39+ value = " darwin-amd64"
40+ }
41+ option {
42+ name = " macOS ARM64 (Apple Silicon)"
43+ value = " darwin-arm64"
44+ }
45+ }
46+
47+ data "coder_workspace" "me" {}
48+
49+ locals {
50+ agent_config = split (" -" , data. coder_parameter . agent_config . value )
51+ agent_os = local. agent_config [0 ]
52+ agent_arch = local. agent_config [1 ]
53+ }
54+
55+ resource "coder_agent" "main" {
56+ arch = local. agent_arch
57+ os = local. agent_os
58+ }
59+
60+ resource "coder_external_agent" "main" {
61+ agent_id = coder_agent. main . id
62+ }
63+
64+ # Adds code-server
65+ # See all available modules at https://registry.coder.com/modules
66+ module "code-server" {
67+ count = data. coder_workspace . me . start_count
68+ source = " registry.coder.com/coder/code-server/coder"
69+
70+ # This ensures that the latest non-breaking version of the module gets downloaded, you can also pin the module version to prevent breaking changes in production.
71+ version = " ~> 1.0"
72+
73+ agent_id = coder_agent. main . id
74+ }
You can’t perform that action at this time.
0 commit comments