parent
6ecd68f862
commit
1ec28a61a7
4 changed files with 74 additions and 0 deletions
12
.devcontainer/devcontainer.json
Normal file
12
.devcontainer/devcontainer.json
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"name": "Ubuntu",
|
||||||
|
"image": "mcr.microsoft.com/devcontainers/base:jammy",
|
||||||
|
"postCreateCommand": "sudo apt update && sudo apt install -y wget gpg coreutils && wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg && echo \"deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main\" | sudo tee /etc/apt/sources.list.d/hashicorp.list && sudo apt update && sudo apt install -y terraform nomad",
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"extensions": [
|
||||||
|
"HashiCorp.terraform"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
4
main.tf
4
main.tf
|
@ -9,3 +9,7 @@ module "dummy" {
|
||||||
module "media-centre" {
|
module "media-centre" {
|
||||||
source = "./modules/media-centre"
|
source = "./modules/media-centre"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module "code-server" {
|
||||||
|
source = "./modules/code-server"
|
||||||
|
}
|
||||||
|
|
54
modules/code-server/jobspec.json
Normal file
54
modules/code-server/jobspec.json
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
{
|
||||||
|
"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",
|
||||||
|
".config:/home/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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
4
modules/code-server/main.tf
Normal file
4
modules/code-server/main.tf
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
resource "nomad_job" "media-centre" {
|
||||||
|
jobspec = file("${path.module}/jobspec.json")
|
||||||
|
json = true
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue