feat(storage): migrate 12 SQLite NFS PVCs to proxmox-lvm (Wave 1)
Add proxmox-lvm PVCs with pvc-autoresizer annotations for all SQLite-backed services. Deployments updated to use new block storage PVCs. Old NFS modules retained for 1-week rollback. Services: ntfy, freshrss, insta2spotify, actualbudget (x3), wealthfolio, navidrome (DB only), audiobookshelf config, headscale, forgejo, uptime-kuma. Also: set Recreate strategy on ntfy, forgejo, insta2spotify, wealthfolio (required for RWO volumes).
This commit is contained in:
parent
792da5c066
commit
ee39dd2fc9
10 changed files with 263 additions and 14 deletions
|
|
@ -66,6 +66,28 @@ module "nfs_data" {
|
|||
nfs_path = "/mnt/main/navidrome"
|
||||
}
|
||||
|
||||
resource "kubernetes_persistent_volume_claim" "data_proxmox" {
|
||||
wait_until_bound = false
|
||||
metadata {
|
||||
name = "navidrome-data-proxmox"
|
||||
namespace = kubernetes_namespace.navidrome.metadata[0].name
|
||||
annotations = {
|
||||
"resize.topolvm.io/threshold" = "80%"
|
||||
"resize.topolvm.io/increase" = "100%"
|
||||
"resize.topolvm.io/storage_limit" = "5Gi"
|
||||
}
|
||||
}
|
||||
spec {
|
||||
access_modes = ["ReadWriteOnce"]
|
||||
storage_class_name = "proxmox-lvm"
|
||||
resources {
|
||||
requests = {
|
||||
storage = "1Gi"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module "nfs_music" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "navidrome-music"
|
||||
|
|
@ -82,6 +104,14 @@ module "nfs_lidarr" {
|
|||
nfs_path = "/mnt/main/servarr/lidarr"
|
||||
}
|
||||
|
||||
module "nfs_freedify" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "navidrome-freedify"
|
||||
namespace = kubernetes_namespace.navidrome.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/freedify-music"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "navidrome" {
|
||||
metadata {
|
||||
name = "navidrome"
|
||||
|
|
@ -125,6 +155,15 @@ resource "kubernetes_deployment" "navidrome" {
|
|||
mount_path = "/lidarr"
|
||||
read_only = true
|
||||
}
|
||||
volume_mount {
|
||||
name = "freedify"
|
||||
mount_path = "/freedify-music"
|
||||
read_only = true
|
||||
}
|
||||
env {
|
||||
name = "ND_SCANSCHEDULE"
|
||||
value = "0"
|
||||
}
|
||||
port {
|
||||
name = "http"
|
||||
container_port = 4533
|
||||
|
|
@ -143,7 +182,7 @@ resource "kubernetes_deployment" "navidrome" {
|
|||
volume {
|
||||
name = "data"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
claim_name = kubernetes_persistent_volume_claim.data_proxmox.metadata[0].name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
|
|
@ -158,6 +197,12 @@ resource "kubernetes_deployment" "navidrome" {
|
|||
claim_name = module.nfs_lidarr.claim_name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "freedify"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_freedify.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue