Last active
April 15, 2022 07:02
-
-
Save ntimo/6182df694b11222b1a0fcbb7011b9027 to your computer and use it in GitHub Desktop.
coder v2 terraform
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
terraform { | |
required_providers { | |
coder = { | |
source = "coder/coder" | |
version = "~> 0.3.1" | |
} | |
docker = { | |
source = "kreuzwerker/docker" | |
version = "2.16.0" | |
} | |
} | |
} | |
provider "docker" { | |
host = "unix:///var/run/docker.sock" | |
} | |
data "coder_workspace" "me" { | |
} | |
resource "coder_agent" "dev" { | |
arch = "amd64" | |
os = "linux" | |
} | |
resource "docker_image" "coder" { | |
name = "timovibritannia/coder:latest" | |
} | |
resource "docker_volume" "coder_volume" { | |
name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}-root" | |
} | |
resource "docker_container" "workspace" { | |
count = data.coder_workspace.me.start_count | |
image = docker_image.coder.latest | |
name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}-root" | |
dns = ["1.1.1.1"] | |
command = ["sh", "-c", coder_agent.dev.init_script] | |
env = ["CODER_TOKEN=${coder_agent.dev.token}"] | |
volumes { | |
container_path = "/home/coder/" | |
volume_name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}-root" | |
read_only = false | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
terraform { | |
required_providers { | |
coder = { | |
source = "coder/coder" | |
version = "~> 0.3.1" | |
} | |
hcloud = { | |
source = "hetznercloud/hcloud" | |
version = "1.33.1" | |
} | |
} | |
} | |
variable "hcloud_token" { | |
description = <<EOF | |
Coder requires a Hetzner Cloud token to provision workspaces. | |
EOF | |
sensitive = true | |
} | |
variable "location" { | |
description = "What region should your workspace live in?" | |
default = "nbg1" | |
validation { | |
condition = contains(["nbg1", "fsn1", "hel1"], var.location) | |
error_message = "Invalid zone!" | |
} | |
} | |
provider "hcloud" { | |
token = var.hcloud_token | |
} | |
data "coder_workspace" "me" { | |
} | |
resource "hcloud_server" "root" { | |
name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}-root" | |
server_type = "cx11" | |
location = var.location | |
image = "ubuntu-20.04" | |
user_data = <<EOF | |
#!/bin/bash | |
export CODER_TOKEN=${coder_agent.dev.token} | |
${coder_agent.dev.init_script}" | |
EOF | |
} | |
resource "coder_agent" "dev" { | |
arch = "amd64" | |
os = "linux" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment