Files
alo-cluster/services/postgres.hcl
2023-08-16 06:21:05 +01:00

107 lines
2.1 KiB
HCL

job "postgres" {
datacenters = ["alo"]
group "db" {
network {
port "db" {
static = 5432
}
port "exporter" {
to = 9187
}
port "admin" { }
}
task "postgres" {
driver = "docker"
config {
image = "postgres:15-alpine"
ports = ["db"]
volumes = [ "/data/compute/appdata/postgres:/var/lib/postgresql/data" ]
}
env {
POSTGRES_PASSWORD = "${var.pg_password}"
}
service {
name = "postgres"
port = "db"
check {
type = "tcp"
port = "db"
interval = "30s"
timeout = "2s"
}
}
resources {
cpu = 1000
memory = 512
}
}
task "exporter" {
driver = "docker"
config {
image = "quay.io/prometheuscommunity/postgres-exporter"
ports = ["exporter"]
}
env {
DATA_SOURCE_NAME = "postgresql://postgres:${var.pg_password}@${NOMAD_ADDR_db}/postgres?sslmode=disable"
}
service {
name = "postgres-exporter"
port = "exporter"
tags = ["metrics"]
}
}
task "pgadmin" {
driver = "docker"
config {
image = "dpage/pgadmin4:latest"
ports = ["admin"]
volumes = [ "/data/compute/appdata/pgadmin:/var/lib/pgadmin" ]
}
env {
PGADMIN_LISTEN_PORT = "${NOMAD_PORT_admin}"
PGADMIN_DEFAULT_EMAIL = "${var.default_email}"
PGADMIN_DEFAULT_PASSWORD = "${var.default_password}"
PGADMIN_DISABLE_POSTFIX = "true"
PGADMIN_CONFIG_MAIL_SERVER = "'192.168.1.1'"
}
service {
name = "pgadmin"
port = "admin"
tags = [
"traefik.enable=true",
"traefik.http.routers.pgadmin.entryPoints=websecure",
]
}
}
}
}
variable "pg_password" {
type = string
default = "Faelaishewohlees4nei"
}
variable "default_email" {
type = string
default = "petru@paler.net"
}
variable "default_password" {
type = string
default = "ahheina6aeki3Hu0aht3"
}