Update nova timetable-sync job (#51)
Co-authored-by: wizzdom <dom@wizzdom.xyz>
This commit is contained in:
parent
3f0ae5d23b
commit
5fff486c9c
1 changed files with 59 additions and 26 deletions
|
@ -1,41 +1,54 @@
|
|||
job "nova-timetable" {
|
||||
datacenters = ["aperture"]
|
||||
|
||||
type = "service"
|
||||
type = "service"
|
||||
|
||||
group "nova-timetable" {
|
||||
count = 1
|
||||
|
||||
network {
|
||||
port "http" {
|
||||
to = 80
|
||||
}
|
||||
|
||||
port "db" {
|
||||
to = 6379
|
||||
}
|
||||
}
|
||||
|
||||
service {
|
||||
name = "nova-timetable"
|
||||
port = "http"
|
||||
|
||||
check {
|
||||
type = "http"
|
||||
path = "/healthcheck"
|
||||
interval = "10s"
|
||||
timeout = "2s"
|
||||
port "frontend" {
|
||||
to = 3000
|
||||
}
|
||||
|
||||
tags = [
|
||||
"traefik.enable=true",
|
||||
"traefik.http.routers.nova-timetable.rule=Host(`timetable.redbrick.dcu.ie`)",
|
||||
"traefik.http.routers.nova-timetable.entrypoints=web,websecure",
|
||||
"traefik.http.routers.nova-timetable.tls.certresolver=lets-encrypt",
|
||||
]
|
||||
port "backend" {
|
||||
to = 4000
|
||||
}
|
||||
}
|
||||
|
||||
task "python-application" {
|
||||
task "frontend" {
|
||||
driver = "docker"
|
||||
|
||||
config {
|
||||
image = "ghcr.io/novanai/timetable-sync-frontend:latest"
|
||||
ports = ["frontend"]
|
||||
}
|
||||
|
||||
service {
|
||||
name = "nova-timetable-frontend"
|
||||
port = "frontend"
|
||||
|
||||
check {
|
||||
type = "http"
|
||||
path = "/"
|
||||
interval = "10s"
|
||||
timeout = "2s"
|
||||
}
|
||||
|
||||
tags = [
|
||||
"traefik.enable=true",
|
||||
"traefik.port=${NOMAD_PORT_frontend}",
|
||||
"traefik.http.routers.nova-timetable-frontend.rule=Host(`timetable.redbrick.dcu.ie`)",
|
||||
"traefik.http.routers.nova-timetable-frontend.entrypoints=web,websecure",
|
||||
"traefik.http.routers.nova-timetable-frontend.tls.certresolver=lets-encrypt",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
task "backend" {
|
||||
driver = "docker"
|
||||
|
||||
env {
|
||||
|
@ -43,8 +56,28 @@ job "nova-timetable" {
|
|||
}
|
||||
|
||||
config {
|
||||
image = "novanai/timetable-sync"
|
||||
ports = ["http"]
|
||||
image = "ghcr.io/novanai/timetable-sync-backend:latest"
|
||||
ports = ["backend"]
|
||||
}
|
||||
|
||||
service {
|
||||
name = "nova-timetable-backend"
|
||||
port = "backend"
|
||||
|
||||
check {
|
||||
type = "http"
|
||||
path = "/api/healthcheck"
|
||||
interval = "10s"
|
||||
timeout = "2s"
|
||||
}
|
||||
|
||||
tags = [
|
||||
"traefik.enable=true",
|
||||
"traefik.port=${NOMAD_PORT_backend}",
|
||||
"traefik.http.routers.nova-timetable-backend.rule=Host(`timetable.redbrick.dcu.ie`) && PathPrefix(`/api`)",
|
||||
"traefik.http.routers.nova-timetable-backend.entrypoints=web,websecure",
|
||||
"traefik.http.routers.nova-timetable-backend.tls.certresolver=lets-encrypt",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -57,4 +90,4 @@ job "nova-timetable" {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue