[ci skip] migrate 29 services from inline NFS to CSI-backed PV/PVC
Batch migration of all single-volume and simple multi-volume stacks. All services verified healthy after migration. Uses nfs-truenas StorageClass with soft,timeo=30,retrans=3 mount options to eliminate stale NFS mount hangs. Services: atuin, audiobookshelf, calibre, changedetection, diun, excalidraw, forgejo, freshrss, grampsweb, hackmd, health, isponsorblocktv, matrix, meshcentral, n8n, navidrome, ntfy, ollama, onlyoffice, owntracks, paperless-ngx, poison-fountain, send, stirling-pdf, tandoor, wealthfolio, whisper, woodpecker, ytdlp
This commit is contained in:
parent
853a96cb57
commit
79a2aa3784
29 changed files with 423 additions and 174 deletions
|
|
@ -18,6 +18,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_config" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "atuin-config"
|
||||
namespace = kubernetes_namespace.atuin.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/atuin"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "atuin" {
|
||||
wait_for_rollout = false
|
||||
metadata {
|
||||
|
|
@ -110,9 +118,8 @@ resource "kubernetes_deployment" "atuin" {
|
|||
|
||||
volume {
|
||||
name = "config"
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/atuin"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_config.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,38 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_audiobooks" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "audiobookshelf-audiobooks"
|
||||
namespace = kubernetes_namespace.audiobookshelf.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/audiobookshelf/audiobooks"
|
||||
}
|
||||
|
||||
module "nfs_podcasts" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "audiobookshelf-podcasts"
|
||||
namespace = kubernetes_namespace.audiobookshelf.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/audiobookshelf/podcasts"
|
||||
}
|
||||
|
||||
module "nfs_config" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "audiobookshelf-config"
|
||||
namespace = kubernetes_namespace.audiobookshelf.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/audiobookshelf/config"
|
||||
}
|
||||
|
||||
module "nfs_metadata" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "audiobookshelf-metadata"
|
||||
namespace = kubernetes_namespace.audiobookshelf.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/audiobookshelf/metadata"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "audiobookshelf" {
|
||||
metadata {
|
||||
name = "audiobookshelf"
|
||||
|
|
@ -83,30 +115,26 @@ resource "kubernetes_deployment" "audiobookshelf" {
|
|||
}
|
||||
volume {
|
||||
name = "audiobooks"
|
||||
nfs {
|
||||
path = "/mnt/main/audiobookshelf/audiobooks"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_audiobooks.claim_name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "podcasts"
|
||||
nfs {
|
||||
path = "/mnt/main/audiobookshelf/podcasts"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_podcasts.claim_name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "config"
|
||||
nfs {
|
||||
path = "/mnt/main/audiobookshelf/config"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_config.claim_name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "metadata"
|
||||
nfs {
|
||||
path = "/mnt/main/audiobookshelf/metadata"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_metadata.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,38 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_library" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "calibre-library"
|
||||
namespace = kubernetes_namespace.calibre.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/calibre-web-automated/calibre-library"
|
||||
}
|
||||
|
||||
module "nfs_config" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "calibre-config"
|
||||
namespace = kubernetes_namespace.calibre.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/calibre-web-automated/config"
|
||||
}
|
||||
|
||||
module "nfs_ingest" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "calibre-ingest"
|
||||
namespace = kubernetes_namespace.calibre.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/calibre-web-automated/cwa-book-ingest"
|
||||
}
|
||||
|
||||
module "nfs_stacks_config" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "calibre-stacks-config"
|
||||
namespace = kubernetes_namespace.calibre.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/calibre-web-automated/stacks"
|
||||
}
|
||||
|
||||
# resource "kubernetes_deployment" "calibre" {
|
||||
# metadata {
|
||||
# name = "calibre"
|
||||
|
|
@ -181,23 +213,20 @@ resource "kubernetes_deployment" "calibre-web-automated" {
|
|||
}
|
||||
volume {
|
||||
name = "library"
|
||||
nfs {
|
||||
path = "/mnt/main/calibre-web-automated/calibre-library"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_library.claim_name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "config"
|
||||
nfs {
|
||||
path = "/mnt/main/calibre-web-automated/config"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_config.claim_name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "ingest"
|
||||
nfs {
|
||||
path = "/mnt/main/calibre-web-automated/cwa-book-ingest"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_ingest.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -292,16 +321,14 @@ resource "kubernetes_deployment" "annas-archive-stacks" {
|
|||
}
|
||||
volume {
|
||||
name = "config"
|
||||
nfs {
|
||||
path = "/mnt/main/calibre-web-automated/stacks"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_stacks_config.claim_name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "ingest"
|
||||
nfs {
|
||||
path = "/mnt/main/calibre-web-automated/cwa-book-ingest"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_ingest.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "changedetection-data"
|
||||
namespace = kubernetes_namespace.changedetection.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/changedetection"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "changedetection" {
|
||||
metadata {
|
||||
name = "changedetection"
|
||||
|
|
@ -114,9 +122,8 @@ resource "kubernetes_deployment" "changedetection" {
|
|||
# }
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/changedetection"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,6 +54,14 @@ resource "kubernetes_cluster_role_binding" "diun" {
|
|||
}
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "diun-data"
|
||||
namespace = kubernetes_namespace.diun.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/diun"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "diun" {
|
||||
metadata {
|
||||
name = "diun"
|
||||
|
|
@ -176,9 +184,8 @@ resource "kubernetes_deployment" "diun" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/diun"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "excalidraw-data"
|
||||
namespace = kubernetes_namespace.excalidraw.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/excalidraw"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "excalidraw" {
|
||||
metadata {
|
||||
name = "excalidraw"
|
||||
|
|
@ -78,9 +86,8 @@ resource "kubernetes_deployment" "excalidraw" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/excalidraw"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "forgejo-data"
|
||||
namespace = kubernetes_namespace.forgejo.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/forgejo"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "forgejo" {
|
||||
metadata {
|
||||
name = "forgejo"
|
||||
|
|
@ -77,9 +85,8 @@ resource "kubernetes_deployment" "forgejo" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/forgejo"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,22 @@ resource "kubernetes_namespace" "immich" {
|
|||
}
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "freshrss-data"
|
||||
namespace = kubernetes_namespace.immich.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/freshrss/data"
|
||||
}
|
||||
|
||||
module "nfs_extensions" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "freshrss-extensions"
|
||||
namespace = kubernetes_namespace.immich.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/freshrss/extensions"
|
||||
}
|
||||
|
||||
|
||||
resource "kubernetes_deployment" "freshrss" {
|
||||
metadata {
|
||||
|
|
@ -88,16 +104,14 @@ resource "kubernetes_deployment" "freshrss" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/freshrss/data"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "extensions"
|
||||
nfs {
|
||||
path = "/mnt/main/freshrss/extensions"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_extensions.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "grampsweb-data"
|
||||
namespace = kubernetes_namespace.grampsweb.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/grampsweb"
|
||||
}
|
||||
|
||||
resource "random_password" "secret_key" {
|
||||
length = 64
|
||||
special = false
|
||||
|
|
@ -233,9 +241,8 @@ resource "kubernetes_deployment" "grampsweb" {
|
|||
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/grampsweb"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "hackmd-data"
|
||||
namespace = kubernetes_namespace.hackmd.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/hackmd"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "hackmd" {
|
||||
metadata {
|
||||
name = "hackmd"
|
||||
|
|
@ -122,17 +130,9 @@ resource "kubernetes_deployment" "hackmd" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/hackmd"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
# iscsi {
|
||||
# target_portal = "iscsi.viktorbarzin.lan:3260"
|
||||
# fs_type = "ext4"
|
||||
# iqn = "iqn.2020-12.lan.viktorbarzin:storage:hackmd"
|
||||
# lun = 0
|
||||
# read_only = false
|
||||
# }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_uploads" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "health-uploads"
|
||||
namespace = kubernetes_namespace.health.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/health"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "health" {
|
||||
metadata {
|
||||
name = "health"
|
||||
|
|
@ -94,9 +102,8 @@ resource "kubernetes_deployment" "health" {
|
|||
}
|
||||
volume {
|
||||
name = "uploads"
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/health"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_uploads.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,14 @@ resource "kubernetes_namespace" "isponsorblocktv" {
|
|||
# Before running, setup config using
|
||||
# docker run --rm -it -v ./youtube:/app/data -e TERM=$TERM -e COLORTERM=$COLORTERM ghcr.io/dmunozv04/isponsorblocktv --setup
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "isponsorblocktv-data"
|
||||
namespace = kubernetes_namespace.isponsorblocktv.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/isponsorblocktv/vermont"
|
||||
}
|
||||
|
||||
# Mute and skip ads for vermont smart tv
|
||||
resource "kubernetes_deployment" "isponsorblocktv-vermont" {
|
||||
metadata {
|
||||
|
|
@ -56,9 +64,8 @@ resource "kubernetes_deployment" "isponsorblocktv-vermont" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/isponsorblocktv/vermont"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "matrix-data"
|
||||
namespace = kubernetes_namespace.matrix.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/matrix"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "matrix" {
|
||||
metadata {
|
||||
name = "matrix"
|
||||
|
|
@ -62,9 +70,8 @@ resource "kubernetes_deployment" "matrix" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/matrix"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,30 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "meshcentral-data"
|
||||
namespace = kubernetes_namespace.meshcentral.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/meshcentral/meshcentral-data"
|
||||
}
|
||||
|
||||
module "nfs_files" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "meshcentral-files"
|
||||
namespace = kubernetes_namespace.meshcentral.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/meshcentral/meshcentral-files"
|
||||
}
|
||||
|
||||
module "nfs_backups" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "meshcentral-backups"
|
||||
namespace = kubernetes_namespace.meshcentral.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/meshcentral/meshcentral-backups"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "meshcentral" {
|
||||
metadata {
|
||||
name = "meshcentral"
|
||||
|
|
@ -106,23 +130,20 @@ resource "kubernetes_deployment" "meshcentral" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/meshcentral/meshcentral-data"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "files"
|
||||
nfs {
|
||||
path = "/mnt/main/meshcentral/meshcentral-files"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_files.claim_name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "backups"
|
||||
nfs {
|
||||
path = "/mnt/main/meshcentral/meshcentral-backups"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_backups.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,14 @@ resource "kubernetes_namespace" "n8n" {
|
|||
}
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "n8n-data"
|
||||
namespace = kubernetes_namespace.n8n.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/n8n"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "n8n" {
|
||||
metadata {
|
||||
name = "n8n"
|
||||
|
|
@ -115,9 +123,8 @@ resource "kubernetes_deployment" "n8n" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/n8n"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,30 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "navidrome-data"
|
||||
namespace = kubernetes_namespace.navidrome.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/navidrome"
|
||||
}
|
||||
|
||||
module "nfs_music" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "navidrome-music"
|
||||
namespace = kubernetes_namespace.navidrome.metadata[0].name
|
||||
nfs_server = "192.168.1.13"
|
||||
nfs_path = "/volume1/music"
|
||||
}
|
||||
|
||||
module "nfs_lidarr" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "navidrome-lidarr"
|
||||
namespace = kubernetes_namespace.navidrome.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/servarr/lidarr"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "navidrome" {
|
||||
metadata {
|
||||
name = "navidrome"
|
||||
|
|
@ -79,23 +103,20 @@ resource "kubernetes_deployment" "navidrome" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/navidrome"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "music"
|
||||
nfs {
|
||||
path = "/volume1/music"
|
||||
server = "192.168.1.13"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_music.claim_name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "lidarr"
|
||||
nfs {
|
||||
path = "/mnt/main/servarr/lidarr"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_lidarr.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "ntfy-data"
|
||||
namespace = kubernetes_namespace.ntfy.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/ntfy"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "ntfy" {
|
||||
metadata {
|
||||
name = "ntfy"
|
||||
|
|
@ -100,9 +108,8 @@ resource "kubernetes_deployment" "ntfy" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/ntfy"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,39 +18,21 @@ module "tls_secret" {
|
|||
namespace = kubernetes_namespace.ollama.metadata[0].name
|
||||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
resource "kubernetes_persistent_volume_claim" "ollama-pvc" {
|
||||
metadata {
|
||||
name = "ollama-pvc"
|
||||
namespace = kubernetes_namespace.ollama.metadata[0].name
|
||||
}
|
||||
|
||||
spec {
|
||||
access_modes = ["ReadWriteOnce"]
|
||||
resources {
|
||||
requests = {
|
||||
storage = "30Gi"
|
||||
}
|
||||
}
|
||||
volume_name = "ollama-pv"
|
||||
}
|
||||
module "nfs_ollama_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "ollama-data"
|
||||
namespace = kubernetes_namespace.ollama.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/ssd/ollama"
|
||||
}
|
||||
|
||||
resource "kubernetes_persistent_volume" "ollama-pv" {
|
||||
metadata {
|
||||
name = "ollama-pv"
|
||||
}
|
||||
spec {
|
||||
capacity = {
|
||||
"storage" = "30Gi"
|
||||
}
|
||||
access_modes = ["ReadWriteOnce"]
|
||||
persistent_volume_source {
|
||||
nfs {
|
||||
path = "/mnt/main/ollama"
|
||||
server = var.nfs_server
|
||||
}
|
||||
}
|
||||
}
|
||||
module "nfs_ollama_ui_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "ollama-ui-data"
|
||||
namespace = kubernetes_namespace.ollama.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/ollama"
|
||||
}
|
||||
|
||||
# resource "helm_release" "ollama" {
|
||||
|
|
@ -132,10 +114,8 @@ resource "kubernetes_deployment" "ollama" {
|
|||
}
|
||||
volume {
|
||||
name = "ollama-data"
|
||||
nfs {
|
||||
# path = "/mnt/main/ollama"
|
||||
path = "/mnt/ssd/ollama"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_ollama_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -282,9 +262,8 @@ resource "kubernetes_deployment" "ollama-ui" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/ollama"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_ollama_ui_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,6 +64,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "onlyoffice-data"
|
||||
namespace = kubernetes_namespace.onlyoffice.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/onlyoffice"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "onlyoffice-document-server" {
|
||||
metadata {
|
||||
name = "onlyoffice-document-server"
|
||||
|
|
@ -149,9 +157,8 @@ resource "kubernetes_deployment" "onlyoffice-document-server" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/onlyoffice"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,6 +40,14 @@ resource "kubernetes_secret" "basic_auth" {
|
|||
}
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "owntracks-data"
|
||||
namespace = kubernetes_namespace.owntracks.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/owntracks"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "owntracks" {
|
||||
metadata {
|
||||
name = "owntracks"
|
||||
|
|
@ -107,9 +115,8 @@ resource "kubernetes_deployment" "owntracks" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/owntracks"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "paperless-ngx-data"
|
||||
namespace = kubernetes_namespace.paperless-ngx.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/paperless-ngx"
|
||||
}
|
||||
|
||||
|
||||
resource "kubernetes_deployment" "paperless-ngx" {
|
||||
metadata {
|
||||
|
|
@ -127,9 +135,8 @@ resource "kubernetes_deployment" "paperless-ngx" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/paperless-ngx"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "poison-fountain-data"
|
||||
namespace = kubernetes_namespace.poison_fountain.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/poison-fountain"
|
||||
}
|
||||
|
||||
# ConfigMap for the Python service code
|
||||
resource "kubernetes_config_map" "poison_fountain_code" {
|
||||
metadata {
|
||||
|
|
@ -157,9 +165,8 @@ resource "kubernetes_deployment" "poison_fountain" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/poison-fountain"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -264,9 +271,8 @@ resource "kubernetes_cron_job_v1" "poison_fetcher" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/poison-fountain"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "send-data"
|
||||
namespace = kubernetes_namespace.send.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/send"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "send" {
|
||||
metadata {
|
||||
name = "send"
|
||||
|
|
@ -93,9 +101,8 @@ resource "kubernetes_deployment" "send" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/send"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_configs" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "stirling-pdf-configs"
|
||||
namespace = kubernetes_namespace.stirling-pdf.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/stirling-pdf"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "stirling-pdf" {
|
||||
metadata {
|
||||
name = "stirling-pdf"
|
||||
|
|
@ -65,9 +73,8 @@ resource "kubernetes_deployment" "stirling-pdf" {
|
|||
}
|
||||
volume {
|
||||
name = "configs"
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/stirling-pdf"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_configs.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,6 +29,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "tandoor-data"
|
||||
namespace = kubernetes_namespace.tandoor.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/tandoor"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "tandoor" {
|
||||
metadata {
|
||||
name = "tandoor"
|
||||
|
|
@ -150,9 +158,8 @@ resource "kubernetes_deployment" "tandoor" {
|
|||
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/tandoor"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,14 @@ resource "random_string" "random" {
|
|||
lower = true
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "wealthfolio-data"
|
||||
namespace = kubernetes_namespace.wealthfolio.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/wealthfolio"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "wealthfolio" {
|
||||
metadata {
|
||||
name = "wealthfolio"
|
||||
|
|
@ -101,9 +109,8 @@ resource "kubernetes_deployment" "wealthfolio" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/wealthfolio"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,14 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "whisper-data"
|
||||
namespace = kubernetes_namespace.whisper.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/whisper"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "whisper" {
|
||||
metadata {
|
||||
name = "whisper"
|
||||
|
|
@ -81,9 +89,8 @@ resource "kubernetes_deployment" "whisper" {
|
|||
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/whisper"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -201,9 +208,8 @@ resource "kubernetes_deployment" "piper" {
|
|||
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/whisper"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -101,11 +101,18 @@ resource "kubernetes_persistent_volume" "woodpecker_server_data" {
|
|||
capacity = {
|
||||
storage = "10Gi"
|
||||
}
|
||||
access_modes = ["ReadWriteOnce"]
|
||||
access_modes = ["ReadWriteOnce"]
|
||||
persistent_volume_reclaim_policy = "Retain"
|
||||
storage_class_name = "nfs-truenas"
|
||||
volume_mode = "Filesystem"
|
||||
persistent_volume_source {
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/woodpecker"
|
||||
csi {
|
||||
driver = "nfs.csi.k8s.io"
|
||||
volume_handle = "woodpecker-server-data"
|
||||
volume_attributes = {
|
||||
server = var.nfs_server
|
||||
share = "/mnt/main/woodpecker"
|
||||
}
|
||||
}
|
||||
}
|
||||
claim_ref {
|
||||
|
|
|
|||
|
|
@ -23,6 +23,22 @@ module "tls_secret" {
|
|||
tls_secret_name = var.tls_secret_name
|
||||
}
|
||||
|
||||
module "nfs_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "ytdlp-data"
|
||||
namespace = kubernetes_namespace.ytdlp.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/ytdlp"
|
||||
}
|
||||
|
||||
module "nfs_highlights_data" {
|
||||
source = "../../modules/kubernetes/nfs_volume"
|
||||
name = "ytdlp-highlights-data"
|
||||
namespace = kubernetes_namespace.ytdlp.metadata[0].name
|
||||
nfs_server = var.nfs_server
|
||||
nfs_path = "/mnt/main/ytdlp-highlights"
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "ytdlp" {
|
||||
# resource "kubernetes_daemonset" "technitium" {
|
||||
metadata {
|
||||
|
|
@ -92,9 +108,8 @@ resource "kubernetes_deployment" "ytdlp" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
path = "/mnt/main/ytdlp"
|
||||
server = var.nfs_server
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_data.claim_name
|
||||
}
|
||||
}
|
||||
# }
|
||||
|
|
@ -288,9 +303,8 @@ resource "kubernetes_deployment" "yt_highlights" {
|
|||
}
|
||||
volume {
|
||||
name = "data"
|
||||
nfs {
|
||||
server = var.nfs_server
|
||||
path = "/mnt/main/ytdlp-highlights"
|
||||
persistent_volume_claim {
|
||||
claim_name = module.nfs_highlights_data.claim_name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue