Skip to content

Commit fdb76f2

Browse files
committed
fix: Reduce variables needed for Docker template
This should make initial setup a bit simpler!
1 parent db665e7 commit fdb76f2

File tree

4 files changed

+21
-123
lines changed

4 files changed

+21
-123
lines changed

examples/templates/docker-code-server/main.tf

Lines changed: 4 additions & 18 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.4.3"
5+
version = "0.4.5"
66
}
77
docker = {
88
source = "kreuzwerker/docker"
@@ -11,32 +11,18 @@ terraform {
1111
}
1212
}
1313

14-
variable "docker_host" {
15-
description = "Specify location of Docker socket (check `docker context ls` if you're not sure)"
16-
sensitive = true
17-
}
18-
19-
variable "docker_arch" {
20-
description = "Specify architecture of docker host (amd64, arm64, or armv7)"
21-
validation {
22-
condition = contains(["amd64", "arm64", "armv7"], var.docker_arch)
23-
error_message = "Value must be amd64, arm64, or armv7."
24-
}
25-
sensitive = true
26-
}
27-
28-
provider "coder" {
14+
data "coder_provisioner" "me" {
2915
}
3016

3117
provider "docker" {
32-
host = var.docker_host
18+
host = data.coder_provisioner.me.os == "windows" ? "npipe:////.//pipe//docker_engine" : "unix:///var/run/docker.sock"
3319
}
3420

3521
data "coder_workspace" "me" {
3622
}
3723

3824
resource "coder_agent" "main" {
39-
arch = var.docker_arch
25+
arch = data.coder_provisioner.me.arch
4026
os = "linux"
4127
startup_script = "code-server --auth none"
4228

examples/templates/docker-image-builds/main.tf

Lines changed: 5 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ terraform {
33
required_providers {
44
coder = {
55
source = "coder/coder"
6-
version = "0.4.3"
6+
version = "0.4.5"
77
}
88
docker = {
99
source = "kreuzwerker/docker"
@@ -12,56 +12,18 @@ terraform {
1212
}
1313
}
1414

15-
# Admin parameters
16-
variable "step1_docker_host_warning" {
17-
description = <<-EOF
18-
Is Docker running on the Coder host?
19-
20-
This template will use the Docker socket present on
21-
the Coder host, which is not necessarily your local machine.
22-
23-
You can specify a different host in the template file and
24-
suppress this warning.
25-
EOF
26-
validation {
27-
condition = contains(["Continue using /var/run/docker.sock on the Coder host"], var.step1_docker_host_warning)
28-
error_message = "Cancelling template create."
29-
}
30-
31-
sensitive = true
32-
}
33-
variable "step2_arch" {
34-
description = "arch: What architecture is your Docker host on?"
35-
validation {
36-
condition = contains(["amd64", "arm64", "armv7"], var.step2_arch)
37-
error_message = "Value must be amd64, arm64, or armv7."
38-
}
39-
sensitive = true
40-
}
41-
variable "step3_OS" {
42-
description = <<-EOF
43-
What operating system is your Coder host on?
44-
EOF
45-
46-
validation {
47-
condition = contains(["MacOS", "Windows", "Linux"], var.step3_OS)
48-
error_message = "Value must be MacOS, Windows, or Linux."
49-
}
50-
sensitive = true
15+
data "coder_provisioner" "me" {
5116
}
5217

5318
provider "docker" {
54-
host = var.step3_OS == "Windows" ? "npipe:////.//pipe//docker_engine" : "unix:///var/run/docker.sock"
55-
}
56-
57-
provider "coder" {
19+
host = data.coder_provisioner.me.os == "windows" ? "npipe:////.//pipe//docker_engine" : "unix:///var/run/docker.sock"
5820
}
5921

6022
data "coder_workspace" "me" {
6123
}
6224

6325
resource "coder_agent" "main" {
64-
arch = var.step2_arch
26+
arch = data.coder_provisioner.me.arch
6527
os = "linux"
6628
}
6729

@@ -84,7 +46,7 @@ variable "docker_image" {
8446
}
8547

8648
resource "docker_volume" "home_volume" {
87-
name = "coder-${data.coder_workspace.me.owner}-${lower(data.coder_workspace.me.name)}-root"
49+
name = "coder-${data.coder_workspace.me.owner_id}-${lower(data.coder_workspace.me.id)}-root"
8850
}
8951

9052
resource "docker_image" "coder_image" {

examples/templates/docker-with-dotfiles/main.tf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ terraform {
99
required_providers {
1010
coder = {
1111
source = "coder/coder"
12-
version = "0.4.3"
12+
version = "0.4.5"
1313
}
1414
docker = {
1515
source = "kreuzwerker/docker"
@@ -18,11 +18,11 @@ terraform {
1818
}
1919
}
2020

21-
provider "docker" {
22-
host = "unix:///var/run/docker.sock"
21+
data "coder_provisioner" "me" {
2322
}
2423

25-
provider "coder" {
24+
provider "docker" {
25+
host = data.coder_provisioner.me.os == "windows" ? "npipe:////.//pipe//docker_engine" : "unix:///var/run/docker.sock"
2626
}
2727

2828
data "coder_workspace" "me" {
@@ -38,13 +38,13 @@ variable "dotfiles_uri" {
3838
}
3939

4040
resource "coder_agent" "main" {
41-
arch = "amd64"
41+
arch = data.coder_provisioner.me.arch
4242
os = "linux"
4343
startup_script = var.dotfiles_uri != "" ? "coder dotfiles -y ${var.dotfiles_uri}" : null
4444
}
4545

4646
resource "docker_volume" "home_volume" {
47-
name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}-root"
47+
name = "coder-${data.coder_workspace.me.owner_id}-${data.coder_workspace.me.id}-root"
4848
}
4949

5050
resource "docker_container" "workspace" {

examples/templates/docker/main.tf

Lines changed: 6 additions & 56 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.4.3"
5+
version = "0.4.5"
66
}
77
docker = {
88
source = "kreuzwerker/docker"
@@ -11,62 +11,18 @@ terraform {
1111
}
1212
}
1313

14-
# Admin parameters
15-
16-
# Comment this out if you are specifying a different docker
17-
# host on the "docker" provider below.
18-
variable "step1_docker_host_warning" {
19-
description = <<-EOF
20-
This template will use the Docker socket present on
21-
the Coder host, which is not necessarily your local machine.
22-
23-
You can specify a different host in the template file and
24-
suppress this warning.
25-
EOF
26-
validation {
27-
condition = contains(["Continue using /var/run/docker.sock on the Coder host"], var.step1_docker_host_warning)
28-
error_message = "Cancelling template create."
29-
}
30-
31-
sensitive = true
32-
}
33-
variable "step2_arch" {
34-
description = <<-EOF
35-
arch: What architecture is your Docker host on?
36-
37-
note: codercom/enterprise-* images are only built for amd64
38-
EOF
39-
40-
validation {
41-
condition = contains(["amd64", "arm64", "armv7"], var.step2_arch)
42-
error_message = "Value must be amd64, arm64, or armv7."
43-
}
44-
sensitive = true
45-
}
46-
variable "step3_OS" {
47-
description = <<-EOF
48-
What operating system is your Coder host on?
49-
EOF
50-
51-
validation {
52-
condition = contains(["MacOS", "Windows", "Linux"], var.step3_OS)
53-
error_message = "Value must be MacOS, Windows, or Linux."
54-
}
55-
sensitive = true
14+
data "coder_provisioner" "me" {
5615
}
5716

5817
provider "docker" {
59-
host = var.step3_OS == "Windows" ? "npipe:////.//pipe//docker_engine" : "unix:///var/run/docker.sock"
60-
}
61-
62-
provider "coder" {
18+
# host = data.coder_provisioner.me.os == "windows" ? "npipe:////.//pipe//docker_engine" : "unix:///var/run/docker.sock"
6319
}
6420

6521
data "coder_workspace" "me" {
6622
}
6723

6824
resource "coder_agent" "main" {
69-
arch = var.step2_arch
25+
arch = data.coder_provisioner.me.arch
7026
os = "linux"
7127
startup_script = <<EOF
7228
#!/bin/sh
@@ -104,11 +60,10 @@ variable "docker_image" {
10460
"codercom/enterprise-intellij:ubuntu", "codercom/enterprise-golang:ubuntu"], var.docker_image)
10561
error_message = "Invalid Docker image!"
10662
}
107-
10863
}
10964

11065
resource "docker_volume" "home_volume" {
111-
name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}-home"
66+
name = "coder-${data.coder_workspace.me.owner_id}-${data.coder_workspace.me.id}-home"
11267
}
11368

11469
resource "docker_container" "workspace" {
@@ -121,12 +76,7 @@ resource "docker_container" "workspace" {
12176
dns = ["1.1.1.1"]
12277
# Use the docker gateway if the access URL is 127.0.0.1
12378
command = [
124-
"sh", "-c",
125-
<<EOT
126-
trap '[ $? -ne 0 ] && echo === Agent script exited with non-zero code. Sleeping infinitely to preserve logs... && sleep infinity' EXIT
127-
${replace(coder_agent.main.init_script, "localhost", "host.docker.internal")}
128-
EOT
129-
]
79+
"sh", "-c", replace(coder_agent.main.init_script, "localhost", "host.docker.internal")]
13080
env = ["CODER_AGENT_TOKEN=${coder_agent.main.token}"]
13181
host {
13282
host = "host.docker.internal"

0 commit comments

Comments
 (0)
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