Skip to content

Commit 59b18d1

Browse files
committed
use managed variables for do-linux
1 parent 5d3bdf7 commit 59b18d1

File tree

1 file changed

+19
-16
lines changed

1 file changed

+19
-16
lines changed

examples/templates/do-linux/main.tf

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ terraform {
22
required_providers {
33
coder = {
44
source = "coder/coder"
5-
version = "~> 0.6.14"
5+
version = "~> 0.6.17"
66
}
77
digitalocean = {
88
source = "digitalocean/digitalocean"
@@ -11,41 +11,44 @@ terraform {
1111
}
1212
}
1313

14+
provider "coder" {
15+
feature_use_managed_variables = true
16+
}
1417

15-
16-
data "coder_parameter" "step1_do_project_id" {
17-
name = "Enter project ID"
18+
variable "step1_do_project_id" {
19+
type = string
1820
description = <<-EOF
1921
Enter project ID
2022
2123
$ doctl projects list
2224
EOF
23-
type = "string"
2425
default = "0"
25-
mutable = false
2626
validation {
2727
# make sure length of alphanumeric string is 36
28-
regex = "^[a-zA-Z0-9]{36}$"
29-
error = "Invalid Digital Ocean Project ID."
28+
condition = length(var.step1_do_project_id) == 36
29+
error_message = "Invalid Digital Ocean Project ID."
3030
}
31+
3132
}
3233

33-
data "coder_parameter" "step2_do_admin_ssh_key" {
34-
name = "Enter admin SSH key ID (some Droplet images require an SSH key to be set):"
34+
variable "step2_do_admin_ssh_key" {
35+
type = string
3536
description = <<-EOF
37+
Enter admin SSH key ID (some Droplet images require an SSH key to be set):
38+
3639
Can be set to "0" for no key.
3740
3841
Note: Setting this to zero will break Fedora images and notify root passwords via email.
3942
4043
$ doctl compute ssh-key list
4144
EOF
42-
type = "number"
4345
default = "0"
44-
mutable = false
4546
validation {
46-
min = 0
47-
max = 999999
47+
# make sure value is a number
48+
condition = can(regex("^[0-9]+$", var.step2_do_admin_ssh_key))
49+
error_message = "Invalid Digital Ocean SSH Key ID."
4850
}
51+
4952
}
5053

5154
data "coder_parameter" "droplet_image" {
@@ -266,11 +269,11 @@ resource "digitalocean_droplet" "workspace" {
266269
coder_agent_token = coder_agent.main.token
267270
})
268271
# Required to provision Fedora.
269-
ssh_keys = data.coder_parameter.step1_do_project_id.value > 0 ? [data.coder_parameter.step2_do_admin_ssh_key.value] : []
272+
ssh_keys = var.step1_do_project_id > 0 ? [var.step2_do_admin_ssh_key] : []
270273
}
271274

272275
resource "digitalocean_project_resources" "project" {
273-
project = data.coder_parameter.step1_do_project_id.value
276+
project = var.step1_do_project_id
274277
# Workaround for terraform plan when using count.
275278
resources = length(digitalocean_droplet.workspace) > 0 ? [
276279
digitalocean_volume.home_volume.urn,

0 commit comments

Comments
 (0)