From 4d0156206145ed8869dd9ad20bd3684f06690db4 Mon Sep 17 00:00:00 2001 From: Ben Martin Date: Sat, 29 Jun 2024 13:33:03 +0000 Subject: [PATCH] feat: Migrate code-server to coder --- main.tf | 4 +- modules/code-server/jobspec.json | 60 -------------- modules/coder/jobspec.json | 103 +++++++++++++++++++++++++ modules/{code-server => coder}/main.tf | 0 4 files changed, 105 insertions(+), 62 deletions(-) delete mode 100644 modules/code-server/jobspec.json create mode 100644 modules/coder/jobspec.json rename modules/{code-server => coder}/main.tf (100%) diff --git a/main.tf b/main.tf index b734fd3..74e5a54 100644 --- a/main.tf +++ b/main.tf @@ -10,6 +10,6 @@ module "media-centre" { source = "./modules/media-centre" } -module "code-server" { - source = "./modules/code-server" +module "coder" { + source = "./modules/coder" } diff --git a/modules/code-server/jobspec.json b/modules/code-server/jobspec.json deleted file mode 100644 index 10f05e0..0000000 --- a/modules/code-server/jobspec.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "Job": { - "ID": "code-server", - "Name": "Code Server", - "TaskGroups": [ - { - "Name": "Code Server", - "Tasks": [ - { - "Driver": "docker", - "Name": "code-server", - "Count": 1, - "Config": { - "image": "codercom/code-server:latest", - "ports": [ - "web" - ], - "volumes": [ - "local:/home/coder/.local" - ], - "mounts": [ - { - "type": "volume", - "target": "/home/coder/.config", - "source": "coder-config" - } - ] - }, - "Resources": { - "CPU": 1000, - "MemoryMB": 1024 - } - } - ], - "Services": [ - { - "Name": "code-server", - "Provider": "nomad", - "PortLabel": "web", - "Tags": [ - "traefik.enable=true", - "traefik.http.routers.code-server.entrypoints=websecure", - "traefik.http.routers.code-server.rule=Host(`code.brmartin.co.uk`)" - ] - } - ], - "Networks": [ - { - "DynamicPorts": [ - { - "Label": "web", - "To": 8080 - } - ] - } - ] - } - ] - } -} \ No newline at end of file diff --git a/modules/coder/jobspec.json b/modules/coder/jobspec.json new file mode 100644 index 0000000..27cde1c --- /dev/null +++ b/modules/coder/jobspec.json @@ -0,0 +1,103 @@ +{ + "Job": { + "ID": "coder", + "Name": "Coder", + "TaskGroups": [ + { + "Name": "Coder", + "Tasks": [ + { + "Driver": "docker", + "Name": "coder", + "Count": 1, + "Config": { + "image": "ghcr.io/coder/coder:latest", + "ports": [ + "web" + ], + "volumes": [ + "/var/run/docker.sock:/var/run/docker.sock" + ] + }, + "Env": { + "CODER_PG_CONNECTION_URL": "postgresql://${POSTGRES_USER:-username}:${POSTGRES_PASSWORD:-password}@${NOMAD_ADDR_database}/${POSTGRES_DB:-coder}?sslmode=disable", + "CODER_HTTP_ADDRESS": "0.0.0.0:7080", + "CODER_ACCESS_URL": "coder.brmartin.co.uk" + }, + "Resources": { + "CPU": 1000, + "MemoryMB": 1024 + } + }, + { + "Driver": "docker", + "Name": "database", + "Count": 1, + "Lifecycle": { + "Hook": "prestart", + "Sidecar": true + }, + "Config": { + "image": "postgres:16", + "ports": [ + "database" + ], + "mounts": [ + { + "type": "volume", + "target": "/var/lib/postgresql/data", + "source": "coder-daata" + } + ], + "healthcheck": { + "test": [ + "CMD-SHELL", + "pg_isready -U ${POSTGRES_USER:-username} -d ${POSTGRES_DB:-coder}" + ], + "interval": "5s", + "timeout": "5s", + "retries": 5 + } + }, + "Env": { + "POSTGRES_USER": "${POSTGRES_USER:-username}", + "POSTGRES_PASSWORD": "${POSTGRES_PASSWORD:-password}", + "POSTGRES_DB": "${POSTGRES_DB:-coder}" + } + } + ], + "Services": [ + { + "Name": "coder", + "Provider": "nomad", + "PortLabel": "web", + "Tags": [ + "traefik.enable=true", + "traefik.http.routers.coder.entrypoints=websecure", + "traefik.http.routers.coder.rule=Host(`coder.brmartin.co.uk`)" + ] + }, + { + "Name": "database", + "Provider": "nomad", + "PortLabel": "database" + } + ], + "Networks": [ + { + "DynamicPorts": [ + { + "Label": "web", + "To": 8080 + }, + { + "Label": "database", + "To": 5432 + } + ] + } + ] + } + ] + } +} diff --git a/modules/code-server/main.tf b/modules/coder/main.tf similarity index 100% rename from modules/code-server/main.tf rename to modules/coder/main.tf