[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).
This commit is contained in:
Viktor Barzin 2026-03-02 02:04:22 +00:00
parent 0abae33c71
commit 220aa739ce
8 changed files with 134 additions and 45 deletions

View file

@ -14,6 +14,14 @@ variable "budget_encryption_password" {
} }
variable "nfs_server" { type = string } 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" { resource "kubernetes_deployment" "actualbudget" {
metadata { metadata {
name = "actualbudget-${var.name}" name = "actualbudget-${var.name}"
@ -58,9 +66,8 @@ resource "kubernetes_deployment" "actualbudget" {
} }
volume { volume {
name = "data" name = "data"
nfs { persistent_volume_claim {
path = "/mnt/main/actualbudget/${var.name}" claim_name = module.nfs_data.claim_name
server = var.nfs_server
} }
} }
} }

View file

@ -16,6 +16,14 @@ resource "random_id" "secret_key" {
byte_length = 32 # 32 bytes × 2 hex chars = 64 hex characters 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" { resource "kubernetes_deployment" "aiostreams" {
metadata { metadata {
name = "aiostreams" name = "aiostreams"
@ -74,9 +82,8 @@ resource "kubernetes_deployment" "aiostreams" {
} }
volume { volume {
name = "data" name = "data"
nfs { persistent_volume_claim {
server = var.nfs_server claim_name = module.nfs_data.claim_name
path = "/mnt/main/servarr/aiostreams"
} }
} }
} }

View file

@ -3,6 +3,22 @@ variable "tier" { type = string }
variable "nfs_server" { 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" { resource "kubernetes_deployment" "lidarr" {
metadata { metadata {
name = "lidarr" name = "lidarr"
@ -76,23 +92,20 @@ resource "kubernetes_deployment" "lidarr" {
} }
volume { volume {
name = "data" name = "data"
nfs { persistent_volume_claim {
path = "/mnt/main/servarr/lidarr" claim_name = module.nfs_data.claim_name
server = var.nfs_server
} }
} }
volume { volume {
name = "downloads" name = "downloads"
nfs { persistent_volume_claim {
path = "/mnt/main/servarr/downloads" claim_name = module.nfs_downloads.claim_name
server = var.nfs_server
} }
} }
volume { volume {
name = "deemix-config" name = "deemix-config"
nfs { persistent_volume_claim {
path = "/mnt/main/servarr/lidarr" claim_name = module.nfs_data.claim_name
server = var.nfs_server
} }
} }
} }

View file

@ -3,6 +3,22 @@ variable "tier" { type = string }
variable "nfs_server" { 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" { resource "kubernetes_deployment" "listenarr" {
metadata { metadata {
name = "listenarr" name = "listenarr"
@ -53,16 +69,14 @@ resource "kubernetes_deployment" "listenarr" {
} }
volume { volume {
name = "data" name = "data"
nfs { persistent_volume_claim {
path = "/mnt/main/servarr/listenarr" claim_name = module.nfs_data.claim_name
server = var.nfs_server
} }
} }
volume { volume {
name = "downloads" name = "downloads"
nfs { persistent_volume_claim {
path = "/mnt/main/servarr/downloads" claim_name = module.nfs_downloads.claim_name
server = var.nfs_server
} }
} }
} }

View file

@ -3,6 +3,22 @@ variable "tier" { type = string }
variable "nfs_server" { 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" { resource "kubernetes_deployment" "prowlarr" {
metadata { metadata {
name = "prowlarr" name = "prowlarr"
@ -63,16 +79,14 @@ resource "kubernetes_deployment" "prowlarr" {
} }
volume { volume {
name = "data" name = "data"
nfs { persistent_volume_claim {
path = "/mnt/main/servarr/prowlarr" claim_name = module.nfs_data.claim_name
server = var.nfs_server
} }
} }
volume { volume {
name = "downloads" name = "downloads"
nfs { persistent_volume_claim {
path = "/mnt/main/servarr/downloads" claim_name = module.nfs_downloads.claim_name
server = var.nfs_server
} }
} }
} }

View file

@ -3,6 +3,22 @@ variable "tier" { type = string }
variable "nfs_server" { 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" { resource "kubernetes_deployment" "qbittorrent" {
metadata { metadata {
name = "qbittorrent" name = "qbittorrent"
@ -63,16 +79,14 @@ resource "kubernetes_deployment" "qbittorrent" {
} }
volume { volume {
name = "data" name = "data"
nfs { persistent_volume_claim {
path = "/mnt/main/servarr/qbittorrent" claim_name = module.nfs_data.claim_name
server = var.nfs_server
} }
} }
volume { volume {
name = "downloads" name = "downloads"
nfs { persistent_volume_claim {
path = "/mnt/main/servarr/downloads" claim_name = module.nfs_downloads.claim_name
server = var.nfs_server
} }
} }
} }

View file

@ -17,6 +17,22 @@ module "tls_secret" {
tls_secret_name = var.tls_secret_name 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" { resource "kubernetes_deployment" "readarr" {
metadata { metadata {
name = "readarr" name = "readarr"
@ -82,16 +98,14 @@ resource "kubernetes_deployment" "readarr" {
} }
volume { volume {
name = "data" name = "data"
nfs { persistent_volume_claim {
path = "/mnt/main/servarr/readarr" claim_name = module.nfs_data.claim_name
server = var.nfs_server
} }
} }
volume { volume {
name = "qbittorrent" name = "qbittorrent"
nfs { persistent_volume_claim {
path = "/mnt/main/servarr/qbittorrent" claim_name = module.nfs_qbittorrent.claim_name
server = var.nfs_server
} }
} }
} }

View file

@ -3,6 +3,14 @@ variable "tier" { type = string }
variable "nfs_server" { 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" { resource "kubernetes_deployment" "soulseek" {
metadata { metadata {
name = "soulseek" name = "soulseek"
@ -58,16 +66,14 @@ resource "kubernetes_deployment" "soulseek" {
} }
volume { volume {
name = "config" name = "config"
nfs { persistent_volume_claim {
path = "/mnt/main/servarr/lidarr" claim_name = module.nfs_lidarr.claim_name
server = var.nfs_server
} }
} }
volume { volume {
name = "downloads" name = "downloads"
nfs { persistent_volume_claim {
path = "/mnt/main/servarr/lidarr" claim_name = module.nfs_lidarr.claim_name
server = var.nfs_server
} }
} }
} }