diff --git a/clusters/default/media/jellyfin/jellyfin-pvc.yml b/clusters/default/media/jellyfin/jellyfin-pvc.yml new file mode 100644 index 0000000..cc7cdb5 --- /dev/null +++ b/clusters/default/media/jellyfin/jellyfin-pvc.yml @@ -0,0 +1,14 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: jellyfin-longhorn + namespace: media +spec: + accessModes: + - ReadWriteOnce + volumeMode: Filesystem + resources: + requests: + storage: 15Gi + storageClassName: longhorn diff --git a/clusters/default/media/jellyfin/jellyfin-svc.yml b/clusters/default/media/jellyfin/jellyfin-svc.yml new file mode 100644 index 0000000..21f224f --- /dev/null +++ b/clusters/default/media/jellyfin/jellyfin-svc.yml @@ -0,0 +1,14 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: jellyfin-service + namespace: media +spec: + type: LoadBalancer + selector: + app: jellyfin + ports: + - port: 8096 + targetPort: 8096 + protocol: TCP diff --git a/clusters/default/media/jellyfin/jellyfin.yml b/clusters/default/media/jellyfin/jellyfin.yml new file mode 100644 index 0000000..9733a0a --- /dev/null +++ b/clusters/default/media/jellyfin/jellyfin.yml @@ -0,0 +1,54 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: jellyfin + namespace: media +spec: + strategy: + type: Recreate + replicas: 1 + selector: + matchLabels: + app: jellyfin + template: + metadata: + labels: + app: jellyfin + spec: + containers: + - name: jellyfin + image: jellyfin/jellyfin:10.10.7 + ports: + - containerPort: 8096 + volumeMounts: + - name: media + mountPath: /media + - name: config + mountPath: /config + - name: cache + mountPath: /cache + - name: i915 + mountPath: /dev/dri + securityContext: + privileged: true + resources: + requests: + gpu.intel.com/i915: "1" + limits: + gpu.intel.com/i915: "1" + volumes: + - name: config + persistentVolumeClaim: + claimName: jellyfin-longhorn + - name: cache + hostPath: + path: /tmp/ + type: Directory + - name: media + nfs: + server: 10.0.0.123 + path: /merge + - name: i915 + hostPath: + path: /dev/dri