54c25be828
Why: Jellyfin ships and gets validated first, ahead of the rest of the media stack. Scoping this PR to jellyfin alone keeps the initial rollout small and lets the HA fork prove out against the real library before the download and manager apps follow. How: - Drop sonarr, radarr, prowlarr, bazarr, nzbget, and jellyseerr and their shared media-apps foundation from this PR; they land in later PRs. - Move jellyfin into its own jellyfin namespace and fold the namespace and the static mediafs PV plus its RWX claim into the jellyfin base. - Keep the static CephFS PV bound to the in-use mediafs library with reclaimPolicy Retain and staticVolume true so nothing can reclaim it, mounted into jellyfin by the movies and tvseries subPaths; keep redis, the fresh RWX transcode scratch, the intel iGPU nodeSelector and i915 request, gateway, and httproute. - Scope the media AppProject and ApplicationSet to the single jellyfin namespace and app, extensible as the remaining apps are added.
42 lines
1.4 KiB
YAML
42 lines
1.4 KiB
YAML
---
|
|
# Static CephFS PersistentVolume bound to the pre-existing, ACTIVELY-USED
|
|
# puppet media library (ceph filesystem "mediafs", mounted by the VM/incus
|
|
# instances at /shared/media). ceph-csi only mounts this volume; staticVolume
|
|
# tells it the storage pre-exists and it must never provision or delete it.
|
|
#
|
|
# reclaimPolicy MUST stay Retain: deleting this PV or its PVC must NEVER be able
|
|
# to reclaim or destroy the underlying CephFS data that the VM instances use.
|
|
apiVersion: v1
|
|
kind: PersistentVolume
|
|
metadata:
|
|
name: jellyfin-media-library
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteMany
|
|
capacity:
|
|
storage: 10Ti
|
|
# Load-bearing safety control. Do not change to Delete.
|
|
persistentVolumeReclaimPolicy: Retain
|
|
storageClassName: ""
|
|
volumeMode: Filesystem
|
|
# Pre-bind to the media-library claim so nothing else can grab this PV.
|
|
claimRef:
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
name: media-library
|
|
namespace: jellyfin
|
|
csi:
|
|
driver: cephfs.csi.ceph.com
|
|
volumeHandle: jellyfin-media-library-static
|
|
nodeStageSecretRef:
|
|
name: csi-cephfs-secret
|
|
namespace: csi-cephfs
|
|
volumeAttributes:
|
|
# clusterID maps (in the csi-cephfs ceph-csi-config) to the mon set that
|
|
# also serves mediafs; for a static volume only the mon lookup is used.
|
|
clusterID: cephfs_csi_ssd_ec_4_1
|
|
fsName: mediafs
|
|
staticVolume: "true"
|
|
# Filesystem-internal root of the library (mediafs root == /shared/media).
|
|
rootPath: /
|