homelab-nomad/services.tf

86 lines
1.6 KiB
HCL

# module "nextcloud" {
# source = "./nextcloud"
#
# depends_on = [module.databases]
# }
module "backups" {
source = "./backups"
depends_on = [module.databases]
}
module "media" {
source = "./media"
}
resource "nomad_job" "whoami" {
hcl2 {
enabled = true
vars = {
"count" = 1,
# "count" = "${2 * length(data.consul_service.nomad.service)}",
}
}
jobspec = file("${path.module}/whoami.nomad")
}
module "sonarr" {
source = "./levant"
template_path = "service.nomad"
variables = {
name = "sonarr"
image = "linuxserver/sonarr"
service_port = 8989
ingress = true
env = jsonencode({
PGID = 100
PUID = 1001
})
host_volumes = jsonencode([
{
name = "tv-sonarr"
dest = "/srv/volumes/media-write/TV Shows"
read_only = false
},
{
name = "download"
dest = "/srv/volumes/download"
read_only = false
},
])
}
}
resource "consul_service" "homeassistant" {
name = "hass"
node = consul_node.homeassistant.name
port = 8123
tags = [
"traefik.enable=true",
"traefik.consulcatalog.connect=false",
"traefik.http.routers.hass.entryPoints=websecure",
]
check {
check_id = "homeassistant:hass"
status = "passing"
name = "Home Assistant Health Check"
http = "192.168.3.65:8123"
interval = "30s"
timeout = "10s"
}
}
resource "consul_node" "homeassistant" {
name = "homeassistant"
address = "192.168.3.65"
meta = {
"external-node" = "true"
"external-probe" = "true"
}
}