feat: Migrate code-server to coder

This commit is contained in:
Ben Martin 2024-06-29 13:33:03 +00:00
parent 4eb40ca819
commit 4d01562061
Signed by: ben
GPG key ID: 859A655FCD290E4A
4 changed files with 105 additions and 62 deletions

103
modules/coder/jobspec.json Normal file
View file

@ -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
}
]
}
]
}
]
}
}

4
modules/coder/main.tf Normal file
View file

@ -0,0 +1,4 @@
resource "nomad_job" "media-centre" {
jobspec = file("${path.module}/jobspec.json")
json = true
}