100 lines
1.8 KiB
HCL
100 lines
1.8 KiB
HCL
job "rediscommander" {
|
|
datacenters = ["dc1"]
|
|
type = "service"
|
|
|
|
group "rediscommander" {
|
|
count = 1
|
|
|
|
network {
|
|
mode = "bridge"
|
|
|
|
port "main" {
|
|
host_network = "wesher"
|
|
to = 8081
|
|
}
|
|
}
|
|
|
|
service {
|
|
name = "rediscommander"
|
|
provider = "nomad"
|
|
port = "main"
|
|
|
|
tags = [
|
|
"traefik.enable=true",
|
|
"traefik.http.routers.rediscommander.entryPoints=websecure",
|
|
]
|
|
}
|
|
|
|
task "rediscommander" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "rediscommander/redis-commander:latest"
|
|
ports = ["main"]
|
|
}
|
|
|
|
template {
|
|
data = <<EOH
|
|
REDIS_HOSTS=stunnel:127.0.0.1:6379
|
|
EOH
|
|
env = true
|
|
destination = "env"
|
|
}
|
|
|
|
resources {
|
|
cpu = 50
|
|
memory = 50
|
|
}
|
|
}
|
|
|
|
task "redis-stunnel" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "alpine:3.17"
|
|
args = ["/bin/sh", "${NOMAD_TASK_DIR}/start.sh"]
|
|
}
|
|
|
|
resources {
|
|
cpu = 100
|
|
memory = 100
|
|
}
|
|
|
|
template {
|
|
data = <<EOF
|
|
set -e
|
|
apk add stunnel
|
|
exec stunnel {{ env "NOMAD_TASK_DIR" }}/stunnel.conf
|
|
EOF
|
|
destination = "${NOMAD_TASK_DIR}/start.sh"
|
|
}
|
|
|
|
template {
|
|
data = <<EOF
|
|
syslog = no
|
|
foreground = yes
|
|
delay = yes
|
|
|
|
[redis_client]
|
|
client = yes
|
|
accept = 127.0.0.1:6379
|
|
{{ range nomadService 1 (env "NOMAD_ALLOC_ID") "redis-tls" -}}
|
|
connect = {{ .Address }}:{{ .Port }}
|
|
{{- end }}
|
|
PSKsecrets = {{ env "NOMAD_SECRETS_DIR" }}/stunnel_psk.txt
|
|
EOF
|
|
destination = "${NOMAD_TASK_DIR}/stunnel.conf"
|
|
}
|
|
|
|
template {
|
|
data = <<EOF
|
|
{{ with nomadVar "nomad/jobs/rediscommander" -}}
|
|
{{ .redis_stunnel_psk }}
|
|
{{- end }}
|
|
EOF
|
|
destination = "${NOMAD_SECRETS_DIR}/stunnel_psk.txt"
|
|
}
|
|
}
|
|
}
|
|
}
|