Compare commits

..

1 commit

31 changed files with 112 additions and 568 deletions

View file

@ -15,5 +15,5 @@ helmCharts:
repo: https://helm.mogenius.com/public repo: https://helm.mogenius.com/public
namespace: renovate-operator namespace: renovate-operator
releaseName: renovate-operator releaseName: renovate-operator
version: "4.8.0" version: "4.7.1"
valuesFile: values.yaml valuesFile: values.yaml

View file

@ -28,10 +28,8 @@ spec:
volumeMounts: volumeMounts:
- mountPath: /config - mountPath: /config
name: lidarr-config name: lidarr-config
- mountPath: /shared/media/music - mountPath: /shared/media
name: nfs-media-music name: nfs-media
- mountPath: /shared/media/downloads
name: nfs-media-downloads
securityContext: securityContext:
seccompProfile: seccompProfile:
type: RuntimeDefault type: RuntimeDefault
@ -47,9 +45,6 @@ spec:
- name: lidarr-config - name: lidarr-config
persistentVolumeClaim: persistentVolumeClaim:
claimName: lidarr-storage claimName: lidarr-storage
- name: nfs-media-music - name: nfs-media
persistentVolumeClaim: persistentVolumeClaim:
claimName: nfs-media-music claimName: nfs-media
- name: nfs-media-downloads
persistentVolumeClaim:
claimName: nfs-media-downloads

View file

@ -4,6 +4,7 @@ kind: Kustomization
namespace: lidarr namespace: lidarr
resources: resources:
- ../../kustomize-bases/nfs-media
- configmap.yaml - configmap.yaml
- deployments.yaml - deployments.yaml
- ingress.yaml - ingress.yaml
@ -11,39 +12,21 @@ resources:
- services.yaml - services.yaml
- namespace.yaml - namespace.yaml
components:
- ../../kustomize-bases/nfs-media/components/music
- ../../kustomize-bases/nfs-media/components/downloads
patches: patches:
- target: - target:
kind: PersistentVolume kind: PersistentVolume
name: nfs-media-music name: nfs-media
patch: | patch: |
- op: replace - op: replace
path: /metadata/name path: /metadata/name
value: nfs-media-lidarr-music value: nfs-media-lidarr
- target: - target:
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
name: nfs-media-music name: nfs-media
patch: | patch: |
- op: replace - op: replace
path: /spec/volumeName path: /spec/volumeName
value: nfs-media-lidarr-music value: nfs-media-lidarr
- 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: images:
- name: linuxserver/lidarr - name: linuxserver/lidarr

View file

@ -28,12 +28,8 @@ spec:
volumeMounts: volumeMounts:
- mountPath: /config - mountPath: /config
name: plex-config name: plex-config
- mountPath: /data/movies - mountPath: /data
name: nfs-media-movies name: nfs-media
- mountPath: /data/series
name: nfs-media-series
- mountPath: /data/anime
name: nfs-media-anime
securityContext: securityContext:
seccompProfile: seccompProfile:
type: RuntimeDefault type: RuntimeDefault
@ -49,12 +45,6 @@ spec:
- name: plex-config - name: plex-config
persistentVolumeClaim: persistentVolumeClaim:
claimName: plex-storage claimName: plex-storage
- name: nfs-media-movies - name: nfs-media
persistentVolumeClaim: persistentVolumeClaim:
claimName: nfs-media-movies claimName: nfs-media
- name: nfs-media-series
persistentVolumeClaim:
claimName: nfs-media-series
- name: nfs-media-anime
persistentVolumeClaim:
claimName: nfs-media-anime

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,69 +13,24 @@ resources:
- services.yaml - services.yaml
- namespace.yaml - namespace.yaml
components:
- ../../kustomize-bases/nfs-media/components/movies
- ../../kustomize-bases/nfs-media/components/series
- ../../kustomize-bases/nfs-media/components/anime
patches: patches:
- target: - target:
kind: PersistentVolume kind: PersistentVolume
name: nfs-media-movies name: nfs-media
patch: | patch: |
- op: replace - op: replace
path: /metadata/name path: /metadata/name
value: nfs-media-plex-movies value: nfs-media-plex
- op: replace - op: replace
path: /spec/accessModes/0 path: /spec/accessModes/0
value: ReadOnlyMany value: ReadOnlyMany
- target: - target:
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
name: nfs-media-movies name: nfs-media
patch: | patch: |
- op: replace - op: replace
path: /spec/volumeName path: /spec/volumeName
value: nfs-media-plex-movies value: nfs-media-plex
- 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 - op: replace
path: /spec/accessModes/0 path: /spec/accessModes/0
value: ReadOnlyMany value: ReadOnlyMany

View file

@ -12,7 +12,7 @@ data:
VPN_PORT_FORWARDING_UP_COMMAND: "/scripts/port-up.sh" VPN_PORT_FORWARDING_UP_COMMAND: "/scripts/port-up.sh"
VPN_PORT_FORWARDING_DOWN_COMMAND: "/scripts/port-down.sh" VPN_PORT_FORWARDING_DOWN_COMMAND: "/scripts/port-down.sh"
FIREWALL_OUTBOUND_SUBNETS: 10.244.0.0/16,10.96.0.0/12 FIREWALL_OUTBOUND_SUBNETS: 10.244.0.0/16,10.96.0.0/12
FIREWALL_INPUT_PORTS: "8112,5030" FIREWALL_INPUT_PORTS: "8112"
--- ---
apiVersion: v1 apiVersion: v1
kind: ConfigMap kind: ConfigMap
@ -43,22 +43,6 @@ data:
--- ---
apiVersion: v1 apiVersion: v1
kind: ConfigMap kind: ConfigMap
metadata:
name: slskd-envs
data:
TZ: Europe/Amsterdam
PUID: "1000"
PGID: "1000"
SLSKD_DOWNLOADS_DIR: /shared/media/downloads/_slsk-downloads
SLSKD_INCOMPLETE_DIR: /shared/media/downloads/_slsk-incomplete
SLSKD_SHARED_DIR: "[Music]/shared/media/downloads/_slsk-downloads"
SLSKD_REMOTE_CONFIGURATION: "true"
SLSKD_VPN: "true"
SLSKD_VPN_PORT_FORWARDING: "true"
SLSKD_VPN_GLUETUN_URL: http://localhost:8000
---
apiVersion: v1
kind: ConfigMap
metadata: metadata:
name: unpackerr-envs name: unpackerr-envs
data: data:

View file

@ -21,21 +21,16 @@ spec:
- name: gluetun - name: gluetun
image: ghcr.io/qdm12/gluetun image: ghcr.io/qdm12/gluetun
ports: ports:
- name: qbit-http - name: http
containerPort: 8112 containerPort: 8112
protocol: TCP protocol: TCP
- name: slskd-http
containerPort: 5030
protocol: TCP
envFrom: envFrom:
- configMapRef: - configMapRef:
name: gluetun-envs name: gluetun-envs
- secretRef:
name: gluetun-env-secrets
volumeMounts: volumeMounts:
- mountPath: /dev/net/tun - mountPath: /dev/net/tun
name: dev-tun name: dev-tun
- mountPath: /gluetun/wireguard - mountPath: "/gluetun/wireguard"
name: gluetun-wgconfig name: gluetun-wgconfig
readOnly: true readOnly: true
- name: gluetun-scripts - name: gluetun-scripts
@ -94,7 +89,7 @@ spec:
- mountPath: /config - mountPath: /config
name: qbittorrent-config name: qbittorrent-config
- mountPath: /shared/media/downloads - mountPath: /shared/media/downloads
name: nfs-media-downloads name: nfs-media
securityContext: securityContext:
seccompProfile: seccompProfile:
type: RuntimeDefault type: RuntimeDefault
@ -114,7 +109,7 @@ spec:
name: unpackerr-env-secrets name: unpackerr-env-secrets
volumeMounts: volumeMounts:
- mountPath: /shared/media/downloads - mountPath: /shared/media/downloads
name: nfs-media-downloads name: nfs-media
securityContext: securityContext:
seccompProfile: seccompProfile:
type: RuntimeDefault type: RuntimeDefault
@ -124,30 +119,6 @@ spec:
capabilities: capabilities:
drop: drop:
- "ALL" - "ALL"
- name: slskd
image: docker.io/slskd/slskd
imagePullPolicy: IfNotPresent
envFrom:
- configMapRef:
name: slskd-envs
- secretRef:
name: slskd-env-secrets
volumeMounts:
- mountPath: /config
name: slskd-config
- mountPath: /shared/media/downloads
name: nfs-media-downloads
securityContext:
seccompProfile:
type: RuntimeDefault
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
add:
- "CHOWN"
- "SETUID"
- "SETGID"
volumes: volumes:
- name: dev-tun - name: dev-tun
hostPath: hostPath:
@ -156,9 +127,6 @@ spec:
- name: qbittorrent-config - name: qbittorrent-config
persistentVolumeClaim: persistentVolumeClaim:
claimName: qbittorrent-storage claimName: qbittorrent-storage
- name: slskd-config
persistentVolumeClaim:
claimName: slskd-storage
- name: gluetun-wgconfig - name: gluetun-wgconfig
secret: secret:
secretName: gluetun-wgconfig secretName: gluetun-wgconfig
@ -168,6 +136,6 @@ spec:
defaultMode: 0755 defaultMode: 0755
- name: gluetun-tmp - name: gluetun-tmp
emptyDir: {} emptyDir: {}
- name: nfs-media-downloads - name: nfs-media
persistentVolumeClaim: persistentVolumeClaim:
claimName: nfs-media-downloads claimName: nfs-media

View file

@ -14,46 +14,3 @@ spec:
- backendRefs: - backendRefs:
- name: qbittorrent - name: qbittorrent
port: 80 port: 80
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: slskd-route
spec:
parentRefs:
- name: internal
namespace: kube-system
sectionName: https
hostnames:
- "slskd.wheatley.in"
rules:
- backendRefs:
- name: slskd
port: 80
---
apiVersion: v1
kind: Service
metadata:
name: qbittorrent
spec:
selector:
app: qbittorrent
ports:
- port: 80
protocol: TCP
targetPort: 8112
---
apiVersion: v1
kind: Service
metadata:
name: slskd
spec:
selector:
app: qbittorrent
ports:
- port: 80
protocol: TCP
targetPort: 5030

View file

@ -4,36 +4,36 @@ kind: Kustomization
namespace: qbittorrent namespace: qbittorrent
resources: resources:
- ../../kustomize-bases/nfs-media
- configmap.yaml - configmap.yaml
- deployments.yaml - deployments.yaml
- ingress.yaml - ingress.yaml
- pvc.yaml - pvc.yaml
- secrets.yaml - secrets.yaml
- services.yaml
- namespace.yaml - namespace.yaml
components:
- ../../kustomize-bases/nfs-media/components/downloads
patches: patches:
- target: - target:
kind: PersistentVolume kind: PersistentVolume
name: nfs-media-downloads name: nfs-media
patch: | patch: |
- op: replace - op: replace
path: /metadata/name path: /metadata/name
value: nfs-media-qbittorrent-downloads value: nfs-media-qbittorrent
- op: replace
path: /spec/nfs/path
value: /tank/media/downloads
- target: - target:
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
name: nfs-media-downloads name: nfs-media
patch: | patch: |
- op: replace - op: replace
path: /spec/volumeName path: /spec/volumeName
value: nfs-media-qbittorrent-downloads 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
- name: docker.io/qbittorrentofficial/qbittorrent-nox - name: docker.io/qbittorrentofficial/qbittorrent-nox
newTag: 5.1.4-2@sha256:85fe2690f418dabffc4907276b3cdffcb7880c7114157b32f932d3b97bac45af newTag: 5.1.4-2@sha256:85fe2690f418dabffc4907276b3cdffcb7880c7114157b32f932d3b97bac45af
- name: docker.io/slskd/slskd
newTag: 0.25.1

View file

@ -10,15 +10,3 @@ spec:
resources: resources:
requests: requests:
storage: 5Gi storage: 5Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: slskd-storage
spec:
storageClassName: piraeus-lvmthin
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi

View file

@ -17,49 +17,6 @@ spec:
remoteRef: remoteRef:
key: secrets/managed/qbittorrent/protonvpn-wgconfig key: secrets/managed/qbittorrent/protonvpn-wgconfig
property: config property: config
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: slskd-env-secrets
spec:
secretStoreRef:
name: vault-wheatley
kind: ClusterSecretStore
target:
name: slskd-env-secrets
data:
- secretKey: SLSKD_VPN_GLUETUN_API_KEY
remoteRef:
key: secrets/managed/qbittorrent/slskd-env-secrets
property: GLUETUN_API_KEY
- secretKey: SLSKD_SLSK_USERNAME
remoteRef:
key: secrets/managed/qbittorrent/slskd-env-secrets
property: SLSK_USERNAME
- secretKey: SLSKD_SLSK_PASSWORD
remoteRef:
key: secrets/managed/qbittorrent/slskd-env-secrets
property: SLSK_PASSWORD
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: gluetun-env-secrets
spec:
secretStoreRef:
name: vault-wheatley
kind: ClusterSecretStore
target:
name: gluetun-env-secrets
data:
- secretKey: HTTP_CONTROL_SERVER_AUTH_DEFAULT_ROLE
remoteRef:
key: secrets/managed/qbittorrent/gluetun-env-secrets
property: HTTP_CONTROL_SERVER_AUTH_DEFAULT_ROLE
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret

View file

@ -0,0 +1,12 @@
---
apiVersion: v1
kind: Service
metadata:
name: qbittorrent
spec:
selector:
app: qbittorrent
ports:
- port: 80
protocol: TCP
targetPort: 8112

View file

@ -28,10 +28,8 @@ spec:
volumeMounts: volumeMounts:
- mountPath: /config - mountPath: /config
name: radarr-config name: radarr-config
- mountPath: /shared/media/movies - mountPath: /shared/media
name: nfs-media-movies name: nfs-media
- mountPath: /shared/media/downloads
name: nfs-media-downloads
securityContext: securityContext:
seccompProfile: seccompProfile:
type: RuntimeDefault type: RuntimeDefault
@ -47,9 +45,6 @@ spec:
- name: radarr-config - name: radarr-config
persistentVolumeClaim: persistentVolumeClaim:
claimName: radarr-storage claimName: radarr-storage
- name: nfs-media-movies - name: nfs-media
persistentVolumeClaim: persistentVolumeClaim:
claimName: nfs-media-movies claimName: nfs-media
- name: nfs-media-downloads
persistentVolumeClaim:
claimName: nfs-media-downloads

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,39 +13,21 @@ resources:
- services.yaml - services.yaml
- namespace.yaml - namespace.yaml
components:
- ../../kustomize-bases/nfs-media/components/movies
- ../../kustomize-bases/nfs-media/components/downloads
patches: patches:
- target: - target:
kind: PersistentVolume kind: PersistentVolume
name: nfs-media-movies name: nfs-media
patch: | patch: |
- op: replace - op: replace
path: /metadata/name path: /metadata/name
value: nfs-media-radarr-movies value: nfs-media-radarr
- target: - target:
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
name: nfs-media-movies name: nfs-media
patch: | patch: |
- op: replace - op: replace
path: /spec/volumeName path: /spec/volumeName
value: nfs-media-radarr-movies value: nfs-media-radarr
- 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: images:
- name: linuxserver/radarr - name: linuxserver/radarr

View file

@ -28,12 +28,8 @@ spec:
volumeMounts: volumeMounts:
- mountPath: /config - mountPath: /config
name: sonarr-config name: sonarr-config
- mountPath: /shared/media/series - mountPath: /shared/media
name: nfs-media-series name: nfs-media
- mountPath: /shared/media/anime
name: nfs-media-anime
- mountPath: /shared/media/downloads
name: nfs-media-downloads
securityContext: securityContext:
seccompProfile: seccompProfile:
type: RuntimeDefault type: RuntimeDefault
@ -49,12 +45,6 @@ spec:
- name: sonarr-config - name: sonarr-config
persistentVolumeClaim: persistentVolumeClaim:
claimName: sonarr-storage claimName: sonarr-storage
- name: nfs-media-series - name: nfs-media
persistentVolumeClaim: persistentVolumeClaim:
claimName: nfs-media-series claimName: nfs-media
- name: nfs-media-anime
persistentVolumeClaim:
claimName: nfs-media-anime
- name: nfs-media-downloads
persistentVolumeClaim:
claimName: nfs-media-downloads

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,54 +13,21 @@ resources:
- services.yaml - services.yaml
- namespace.yaml - namespace.yaml
components:
- ../../kustomize-bases/nfs-media/components/series
- ../../kustomize-bases/nfs-media/components/anime
- ../../kustomize-bases/nfs-media/components/downloads
patches: patches:
- target: - target:
kind: PersistentVolume kind: PersistentVolume
name: nfs-media-series name: nfs-media
patch: | patch: |
- op: replace - op: replace
path: /metadata/name path: /metadata/name
value: nfs-media-sonarr-series value: nfs-media-sonarr
- target: - target:
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
name: nfs-media-series name: nfs-media
patch: | patch: |
- op: replace - op: replace
path: /spec/volumeName path: /spec/volumeName
value: nfs-media-sonarr-series value: nfs-media-sonarr
- 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: images:
- name: linuxserver/sonarr - name: linuxserver/sonarr

View file

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

View file

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

View file

@ -1,33 +0,0 @@
---
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

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

View file

@ -1,33 +0,0 @@
---
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

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

View file

@ -1,33 +0,0 @@
---
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

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

View file

@ -1,33 +0,0 @@
---
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

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

View file

@ -1,33 +0,0 @@
---
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

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

View file

@ -1,33 +0,0 @@
---
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

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