nixcfg/cluster/prod/app/plume/deploy/plume.hcl

102 lines
2 KiB
HCL

job "plume-blog" {
datacenters = ["corrin", "neptune", "scorpio"]
type = "service"
group "plume" {
count = 1
network {
port "back_port" { }
port "cache_port" { }
}
task "varnish" {
driver = "docker"
config {
image = "varnish:7.6.1"
network_mode = "host"
ports = [ "cache_port" ]
# cache
mount {
type = "tmpfs"
target = "/var/lib/varnish/varnishd:exec"
readonly = false
tmpfs_options {
size = 2684354559 # 2.5GB in bytes
}
}
}
env {
VARNISH_SIZE = "2G"
VARNISH_BACKEND_HOST = "localhost"
VARNISH_BACKEND_PORT = "${NOMAD_PORT_back_port}"
VARNISH_HTTP_PORT = "${NOMAD_PORT_cache_port}"
}
service {
name = "plume-cache"
tags = [
"plume",
"tricot plume.deuxfleurs.fr",
"d53-cname plume.deuxfleurs.fr",
]
port = "cache_port"
address_mode = "host"
}
}
task "plume" {
driver = "docker"
config {
image = "lxpz/plume_s3:v1"
network_mode = "host"
ports = [ "back_port" ]
command = "sh"
args = [ "-c", "plm search init; plume" ]
}
template {
data = file("../config/app.env")
destination = "secrets/app.env"
env = true
}
resources {
memory = 512
memory_max = 512
cpu = 100
}
service {
name = "plume-back"
tags = [
"plume",
]
port = "back_port"
address_mode = "host"
check {
type = "http"
protocol = "http"
port = "back_port"
path = "/"
interval = "60s"
timeout = "5s"
check_restart {
limit = 3
grace = "600s"
ignore_warnings = false
}
}
}
restart {
interval = "20m"
attempts = 20
delay = "15s"
mode = "delay"
}
}
}
}