[ci skip] complete NFS CSI migration: complex stacks + platform modules

Migrate remaining multi-volume stacks and all platform modules from
inline NFS volumes to CSI-backed PV/PVC with nfs-truenas StorageClass
(soft,timeo=30,retrans=3 mount options).

Complex stacks: openclaw (4 vols), immich (8 vols), frigate (2 vols),
nextcloud (2 vols + old PV replaced), rybbit (1 vol)

Remaining stacks: affine, ebook2audiobook, f1-stream, osm_routing,
real-estate-crawler

Platform modules: monitoring (prometheus, loki, alertmanager PVs
converted from native NFS to CSI), redis, dbaas, technitium,
headscale, vaultwarden, uptime-kuma, mailserver, infra-maintenance
This commit is contained in:
Viktor Barzin 2026-03-02 01:24:07 +00:00
parent 11b3d92684
commit 0e324df545
No known key found for this signature in database
GPG key ID: 0EB088298288D958
24 changed files with 411 additions and 179 deletions

View file

@ -34,11 +34,16 @@ resource "kubernetes_persistent_volume" "alertmanager_pv" {
}
access_modes = ["ReadWriteOnce"]
persistent_volume_source {
nfs {
path = "/mnt/main/alertmanager"
server = var.nfs_server
csi {
driver = "nfs.csi.k8s.io"
volume_handle = "alertmanager-pv"
volume_attributes = {
server = var.nfs_server
share = "/mnt/main/alertmanager"
}
}
}
storage_class_name = "nfs-truenas"
}
}
# resource "kubernetes_persistent_volume_claim" "grafana_pvc" {

View file

@ -24,11 +24,16 @@ resource "kubernetes_persistent_volume" "loki" {
}
access_modes = ["ReadWriteOnce"]
persistent_volume_source {
nfs {
path = "/mnt/main/loki/loki"
server = var.nfs_server
csi {
driver = "nfs.csi.k8s.io"
volume_handle = "loki"
volume_attributes = {
server = var.nfs_server
share = "/mnt/main/loki/loki"
}
}
}
storage_class_name = "nfs-truenas"
persistent_volume_reclaim_policy = "Retain"
volume_mode = "Filesystem"
}

View file

@ -14,7 +14,8 @@ resource "kubernetes_persistent_volume_claim" "prometheus_server_pvc" {
}
}
# storage_class_name = "standard"
volume_name = "prometheus-iscsi-pv"
storage_class_name = "nfs-truenas"
volume_name = "prometheus-iscsi-pv"
}
}
@ -28,18 +29,16 @@ resource "kubernetes_persistent_volume" "prometheus_server_pvc" {
}
access_modes = ["ReadWriteOnce"]
persistent_volume_source {
nfs {
path = "/mnt/main/prometheus"
server = var.nfs_server
csi {
driver = "nfs.csi.k8s.io"
volume_handle = "prometheus-iscsi-pv"
volume_attributes = {
server = var.nfs_server
share = "/mnt/main/prometheus"
}
}
# iscsi {
# fs_type = "ext4"
# iqn = "iqn.2020-12.lan.viktorbarzin:storage:monitoring:prometheus"
# lun = 0
# target_portal = "iscsi.viktorbarzin.me:3260"
# }
}
storage_class_name = "nfs-truenas"
persistent_volume_reclaim_policy = "Retain"
volume_mode = "Filesystem"
}