Files
k3s-cluster/jellyfin/jellyfin.yaml

137 lines
2.5 KiB
YAML

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