--- apiVersion: v1 kind: Namespace metadata: name: jellyfin --- apiVersion: v1 kind: Service metadata: namespace: jellyfin name: jellyfin labels: app: jellyfin spec: type: ClusterIP ports: - port: 80 targetPort: 8096 protocol: TCP name: http selector: app: jellyfin --- apiVersion: apps/v1 kind: Deployment metadata: namespace: jellyfin name: jellyfin labels: app: jellyfin spec: replicas: 1 selector: matchLabels: app: jellyfin template: metadata: labels: app: jellyfin spec: # Prevent scheduling on Raspberry Pi due to high resource requirements (512Mi-2Gi memory, 500m-2000m CPU) nodeSelector: hardware: high-memory containers: - name: jellyfin image: jellyfin/jellyfin:latest ports: - containerPort: 8096 name: http env: - name: TZ value: "Europe/Madrid" volumeMounts: - name: config mountPath: /config - name: cache mountPath: /cache - name: media mountPath: /media resources: requests: memory: "512Mi" cpu: "500m" limits: memory: "2Gi" cpu: "2000m" volumes: - name: config persistentVolumeClaim: claimName: jellyfin-config - name: cache persistentVolumeClaim: claimName: jellyfin-cache - name: media persistentVolumeClaim: claimName: jellyfin-media --- apiVersion: v1 kind: PersistentVolumeClaim metadata: namespace: jellyfin name: jellyfin-config labels: app: jellyfin spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi storageClassName: local-path --- apiVersion: v1 kind: PersistentVolumeClaim metadata: namespace: jellyfin name: jellyfin-cache labels: app: jellyfin spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: local-path --- apiVersion: v1 kind: PersistentVolume metadata: name: jellyfin-media-pv spec: capacity: storage: 100Gi accessModes: - ReadWriteMany nfs: server: 10.88.30.10 path: /volume1/jellyfin/media persistentVolumeReclaimPolicy: Retain --- apiVersion: v1 kind: PersistentVolumeClaim metadata: namespace: jellyfin name: jellyfin-media labels: app: jellyfin spec: accessModes: - ReadWriteMany storageClassName: "" resources: requests: storage: 100Gi volumeName: jellyfin-media-pv