Compare commits

...

3 commits

25 changed files with 417 additions and 96 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -13,5 +13,5 @@ helmCharts:
repo: https://helm.cilium.io
namespace: kube-system
releaseName: cilium
version: 1.18.6
version: 1.19.4
valuesFile: values.yaml

View file

@ -0,0 +1,5 @@
---
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component
resources:
- pvc.yaml

View file

@ -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

View file

@ -0,0 +1,5 @@
---
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component
resources:
- pvc.yaml

View file

@ -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

View file

@ -0,0 +1,5 @@
---
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component
resources:
- pvc.yaml

View file

@ -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

View file

@ -0,0 +1,5 @@
---
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component
resources:
- pvc.yaml

View file

@ -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

View file

@ -0,0 +1,5 @@
---
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component
resources:
- pvc.yaml

View file

@ -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

View file

@ -0,0 +1,5 @@
---
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component
resources:
- pvc.yaml

View file

@ -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

View file

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

View file

@ -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