diff --git a/modules/kubernetes/navidrome/main.tf b/modules/kubernetes/navidrome/main.tf index f11a7a13..cf6c28a3 100644 --- a/modules/kubernetes/navidrome/main.tf +++ b/modules/kubernetes/navidrome/main.tf @@ -54,6 +54,11 @@ resource "kubernetes_deployment" "navidrome" { mount_path = "/music" read_only = true } + volume_mount { + name = "lidarr" + mount_path = "/lidarr" + read_only = true + } port { name = "http" container_port = 4533 @@ -74,6 +79,13 @@ resource "kubernetes_deployment" "navidrome" { server = "192.168.1.13" } } + volume { + name = "lidarr" + nfs { + path = "/mnt/main/servarr/lidarr" + server = "10.0.10.15" + } + } } } } diff --git a/modules/kubernetes/servarr/lidarr/main.tf b/modules/kubernetes/servarr/lidarr/main.tf index 60950e3a..8166298b 100644 --- a/modules/kubernetes/servarr/lidarr/main.tf +++ b/modules/kubernetes/servarr/lidarr/main.tf @@ -28,11 +28,18 @@ resource "kubernetes_deployment" "lidarr" { spec { container { image = "lscr.io/linuxserver/lidarr:latest" - name = "lidarr" + # image = "youegraillot/lidarr-on-steroids" + name = "lidarr" + port { + name = "lidarr" container_port = 8686 } + port { + name = "deemix" + container_port = 6595 + } env { name = "PUID" value = 1000 @@ -56,6 +63,12 @@ resource "kubernetes_deployment" "lidarr" { volume_mount { name = "data" mount_path = "/music" + sub_path = "music" + } + volume_mount { + name = "deemix-config" + mount_path = "/config_deemix" + sub_path = "deemix" } } volume { @@ -72,6 +85,13 @@ resource "kubernetes_deployment" "lidarr" { server = "10.0.10.15" } } + volume { + name = "deemix-config" + nfs { + path = "/mnt/main/servarr/lidarr" + server = "10.0.10.15" + } + } } } } @@ -98,6 +118,27 @@ resource "kubernetes_service" "lidarr" { } } +resource "kubernetes_service" "deemix" { + metadata { + name = "deemix" + namespace = "servarr" + labels = { + app = "deemix" + } + } + + spec { + selector = { + app = "lidarr" + } + port { + name = "deemix" + port = 80 + target_port = 6595 + } + } +} + module "ingress" { source = "../../ingress_factory" @@ -110,3 +151,11 @@ module "ingress" { # } } + +module "ingress-deemix" { + source = "../../ingress_factory" + namespace = "servarr" + name = "deemix" + tls_secret_name = var.tls_secret_name + protected = true +} diff --git a/modules/kubernetes/servarr/main.tf b/modules/kubernetes/servarr/main.tf index 17ee51c5..a818b315 100644 --- a/modules/kubernetes/servarr/main.tf +++ b/modules/kubernetes/servarr/main.tf @@ -37,3 +37,8 @@ module "lidarr" { source = "./lidarr" tls_secret_name = var.tls_secret_name } + +module "soulseek" { + source = "./soulseek" + tls_secret_name = var.tls_secret_name +} diff --git a/modules/kubernetes/servarr/soulseek/main.tf b/modules/kubernetes/servarr/soulseek/main.tf new file mode 100644 index 00000000..2ca68c32 --- /dev/null +++ b/modules/kubernetes/servarr/soulseek/main.tf @@ -0,0 +1,103 @@ +variable "tls_secret_name" {} + + +resource "kubernetes_deployment" "soulseek" { + metadata { + name = "soulseek" + namespace = "servarr" + labels = { + app = "soulseek" + } + annotations = { + "reloader.stakater.com/search" = "true" + } + } + spec { + replicas = 1 + selector { + match_labels = { + app = "soulseek" + } + } + template { + metadata { + labels = { + app = "soulseek" + } + } + spec { + container { + image = "realies/soulseek" + name = "soulseek" + + port { + name = "soulseek" + container_port = 6080 + } + env { + name = "PUID" + value = 1000 + } + env { + name = "PGID" + value = 1000 + } + volume_mount { + name = "config" + mount_path = "/data/.SoulseekQt" + sub_path = "soulseek/config" + } + volume_mount { + name = "downloads" + mount_path = "/data/Soulseek Downloads" + sub_path = "soulseek/downloads" + } + } + volume { + name = "config" + nfs { + path = "/mnt/main/servarr/lidarr" + server = "10.0.10.15" + } + } + volume { + name = "downloads" + nfs { + path = "/mnt/main/servarr/lidarr" + server = "10.0.10.15" + } + } + } + } + } +} + +resource "kubernetes_service" "soulseek" { + metadata { + name = "soulseek" + namespace = "servarr" + labels = { + app = "soulseek" + } + } + + spec { + selector = { + app = "soulseek" + } + port { + name = "http" + port = 80 + target_port = 6080 + } + } +} + + +module "ingress" { + source = "../../ingress_factory" + namespace = "servarr" + name = "soulseek" + tls_secret_name = var.tls_secret_name + protected = true +}