From 220aa739ce0046e537638d455def7c865c09a144 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Mon, 2 Mar 2026 02:04:22 +0000 Subject: [PATCH] [ci skip] migrate servarr sub-stacks + actualbudget factory NFS to CSI PV/PVC Final batch: servarr (aiostreams, listenarr, readarr, soulseek, prowlarr, qbittorrent, lidarr) and actualbudget factory. All use ../../../modules/kubernetes/nfs_volume (3 levels deep). --- stacks/actualbudget/factory/main.tf | 13 +++++++++--- stacks/servarr/aiostreams/main.tf | 13 +++++++++--- stacks/servarr/lidarr/main.tf | 31 ++++++++++++++++++++--------- stacks/servarr/listenarr/main.tf | 26 ++++++++++++++++++------ stacks/servarr/prowlarr/main.tf | 26 ++++++++++++++++++------ stacks/servarr/qbittorrent/main.tf | 26 ++++++++++++++++++------ stacks/servarr/readarr/main.tf | 26 ++++++++++++++++++------ stacks/servarr/soulseek/main.tf | 18 +++++++++++------ 8 files changed, 134 insertions(+), 45 deletions(-) diff --git a/stacks/actualbudget/factory/main.tf b/stacks/actualbudget/factory/main.tf index 6728f548..a5a029a8 100644 --- a/stacks/actualbudget/factory/main.tf +++ b/stacks/actualbudget/factory/main.tf @@ -14,6 +14,14 @@ variable "budget_encryption_password" { } variable "nfs_server" { type = string } +module "nfs_data" { + source = "../../../modules/kubernetes/nfs_volume" + name = "actualbudget-${var.name}-data" + namespace = "actualbudget" + nfs_server = var.nfs_server + nfs_path = "/mnt/main/actualbudget/${var.name}" +} + resource "kubernetes_deployment" "actualbudget" { metadata { name = "actualbudget-${var.name}" @@ -58,9 +66,8 @@ resource "kubernetes_deployment" "actualbudget" { } volume { name = "data" - nfs { - path = "/mnt/main/actualbudget/${var.name}" - server = var.nfs_server + persistent_volume_claim { + claim_name = module.nfs_data.claim_name } } } diff --git a/stacks/servarr/aiostreams/main.tf b/stacks/servarr/aiostreams/main.tf index 4f22ad7f..73f1d72f 100644 --- a/stacks/servarr/aiostreams/main.tf +++ b/stacks/servarr/aiostreams/main.tf @@ -16,6 +16,14 @@ resource "random_id" "secret_key" { byte_length = 32 # 32 bytes × 2 hex chars = 64 hex characters } +module "nfs_data" { + source = "../../../modules/kubernetes/nfs_volume" + name = "aiostreams-data" + namespace = kubernetes_namespace.aiostreams.metadata[0].name + nfs_server = var.nfs_server + nfs_path = "/mnt/main/servarr/aiostreams" +} + resource "kubernetes_deployment" "aiostreams" { metadata { name = "aiostreams" @@ -74,9 +82,8 @@ resource "kubernetes_deployment" "aiostreams" { } volume { name = "data" - nfs { - server = var.nfs_server - path = "/mnt/main/servarr/aiostreams" + persistent_volume_claim { + claim_name = module.nfs_data.claim_name } } } diff --git a/stacks/servarr/lidarr/main.tf b/stacks/servarr/lidarr/main.tf index 7816592d..b50e716b 100644 --- a/stacks/servarr/lidarr/main.tf +++ b/stacks/servarr/lidarr/main.tf @@ -3,6 +3,22 @@ variable "tier" { type = string } variable "nfs_server" { type = string } +module "nfs_data" { + source = "../../../modules/kubernetes/nfs_volume" + name = "servarr-lidarr-data" + namespace = "servarr" + nfs_server = var.nfs_server + nfs_path = "/mnt/main/servarr/lidarr" +} + +module "nfs_downloads" { + source = "../../../modules/kubernetes/nfs_volume" + name = "servarr-lidarr-downloads" + namespace = "servarr" + nfs_server = var.nfs_server + nfs_path = "/mnt/main/servarr/downloads" +} + resource "kubernetes_deployment" "lidarr" { metadata { name = "lidarr" @@ -76,23 +92,20 @@ resource "kubernetes_deployment" "lidarr" { } volume { name = "data" - nfs { - path = "/mnt/main/servarr/lidarr" - server = var.nfs_server + persistent_volume_claim { + claim_name = module.nfs_data.claim_name } } volume { name = "downloads" - nfs { - path = "/mnt/main/servarr/downloads" - server = var.nfs_server + persistent_volume_claim { + claim_name = module.nfs_downloads.claim_name } } volume { name = "deemix-config" - nfs { - path = "/mnt/main/servarr/lidarr" - server = var.nfs_server + persistent_volume_claim { + claim_name = module.nfs_data.claim_name } } } diff --git a/stacks/servarr/listenarr/main.tf b/stacks/servarr/listenarr/main.tf index 15341a8c..adade2d1 100644 --- a/stacks/servarr/listenarr/main.tf +++ b/stacks/servarr/listenarr/main.tf @@ -3,6 +3,22 @@ variable "tier" { type = string } variable "nfs_server" { type = string } +module "nfs_data" { + source = "../../../modules/kubernetes/nfs_volume" + name = "servarr-listenarr-data" + namespace = "servarr" + nfs_server = var.nfs_server + nfs_path = "/mnt/main/servarr/listenarr" +} + +module "nfs_downloads" { + source = "../../../modules/kubernetes/nfs_volume" + name = "servarr-listenarr-downloads" + namespace = "servarr" + nfs_server = var.nfs_server + nfs_path = "/mnt/main/servarr/downloads" +} + resource "kubernetes_deployment" "listenarr" { metadata { name = "listenarr" @@ -53,16 +69,14 @@ resource "kubernetes_deployment" "listenarr" { } volume { name = "data" - nfs { - path = "/mnt/main/servarr/listenarr" - server = var.nfs_server + persistent_volume_claim { + claim_name = module.nfs_data.claim_name } } volume { name = "downloads" - nfs { - path = "/mnt/main/servarr/downloads" - server = var.nfs_server + persistent_volume_claim { + claim_name = module.nfs_downloads.claim_name } } } diff --git a/stacks/servarr/prowlarr/main.tf b/stacks/servarr/prowlarr/main.tf index a1ea2416..042efda5 100644 --- a/stacks/servarr/prowlarr/main.tf +++ b/stacks/servarr/prowlarr/main.tf @@ -3,6 +3,22 @@ variable "tier" { type = string } variable "nfs_server" { type = string } +module "nfs_data" { + source = "../../../modules/kubernetes/nfs_volume" + name = "servarr-prowlarr-data" + namespace = "servarr" + nfs_server = var.nfs_server + nfs_path = "/mnt/main/servarr/prowlarr" +} + +module "nfs_downloads" { + source = "../../../modules/kubernetes/nfs_volume" + name = "servarr-prowlarr-downloads" + namespace = "servarr" + nfs_server = var.nfs_server + nfs_path = "/mnt/main/servarr/downloads" +} + resource "kubernetes_deployment" "prowlarr" { metadata { name = "prowlarr" @@ -63,16 +79,14 @@ resource "kubernetes_deployment" "prowlarr" { } volume { name = "data" - nfs { - path = "/mnt/main/servarr/prowlarr" - server = var.nfs_server + persistent_volume_claim { + claim_name = module.nfs_data.claim_name } } volume { name = "downloads" - nfs { - path = "/mnt/main/servarr/downloads" - server = var.nfs_server + persistent_volume_claim { + claim_name = module.nfs_downloads.claim_name } } } diff --git a/stacks/servarr/qbittorrent/main.tf b/stacks/servarr/qbittorrent/main.tf index 4d972e28..316fb70f 100644 --- a/stacks/servarr/qbittorrent/main.tf +++ b/stacks/servarr/qbittorrent/main.tf @@ -3,6 +3,22 @@ variable "tier" { type = string } variable "nfs_server" { type = string } +module "nfs_data" { + source = "../../../modules/kubernetes/nfs_volume" + name = "servarr-qbittorrent-data" + namespace = "servarr" + nfs_server = var.nfs_server + nfs_path = "/mnt/main/servarr/qbittorrent" +} + +module "nfs_downloads" { + source = "../../../modules/kubernetes/nfs_volume" + name = "servarr-qbittorrent-downloads" + namespace = "servarr" + nfs_server = var.nfs_server + nfs_path = "/mnt/main/servarr/downloads" +} + resource "kubernetes_deployment" "qbittorrent" { metadata { name = "qbittorrent" @@ -63,16 +79,14 @@ resource "kubernetes_deployment" "qbittorrent" { } volume { name = "data" - nfs { - path = "/mnt/main/servarr/qbittorrent" - server = var.nfs_server + persistent_volume_claim { + claim_name = module.nfs_data.claim_name } } volume { name = "downloads" - nfs { - path = "/mnt/main/servarr/downloads" - server = var.nfs_server + persistent_volume_claim { + claim_name = module.nfs_downloads.claim_name } } } diff --git a/stacks/servarr/readarr/main.tf b/stacks/servarr/readarr/main.tf index 7310495e..ee8584b4 100644 --- a/stacks/servarr/readarr/main.tf +++ b/stacks/servarr/readarr/main.tf @@ -17,6 +17,22 @@ module "tls_secret" { tls_secret_name = var.tls_secret_name } +module "nfs_data" { + source = "../../../modules/kubernetes/nfs_volume" + name = "readarr-data" + namespace = "readarr" + nfs_server = var.nfs_server + nfs_path = "/mnt/main/servarr/readarr" +} + +module "nfs_qbittorrent" { + source = "../../../modules/kubernetes/nfs_volume" + name = "readarr-qbittorrent" + namespace = "readarr" + nfs_server = var.nfs_server + nfs_path = "/mnt/main/servarr/qbittorrent" +} + resource "kubernetes_deployment" "readarr" { metadata { name = "readarr" @@ -82,16 +98,14 @@ resource "kubernetes_deployment" "readarr" { } volume { name = "data" - nfs { - path = "/mnt/main/servarr/readarr" - server = var.nfs_server + persistent_volume_claim { + claim_name = module.nfs_data.claim_name } } volume { name = "qbittorrent" - nfs { - path = "/mnt/main/servarr/qbittorrent" - server = var.nfs_server + persistent_volume_claim { + claim_name = module.nfs_qbittorrent.claim_name } } } diff --git a/stacks/servarr/soulseek/main.tf b/stacks/servarr/soulseek/main.tf index fc623565..549b62cd 100644 --- a/stacks/servarr/soulseek/main.tf +++ b/stacks/servarr/soulseek/main.tf @@ -3,6 +3,14 @@ variable "tier" { type = string } variable "nfs_server" { type = string } +module "nfs_lidarr" { + source = "../../../modules/kubernetes/nfs_volume" + name = "servarr-soulseek-lidarr" + namespace = "servarr" + nfs_server = var.nfs_server + nfs_path = "/mnt/main/servarr/lidarr" +} + resource "kubernetes_deployment" "soulseek" { metadata { name = "soulseek" @@ -58,16 +66,14 @@ resource "kubernetes_deployment" "soulseek" { } volume { name = "config" - nfs { - path = "/mnt/main/servarr/lidarr" - server = var.nfs_server + persistent_volume_claim { + claim_name = module.nfs_lidarr.claim_name } } volume { name = "downloads" - nfs { - path = "/mnt/main/servarr/lidarr" - server = var.nfs_server + persistent_volume_claim { + claim_name = module.nfs_lidarr.claim_name } } }