diff --git a/main.tf b/main.tf index cab2e4b..f64e736 100644 --- a/main.tf +++ b/main.tf @@ -29,3 +29,7 @@ module "renovate" { module "plugin-csi" { source = "./modules/plugin-csi" } + +module "home-assistant" { + source = "./modules/home-assistant" +} diff --git a/modules/home-assistant/jobspec.nomad.hcl b/modules/home-assistant/jobspec.nomad.hcl new file mode 100644 index 0000000..b55b280 --- /dev/null +++ b/modules/home-assistant/jobspec.nomad.hcl @@ -0,0 +1,53 @@ +job "homeassistant" { + group "homeassistant" { + + network { + port "homeassistant" { + static = 8123 + } + } + + task "homeassistant" { + driver = "docker" + + config { + image = "ghcr.io/home-assistant/home-assistant:2025.1.2" + network_mode = "host" + privileged = true + + volumes = [ + "/etc/localtime:/etc/localtime:ro", + "/run/dbus:/run/dbus:ro" + ] + } + + volume_mount { + volume = "config" + destination = "/config" + } + + resources { + cpu = 500 + memory = 512 + } + } + + volume "config" { + type = "csi" + read_only = false + source = "martinibar_prod_home-assistant_config" + attachment_mode = "file-system" + access_mode = "single-node-writer" + } + + service { + port = "homeassistant" + provider = "consul" + tags = [ + "traefik.enable=true", + "traefik.http.routers.homeassistant.entrypoints=websecure", + "traefik.http.routers.homeassistant.rule=Host(`homeassistant.brmartin.co.uk`)" + ] + } + } +} diff --git a/modules/home-assistant/main.tf b/modules/home-assistant/main.tf new file mode 100644 index 0000000..7b7f22e --- /dev/null +++ b/modules/home-assistant/main.tf @@ -0,0 +1,3 @@ +resource "nomad_job" "home-assistant" { + jobspec = file("${path.module}/jobspec.nomad.hcl") +} diff --git a/modules/media-centre/jobspec.nomad.hcl b/modules/media-centre/jobspec.nomad.hcl index b73f625..761620d 100644 --- a/modules/media-centre/jobspec.nomad.hcl +++ b/modules/media-centre/jobspec.nomad.hcl @@ -163,7 +163,7 @@ job "media-centre" { driver = "docker" config { - image = "ghcr.io/tautulli/tautulli:v2.15.0" + image = "ghcr.io/tautulli/tautulli:v2.15.1" ports = ["tautulli"] volumes = [ diff --git a/modules/renovate/jobspec.nomad.hcl b/modules/renovate/jobspec.nomad.hcl index 961e205..fe7d2d8 100644 --- a/modules/renovate/jobspec.nomad.hcl +++ b/modules/renovate/jobspec.nomad.hcl @@ -11,7 +11,7 @@ job "renovate" { driver = "docker" config { - image = "ghcr.io/renovatebot/renovate:39.101.0" + image = "ghcr.io/renovatebot/renovate:39.106.0" } resources {