chore: Refactor nfs PVC resource

This commit is contained in:
Peter 2026-04-17 21:15:46 +02:00
parent bd7d2794d4
commit 5c1a74db0e
Signed by: Peter
SSH key fingerprint: SHA256:B5tYaxBExaDm74r1px9iVeZ6F/ZDiyiy9SbBqfZYrvg
10 changed files with 123 additions and 132 deletions

View file

@ -4,6 +4,7 @@ kind: Kustomization
namespace: plex namespace: plex
resources: resources:
- ../../kustomize-bases/nfs-media
- configmap.yaml - configmap.yaml
- deployments.yaml - deployments.yaml
- ingress.yaml - ingress.yaml
@ -12,6 +13,28 @@ resources:
- services.yaml - services.yaml
- namespace.yaml - namespace.yaml
patches:
- target:
kind: PersistentVolume
name: nfs-media
patch: |
- op: replace
path: /metadata/name
value: nfs-media-plex
- op: replace
path: /spec/accessModes/0
value: ReadOnlyMany
- target:
kind: PersistentVolumeClaim
name: nfs-media
patch: |
- op: replace
path: /spec/volumeName
value: nfs-media-plex
- op: replace
path: /spec/accessModes/0
value: ReadOnlyMany
images: images:
- name: plexinc/pms-docker - name: plexinc/pms-docker
newTag: 1.43.1.10611-1e34174b1@sha256:8b5bcdf7b506fe051aa1a0a0d464efdb3ad8c0fb1f8a4dfb27a8c489b609920c newTag: 1.43.1.10611-1e34174b1@sha256:8b5bcdf7b506fe051aa1a0a0d464efdb3ad8c0fb1f8a4dfb27a8c489b609920c

View file

@ -10,36 +10,3 @@ spec:
resources: resources:
requests: requests:
storage: 20Gi storage: 20Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-media
spec:
accessModes:
- ReadOnlyMany
resources:
requests:
storage: 40Ti
volumeName: nfs-media-plex
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-media-plex
spec:
capacity:
storage: 40Ti
accessModes:
- ReadOnlyMany
nfs:
server: 10.0.69.10
path: /tank/media
mountOptions:
- vers=4.1
- rsize=1048576
- wsize=1048576
- hard
- timeo=600
- noatime
persistentVolumeReclaimPolicy: Retain

View file

@ -4,6 +4,7 @@ kind: Kustomization
namespace: qbittorrent namespace: qbittorrent
resources: resources:
- ../../kustomize-bases/nfs-media
- configmap.yaml - configmap.yaml
- deployments.yaml - deployments.yaml
- ingress.yaml - ingress.yaml
@ -12,6 +13,25 @@ resources:
- services.yaml - services.yaml
- namespace.yaml - namespace.yaml
patches:
- target:
kind: PersistentVolume
name: nfs-media
patch: |
- op: replace
path: /metadata/name
value: nfs-media-qbittorrent
- op: replace
path: /spec/nfs/path
value: /tank/media/downloads
- target:
kind: PersistentVolumeClaim
name: nfs-media
patch: |
- op: replace
path: /spec/volumeName
value: nfs-media-qbittorrent
images: images:
- name: ghcr.io/qdm12/gluetun - name: ghcr.io/qdm12/gluetun
newTag: v3.41.1@sha256:1a5bf4b4820a879cdf8d93d7ef0d2d963af56670c9ebff8981860b6804ebc8ab newTag: v3.41.1@sha256:1a5bf4b4820a879cdf8d93d7ef0d2d963af56670c9ebff8981860b6804ebc8ab

View file

@ -10,36 +10,3 @@ spec:
resources: resources:
requests: requests:
storage: 5Gi storage: 5Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-media
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 40Ti
volumeName: nfs-media-qbittorrent
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-media-qbittorrent
spec:
capacity:
storage: 40Ti
accessModes:
- ReadWriteMany
nfs:
server: 10.0.69.10
path: /tank/media/downloads
mountOptions:
- vers=4.1
- rsize=1048576
- wsize=1048576
- hard
- timeo=600
- noatime
persistentVolumeReclaimPolicy: Retain

View file

@ -4,6 +4,7 @@ kind: Kustomization
namespace: radarr namespace: radarr
resources: resources:
- ../../kustomize-bases/nfs-media
- configmap.yaml - configmap.yaml
- deployments.yaml - deployments.yaml
- ingress.yaml - ingress.yaml
@ -12,6 +13,22 @@ resources:
- services.yaml - services.yaml
- namespace.yaml - namespace.yaml
patches:
- target:
kind: PersistentVolume
name: nfs-media
patch: |
- op: replace
path: /metadata/name
value: nfs-media-radarr
- target:
kind: PersistentVolumeClaim
name: nfs-media
patch: |
- op: replace
path: /spec/volumeName
value: nfs-media-radarr
images: images:
- name: linuxserver/radarr - name: linuxserver/radarr
newTag: 6.1.1@sha256:6f1dda18354ea7f28cead8f6d099fc8222498c3ae165f567d504ed04d70980d7 newTag: 6.1.1@sha256:6f1dda18354ea7f28cead8f6d099fc8222498c3ae165f567d504ed04d70980d7

View file

@ -10,36 +10,3 @@ spec:
resources: resources:
requests: requests:
storage: 5Gi storage: 5Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-media
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 40Ti
volumeName: nfs-media-radarr
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-media-radarr
spec:
capacity:
storage: 40Ti
accessModes:
- ReadWriteMany
nfs:
server: 10.0.69.10
path: /tank/media
mountOptions:
- vers=4.1
- rsize=1048576
- wsize=1048576
- hard
- timeo=600
- noatime
persistentVolumeReclaimPolicy: Retain

View file

@ -4,6 +4,7 @@ kind: Kustomization
namespace: sonarr namespace: sonarr
resources: resources:
- ../../kustomize-bases/nfs-media
- configmap.yaml - configmap.yaml
- deployments.yaml - deployments.yaml
- ingress.yaml - ingress.yaml
@ -12,6 +13,22 @@ resources:
- services.yaml - services.yaml
- namespace.yaml - namespace.yaml
patches:
- target:
kind: PersistentVolume
name: nfs-media
patch: |
- op: replace
path: /metadata/name
value: nfs-media-sonarr
- target:
kind: PersistentVolumeClaim
name: nfs-media
patch: |
- op: replace
path: /spec/volumeName
value: nfs-media-sonarr
images: images:
- name: linuxserver/sonarr - name: linuxserver/sonarr
newTag: 4.0.17@sha256:6854df9de20b8c82e1982604f39473d64dbb4c4584b1013f18f9ade1ee92af13 newTag: 4.0.17@sha256:6854df9de20b8c82e1982604f39473d64dbb4c4584b1013f18f9ade1ee92af13

View file

@ -10,36 +10,3 @@ spec:
resources: resources:
requests: requests:
storage: 5Gi storage: 5Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-media
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 40Ti
volumeName: nfs-media-sonarr
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-media-sonarr
spec:
capacity:
storage: 40Ti
accessModes:
- ReadWriteMany
nfs:
server: 10.0.69.10
path: /tank/media
mountOptions:
- vers=4.1
- rsize=1048576
- wsize=1048576
- hard
- timeo=600
- noatime
persistentVolumeReclaimPolicy: Retain

View file

@ -0,0 +1,6 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- pvc.yaml

View file

@ -0,0 +1,40 @@
# Shared NFS media storage template — used by plex, sonarr, radarr, and qbittorrent.
# All apps on k8s-wheatley mount the same NFS server: 10.0.69.10
#
# Each app overlays this base with JSON patches in its kustomization.yaml:
# - Always: rename PV (metadata.name) and update PVC volumeName to match
# - plex only: patch accessModes to ReadOnlyMany on both PV and PVC
# - qbittorrent only: patch nfs.path to /tank/media/downloads
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-media # renamed per-app via JSON patch
spec:
capacity:
storage: 40Ti
accessModes:
- ReadWriteMany
nfs:
server: 10.0.69.10
path: /tank/media
mountOptions:
- vers=4.1
- rsize=1048576
- wsize=1048576
- hard
- timeo=600
- noatime
persistentVolumeReclaimPolicy: Retain
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-media
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 40Ti
volumeName: nfs-media # patched per-app to match PV name