homelab-nomad/core/blocky/blocky.nomad

118 lines
2.1 KiB
Plaintext
Raw Normal View History

2022-02-28 20:07:34 +00:00
variable "config_data" {
type = string
description = "Plain text config file for blocky"
}
job "blocky" {
datacenters = ["dc1"]
2022-05-18 18:29:00 +00:00
type = "system"
priority = 100
update {
max_parallel = 1
auto_revert = true
}
2022-02-28 20:07:34 +00:00
group "blocky" {
network {
mode = "bridge"
port "dns" {
static = "53"
}
port "api" {
2022-11-08 04:50:18 +00:00
# TODO: This may be broken. It seems we're exposing the loopback address which can't be reached
# host_network = "loopback"
2022-02-28 20:07:34 +00:00
to = "4000"
}
}
service {
2022-03-13 17:13:19 +00:00
name = "blocky-dns"
2022-02-28 20:07:34 +00:00
port = "dns"
}
service {
2022-03-13 17:13:19 +00:00
name = "blocky-api"
port = "api"
meta {
metrics_addr = "${NOMAD_ADDR_api}"
}
tags = [
"traefik.enable=true",
"traefik.http.routers.blocky-api.entryPoints=websecure",
]
connect {
sidecar_service {
proxy {
2022-11-08 04:50:18 +00:00
local_service_port = 4000
expose {
path {
path = "/metrics"
protocol = "http"
local_path_port = 4000
listener_port = "api"
}
}
upstreams {
destination_name = "redis"
local_bind_port = 6379
}
}
}
sidecar_task {
resources {
cpu = 50
2022-07-27 18:22:02 +00:00
memory = 20
memory_max = 50
}
}
}
check {
name = "api-health"
port = "api"
type = "http"
path = "/"
interval = "10s"
timeout = "3s"
}
2022-02-28 20:07:34 +00:00
}
2022-07-26 04:45:01 +00:00
task "blocky" {
2022-02-28 20:07:34 +00:00
driver = "docker"
config {
image = "ghcr.io/0xerr0r/blocky"
ports = ["dns", "api"]
2022-02-28 20:07:34 +00:00
mount {
type = "bind"
target = "/app/config.yml"
source = "app/config.yml"
}
}
resources {
cpu = 50
2022-07-25 22:51:16 +00:00
memory = 50
memory_max = 100
2022-02-28 20:07:34 +00:00
}
template {
data = var.config_data
destination = "app/config.yml"
splay = "1m"
2022-02-28 20:07:34 +00:00
}
}
}
}