diff --git a/k8s-wheatley/lidarr/deployments.yaml b/k8s-wheatley/lidarr/deployments.yaml index de9c4c5..f81dda7 100644 --- a/k8s-wheatley/lidarr/deployments.yaml +++ b/k8s-wheatley/lidarr/deployments.yaml @@ -28,8 +28,10 @@ spec: volumeMounts: - mountPath: /config name: lidarr-config - - mountPath: /shared/media - name: nfs-media + - mountPath: /shared/media/music + name: nfs-media-music + - mountPath: /shared/media/downloads + name: nfs-media-downloads securityContext: seccompProfile: type: RuntimeDefault @@ -45,6 +47,9 @@ spec: - name: lidarr-config persistentVolumeClaim: claimName: lidarr-storage - - name: nfs-media + - name: nfs-media-music persistentVolumeClaim: - claimName: nfs-media + claimName: nfs-media-music + - name: nfs-media-downloads + persistentVolumeClaim: + claimName: nfs-media-downloads diff --git a/k8s-wheatley/lidarr/kustomization.yaml b/k8s-wheatley/lidarr/kustomization.yaml index 018f13b..5b4c1d1 100644 --- a/k8s-wheatley/lidarr/kustomization.yaml +++ b/k8s-wheatley/lidarr/kustomization.yaml @@ -4,7 +4,6 @@ kind: Kustomization namespace: lidarr resources: - - ../../kustomize-bases/nfs-media - configmap.yaml - deployments.yaml - ingress.yaml @@ -12,21 +11,39 @@ resources: - services.yaml - namespace.yaml +components: + - ../../kustomize-bases/nfs-media/components/music + - ../../kustomize-bases/nfs-media/components/downloads + patches: - target: kind: PersistentVolume - name: nfs-media + name: nfs-media-music patch: | - op: replace path: /metadata/name - value: nfs-media-lidarr + value: nfs-media-lidarr-music - target: kind: PersistentVolumeClaim - name: nfs-media + name: nfs-media-music patch: | - op: replace path: /spec/volumeName - value: nfs-media-lidarr + value: nfs-media-lidarr-music + - target: + kind: PersistentVolume + name: nfs-media-downloads + patch: | + - op: replace + path: /metadata/name + value: nfs-media-lidarr-downloads + - target: + kind: PersistentVolumeClaim + name: nfs-media-downloads + patch: | + - op: replace + path: /spec/volumeName + value: nfs-media-lidarr-downloads images: - name: linuxserver/lidarr diff --git a/k8s-wheatley/plex/deployments.yaml b/k8s-wheatley/plex/deployments.yaml index 3e48bda..11e0717 100644 --- a/k8s-wheatley/plex/deployments.yaml +++ b/k8s-wheatley/plex/deployments.yaml @@ -28,8 +28,12 @@ spec: volumeMounts: - mountPath: /config name: plex-config - - mountPath: /data - name: nfs-media + - mountPath: /data/movies + name: nfs-media-movies + - mountPath: /data/series + name: nfs-media-series + - mountPath: /data/anime + name: nfs-media-anime securityContext: seccompProfile: type: RuntimeDefault @@ -45,6 +49,12 @@ spec: - name: plex-config persistentVolumeClaim: claimName: plex-storage - - name: nfs-media + - name: nfs-media-movies persistentVolumeClaim: - claimName: nfs-media + claimName: nfs-media-movies + - name: nfs-media-series + persistentVolumeClaim: + claimName: nfs-media-series + - name: nfs-media-anime + persistentVolumeClaim: + claimName: nfs-media-anime diff --git a/k8s-wheatley/plex/kustomization.yaml b/k8s-wheatley/plex/kustomization.yaml index 3bd4023..ccb0bdc 100644 --- a/k8s-wheatley/plex/kustomization.yaml +++ b/k8s-wheatley/plex/kustomization.yaml @@ -4,7 +4,6 @@ kind: Kustomization namespace: plex resources: - - ../../kustomize-bases/nfs-media - configmap.yaml - deployments.yaml - ingress.yaml @@ -13,24 +12,69 @@ resources: - services.yaml - namespace.yaml +components: + - ../../kustomize-bases/nfs-media/components/movies + - ../../kustomize-bases/nfs-media/components/series + - ../../kustomize-bases/nfs-media/components/anime + patches: - target: kind: PersistentVolume - name: nfs-media + name: nfs-media-movies patch: | - op: replace path: /metadata/name - value: nfs-media-plex + value: nfs-media-plex-movies - op: replace path: /spec/accessModes/0 value: ReadOnlyMany - target: kind: PersistentVolumeClaim - name: nfs-media + name: nfs-media-movies patch: | - op: replace path: /spec/volumeName - value: nfs-media-plex + value: nfs-media-plex-movies + - op: replace + path: /spec/accessModes/0 + value: ReadOnlyMany + - target: + kind: PersistentVolume + name: nfs-media-series + patch: | + - op: replace + path: /metadata/name + value: nfs-media-plex-series + - op: replace + path: /spec/accessModes/0 + value: ReadOnlyMany + - target: + kind: PersistentVolumeClaim + name: nfs-media-series + patch: | + - op: replace + path: /spec/volumeName + value: nfs-media-plex-series + - op: replace + path: /spec/accessModes/0 + value: ReadOnlyMany + - target: + kind: PersistentVolume + name: nfs-media-anime + patch: | + - op: replace + path: /metadata/name + value: nfs-media-plex-anime + - op: replace + path: /spec/accessModes/0 + value: ReadOnlyMany + - target: + kind: PersistentVolumeClaim + name: nfs-media-anime + patch: | + - op: replace + path: /spec/volumeName + value: nfs-media-plex-anime - op: replace path: /spec/accessModes/0 value: ReadOnlyMany diff --git a/k8s-wheatley/qbittorrent/deployments.yaml b/k8s-wheatley/qbittorrent/deployments.yaml index b6d35cd..4eb27c3 100644 --- a/k8s-wheatley/qbittorrent/deployments.yaml +++ b/k8s-wheatley/qbittorrent/deployments.yaml @@ -94,7 +94,7 @@ spec: - mountPath: /config name: qbittorrent-config - mountPath: /shared/media/downloads - name: nfs-media + name: nfs-media-downloads securityContext: seccompProfile: type: RuntimeDefault @@ -114,7 +114,7 @@ spec: name: unpackerr-env-secrets volumeMounts: - mountPath: /shared/media/downloads - name: nfs-media + name: nfs-media-downloads securityContext: seccompProfile: type: RuntimeDefault @@ -136,7 +136,7 @@ spec: - mountPath: /config name: slskd-config - mountPath: /shared/media/downloads - name: nfs-media + name: nfs-media-downloads securityContext: seccompProfile: type: RuntimeDefault @@ -168,6 +168,6 @@ spec: defaultMode: 0755 - name: gluetun-tmp emptyDir: {} - - name: nfs-media + - name: nfs-media-downloads persistentVolumeClaim: - claimName: nfs-media + claimName: nfs-media-downloads diff --git a/k8s-wheatley/qbittorrent/kustomization.yaml b/k8s-wheatley/qbittorrent/kustomization.yaml index dfe93b6..772ec7b 100644 --- a/k8s-wheatley/qbittorrent/kustomization.yaml +++ b/k8s-wheatley/qbittorrent/kustomization.yaml @@ -4,7 +4,6 @@ kind: Kustomization namespace: qbittorrent resources: - - ../../kustomize-bases/nfs-media - configmap.yaml - deployments.yaml - ingress.yaml @@ -12,24 +11,24 @@ resources: - secrets.yaml - namespace.yaml +components: + - ../../kustomize-bases/nfs-media/components/downloads + patches: - target: kind: PersistentVolume - name: nfs-media + name: nfs-media-downloads patch: | - op: replace path: /metadata/name - value: nfs-media-qbittorrent - - op: replace - path: /spec/nfs/path - value: /tank/media/downloads + value: nfs-media-qbittorrent-downloads - target: kind: PersistentVolumeClaim - name: nfs-media + name: nfs-media-downloads patch: | - op: replace path: /spec/volumeName - value: nfs-media-qbittorrent + value: nfs-media-qbittorrent-downloads images: - name: ghcr.io/qdm12/gluetun diff --git a/k8s-wheatley/radarr/deployments.yaml b/k8s-wheatley/radarr/deployments.yaml index a4042c0..41587c3 100644 --- a/k8s-wheatley/radarr/deployments.yaml +++ b/k8s-wheatley/radarr/deployments.yaml @@ -28,8 +28,10 @@ spec: volumeMounts: - mountPath: /config name: radarr-config - - mountPath: /shared/media - name: nfs-media + - mountPath: /shared/media/movies + name: nfs-media-movies + - mountPath: /shared/media/downloads + name: nfs-media-downloads securityContext: seccompProfile: type: RuntimeDefault @@ -45,6 +47,9 @@ spec: - name: radarr-config persistentVolumeClaim: claimName: radarr-storage - - name: nfs-media + - name: nfs-media-movies persistentVolumeClaim: - claimName: nfs-media + claimName: nfs-media-movies + - name: nfs-media-downloads + persistentVolumeClaim: + claimName: nfs-media-downloads diff --git a/k8s-wheatley/radarr/kustomization.yaml b/k8s-wheatley/radarr/kustomization.yaml index 445d2f3..7296e89 100644 --- a/k8s-wheatley/radarr/kustomization.yaml +++ b/k8s-wheatley/radarr/kustomization.yaml @@ -4,7 +4,6 @@ kind: Kustomization namespace: radarr resources: - - ../../kustomize-bases/nfs-media - configmap.yaml - deployments.yaml - ingress.yaml @@ -13,21 +12,39 @@ resources: - services.yaml - namespace.yaml +components: + - ../../kustomize-bases/nfs-media/components/movies + - ../../kustomize-bases/nfs-media/components/downloads + patches: - target: kind: PersistentVolume - name: nfs-media + name: nfs-media-movies patch: | - op: replace path: /metadata/name - value: nfs-media-radarr + value: nfs-media-radarr-movies - target: kind: PersistentVolumeClaim - name: nfs-media + name: nfs-media-movies patch: | - op: replace path: /spec/volumeName - value: nfs-media-radarr + value: nfs-media-radarr-movies + - target: + kind: PersistentVolume + name: nfs-media-downloads + patch: | + - op: replace + path: /metadata/name + value: nfs-media-radarr-downloads + - target: + kind: PersistentVolumeClaim + name: nfs-media-downloads + patch: | + - op: replace + path: /spec/volumeName + value: nfs-media-radarr-downloads images: - name: linuxserver/radarr diff --git a/k8s-wheatley/sonarr/deployments.yaml b/k8s-wheatley/sonarr/deployments.yaml index 45e7ea9..79a8b50 100644 --- a/k8s-wheatley/sonarr/deployments.yaml +++ b/k8s-wheatley/sonarr/deployments.yaml @@ -28,8 +28,12 @@ spec: volumeMounts: - mountPath: /config name: sonarr-config - - mountPath: /shared/media - name: nfs-media + - mountPath: /shared/media/series + name: nfs-media-series + - mountPath: /shared/media/anime + name: nfs-media-anime + - mountPath: /shared/media/downloads + name: nfs-media-downloads securityContext: seccompProfile: type: RuntimeDefault @@ -45,6 +49,12 @@ spec: - name: sonarr-config persistentVolumeClaim: claimName: sonarr-storage - - name: nfs-media + - name: nfs-media-series persistentVolumeClaim: - claimName: nfs-media + claimName: nfs-media-series + - name: nfs-media-anime + persistentVolumeClaim: + claimName: nfs-media-anime + - name: nfs-media-downloads + persistentVolumeClaim: + claimName: nfs-media-downloads diff --git a/k8s-wheatley/sonarr/kustomization.yaml b/k8s-wheatley/sonarr/kustomization.yaml index 51ba92b..4c9f0c9 100644 --- a/k8s-wheatley/sonarr/kustomization.yaml +++ b/k8s-wheatley/sonarr/kustomization.yaml @@ -4,7 +4,6 @@ kind: Kustomization namespace: sonarr resources: - - ../../kustomize-bases/nfs-media - configmap.yaml - deployments.yaml - ingress.yaml @@ -13,21 +12,54 @@ resources: - services.yaml - namespace.yaml +components: + - ../../kustomize-bases/nfs-media/components/series + - ../../kustomize-bases/nfs-media/components/anime + - ../../kustomize-bases/nfs-media/components/downloads + patches: - target: kind: PersistentVolume - name: nfs-media + name: nfs-media-series patch: | - op: replace path: /metadata/name - value: nfs-media-sonarr + value: nfs-media-sonarr-series - target: kind: PersistentVolumeClaim - name: nfs-media + name: nfs-media-series patch: | - op: replace path: /spec/volumeName - value: nfs-media-sonarr + value: nfs-media-sonarr-series + - target: + kind: PersistentVolume + name: nfs-media-anime + patch: | + - op: replace + path: /metadata/name + value: nfs-media-sonarr-anime + - target: + kind: PersistentVolumeClaim + name: nfs-media-anime + patch: | + - op: replace + path: /spec/volumeName + value: nfs-media-sonarr-anime + - target: + kind: PersistentVolume + name: nfs-media-downloads + patch: | + - op: replace + path: /metadata/name + value: nfs-media-sonarr-downloads + - target: + kind: PersistentVolumeClaim + name: nfs-media-downloads + patch: | + - op: replace + path: /spec/volumeName + value: nfs-media-sonarr-downloads images: - name: linuxserver/sonarr diff --git a/kustomize-bases/nfs-media/components/anime/kustomization.yaml b/kustomize-bases/nfs-media/components/anime/kustomization.yaml new file mode 100644 index 0000000..9014f38 --- /dev/null +++ b/kustomize-bases/nfs-media/components/anime/kustomization.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1alpha1 +kind: Component +resources: + - pvc.yaml diff --git a/kustomize-bases/nfs-media/components/anime/pvc.yaml b/kustomize-bases/nfs-media/components/anime/pvc.yaml new file mode 100644 index 0000000..9471154 --- /dev/null +++ b/kustomize-bases/nfs-media/components/anime/pvc.yaml @@ -0,0 +1,33 @@ +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: nfs-media-anime +spec: + capacity: + storage: 40Ti + accessModes: + - ReadWriteMany + nfs: + server: 10.0.69.10 + path: /tank/media/anime + mountOptions: + - vers=4.1 + - rsize=1048576 + - wsize=1048576 + - hard + - timeo=600 + - noatime + persistentVolumeReclaimPolicy: Retain +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nfs-media-anime +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 40Ti + volumeName: nfs-media-anime diff --git a/kustomize-bases/nfs-media/components/downloads/kustomization.yaml b/kustomize-bases/nfs-media/components/downloads/kustomization.yaml new file mode 100644 index 0000000..9014f38 --- /dev/null +++ b/kustomize-bases/nfs-media/components/downloads/kustomization.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1alpha1 +kind: Component +resources: + - pvc.yaml diff --git a/kustomize-bases/nfs-media/components/downloads/pvc.yaml b/kustomize-bases/nfs-media/components/downloads/pvc.yaml new file mode 100644 index 0000000..16b0b65 --- /dev/null +++ b/kustomize-bases/nfs-media/components/downloads/pvc.yaml @@ -0,0 +1,33 @@ +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: nfs-media-downloads +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 +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nfs-media-downloads +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 40Ti + volumeName: nfs-media-downloads diff --git a/kustomize-bases/nfs-media/components/movies/kustomization.yaml b/kustomize-bases/nfs-media/components/movies/kustomization.yaml new file mode 100644 index 0000000..9014f38 --- /dev/null +++ b/kustomize-bases/nfs-media/components/movies/kustomization.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1alpha1 +kind: Component +resources: + - pvc.yaml diff --git a/kustomize-bases/nfs-media/components/movies/pvc.yaml b/kustomize-bases/nfs-media/components/movies/pvc.yaml new file mode 100644 index 0000000..28af8e4 --- /dev/null +++ b/kustomize-bases/nfs-media/components/movies/pvc.yaml @@ -0,0 +1,33 @@ +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: nfs-media-movies +spec: + capacity: + storage: 40Ti + accessModes: + - ReadWriteMany + nfs: + server: 10.0.69.10 + path: /tank/media/movies + mountOptions: + - vers=4.1 + - rsize=1048576 + - wsize=1048576 + - hard + - timeo=600 + - noatime + persistentVolumeReclaimPolicy: Retain +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nfs-media-movies +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 40Ti + volumeName: nfs-media-movies diff --git a/kustomize-bases/nfs-media/components/music/kustomization.yaml b/kustomize-bases/nfs-media/components/music/kustomization.yaml new file mode 100644 index 0000000..9014f38 --- /dev/null +++ b/kustomize-bases/nfs-media/components/music/kustomization.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1alpha1 +kind: Component +resources: + - pvc.yaml diff --git a/kustomize-bases/nfs-media/components/music/pvc.yaml b/kustomize-bases/nfs-media/components/music/pvc.yaml new file mode 100644 index 0000000..117fb3e --- /dev/null +++ b/kustomize-bases/nfs-media/components/music/pvc.yaml @@ -0,0 +1,33 @@ +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: nfs-media-music +spec: + capacity: + storage: 40Ti + accessModes: + - ReadWriteMany + nfs: + server: 10.0.69.10 + path: /tank/media/music + mountOptions: + - vers=4.1 + - rsize=1048576 + - wsize=1048576 + - hard + - timeo=600 + - noatime + persistentVolumeReclaimPolicy: Retain +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nfs-media-music +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 40Ti + volumeName: nfs-media-music diff --git a/kustomize-bases/nfs-media/components/roms/kustomization.yaml b/kustomize-bases/nfs-media/components/roms/kustomization.yaml new file mode 100644 index 0000000..9014f38 --- /dev/null +++ b/kustomize-bases/nfs-media/components/roms/kustomization.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1alpha1 +kind: Component +resources: + - pvc.yaml diff --git a/kustomize-bases/nfs-media/components/roms/pvc.yaml b/kustomize-bases/nfs-media/components/roms/pvc.yaml new file mode 100644 index 0000000..6f2e6e6 --- /dev/null +++ b/kustomize-bases/nfs-media/components/roms/pvc.yaml @@ -0,0 +1,33 @@ +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: nfs-media-roms +spec: + capacity: + storage: 40Ti + accessModes: + - ReadWriteMany + nfs: + server: 10.0.69.10 + path: /tank/media/roms + mountOptions: + - vers=4.1 + - rsize=1048576 + - wsize=1048576 + - hard + - timeo=600 + - noatime + persistentVolumeReclaimPolicy: Retain +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nfs-media-roms +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 40Ti + volumeName: nfs-media-roms diff --git a/kustomize-bases/nfs-media/components/series/kustomization.yaml b/kustomize-bases/nfs-media/components/series/kustomization.yaml new file mode 100644 index 0000000..9014f38 --- /dev/null +++ b/kustomize-bases/nfs-media/components/series/kustomization.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1alpha1 +kind: Component +resources: + - pvc.yaml diff --git a/kustomize-bases/nfs-media/components/series/pvc.yaml b/kustomize-bases/nfs-media/components/series/pvc.yaml new file mode 100644 index 0000000..0aec6a8 --- /dev/null +++ b/kustomize-bases/nfs-media/components/series/pvc.yaml @@ -0,0 +1,33 @@ +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: nfs-media-series +spec: + capacity: + storage: 40Ti + accessModes: + - ReadWriteMany + nfs: + server: 10.0.69.10 + path: /tank/media/series + mountOptions: + - vers=4.1 + - rsize=1048576 + - wsize=1048576 + - hard + - timeo=600 + - noatime + persistentVolumeReclaimPolicy: Retain +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nfs-media-series +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 40Ti + volumeName: nfs-media-series diff --git a/kustomize-bases/nfs-media/kustomization.yaml b/kustomize-bases/nfs-media/kustomization.yaml deleted file mode 100644 index 482f897..0000000 --- a/kustomize-bases/nfs-media/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -resources: - - pvc.yaml diff --git a/kustomize-bases/nfs-media/pvc.yaml b/kustomize-bases/nfs-media/pvc.yaml deleted file mode 100644 index 94091c9..0000000 --- a/kustomize-bases/nfs-media/pvc.yaml +++ /dev/null @@ -1,40 +0,0 @@ -# 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