@@ -59,11 +59,22 @@ data "coder_provisioner" "me" {}
5959
6060data "coder_workspace" "me" {}
6161
62+ data "coder_workspace_owner" "me" {}
63+
6264resource "coder_agent" "main" {
6365 arch = data. coder_provisioner . me . arch
6466 os = data. coder_provisioner . me . os
6567 auth = " token"
6668
69+ startup_script = <<- EOT
70+ set -e
71+
72+ # Install additional tools or run commands at workspace startup
73+ # Uncomment and customize as needed:
74+ # sudo apt-get update
75+ # sudo apt-get install -y build-essential
76+ EOT
77+
6778 metadata {
6879 display_name = " CPU Usage"
6980 key = " 0_cpu_usage"
@@ -82,16 +93,18 @@ resource "coder_agent" "main" {
8293 metadata {
8394 display_name = " Disk Usage"
8495 key = " 1_disk_usage"
85- script = " coder stat disk"
86- interval = 10
87- timeout = 1
96+ script = " coder stat disk --path /home/ ${ local . linux_user } "
97+ interval = 600
98+ timeout = 30
8899 }
89100}
90101
91102module "code-server" {
92103 source = " registry.coder.com/modules/code-server/coder"
93104 version = " 1.3.1"
94105 agent_id = coder_agent. main . id
106+ order = 1
107+ folder = " /home/${ local . linux_user } "
95108}
96109
97110# Runs a script at workspace start/stop or on a cron schedule
@@ -104,6 +117,37 @@ module "dotfiles" {
104117 agent_id = coder_agent. main . id
105118}
106119
120+ resource "coder_metadata" "workspace_info" {
121+ count = data. coder_workspace . me . start_count
122+ resource_id = scaleway_instance_server. workspace [0 ]. id
123+
124+ item {
125+ key = " region"
126+ value = data. coder_parameter . region . value
127+ }
128+ item {
129+ key = " instance type"
130+ value = scaleway_instance_server. workspace [0 ]. type
131+ }
132+ item {
133+ key = " image"
134+ value = data. coder_parameter . base_image . value
135+ }
136+ }
137+
138+ resource "coder_metadata" "volume_info" {
139+ resource_id = scaleway_block_volume. persistent_storage . id
140+
141+ item {
142+ key = " size"
143+ value = " ${ scaleway_block_volume . persistent_storage . size_in_gb } GiB"
144+ }
145+ item {
146+ key = " iops"
147+ value = scaleway_block_volume. persistent_storage . iops
148+ }
149+ }
150+
107151data "coder_parameter" "region" {
108152 name = " Scaleway Region"
109153 description = " Region to deploy server into"
@@ -148,7 +192,7 @@ data "coder_parameter" "base_image" {
148192 option {
149193 name = " Ubuntu 24.04 (Noble)"
150194 value = " ubuntu_noble"
151- icon = " /icon/fedora .svg"
195+ icon = " /icon/ubuntu .svg"
152196 }
153197
154198 option {
@@ -219,7 +263,7 @@ data "coder_parameter" "volume_iops" {
219263
220264resource "scaleway_instance_server" "workspace" {
221265 count = data. coder_workspace . me . start_count
222- name = data. coder_workspace . me . name
266+ name = " coder- ${ lower ( data. coder_workspace_owner . me . name ) } - ${ lower (data . coder_workspace . me . name ) } "
223267 type = data. coder_parameter . instance_size . value
224268 image = data. coder_parameter . base_image . value
225269 ip_ids = [scaleway_instance_ip . server_ip [0 ]. id , scaleway_instance_ip . v4_server_ip [0 ]. id ]
@@ -232,7 +276,7 @@ resource "scaleway_instance_server" "workspace" {
232276
233277resource "scaleway_block_volume" "persistent_storage" {
234278 iops = data. coder_parameter . volume_iops . value
235- name = " ${ data . coder_workspace . me . name } -home"
279+ name = " coder- ${ lower ( data. coder_workspace_owner . me . name ) } - ${ lower (data . coder_workspace . me . name ) } -home"
236280 size_in_gb = data. coder_parameter . disk_size . value
237281 project_id = var. project_id
238282}
@@ -264,8 +308,3 @@ variable "secret_key" {
264308 type = string
265309 description = " Secret key to use to deploy"
266310}
267-
268- variable "region" {
269- type = string
270- description = " Region to deploy into"
271- }
0 commit comments