Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---
- apiVersion: v1
- kind: PersistentVolume
- metadata:
- name: jellyfin-config-pv
- spec:
- capacity:
- storage: 1Gi
- volumeMode: Filesystem
- accessModes:
- - ReadWriteOnce
- persistentVolumeReclaimPolicy: Retain
- storageClassName: manual
- hostPath:
- path: /var/lib/rancher/k3s/links/jellyfin/config
- nodeAffinity:
- required:
- nodeSelectorTerms:
- - matchExpressions:
- - key: kubernetes.io/hostname
- operator: In
- values:
- - raspberrypi
- ---
- apiVersion: v1
- kind: PersistentVolume
- metadata:
- name: jellyfin-cache-pv
- spec:
- capacity:
- storage: 1Gi
- volumeMode: Filesystem
- accessModes:
- - ReadWriteOnce
- persistentVolumeReclaimPolicy: Retain
- storageClassName: manual
- hostPath:
- path: /var/lib/rancher/k3s/links/jellyfin/cache
- nodeAffinity:
- required:
- nodeSelectorTerms:
- - matchExpressions:
- - key: kubernetes.io/hostname
- operator: In
- values:
- - raspberrypi
- ---
- apiVersion: v1
- kind: PersistentVolume
- metadata:
- name: jellyfin-content-pv
- spec:
- capacity:
- storage: 1Gi
- volumeMode: Filesystem
- accessModes:
- - ReadWriteOnce
- persistentVolumeReclaimPolicy: Retain
- storageClassName: manual
- hostPath:
- path: /mnt/media/jellyfin/
- nodeAffinity:
- required:
- nodeSelectorTerms:
- - matchExpressions:
- - key: kubernetes.io/hostname
- operator: In
- values:
- - extranuc
- ---
- apiVersion: v1
- kind: PersistentVolumeClaim
- metadata:
- name: jellyfin-config-pvc
- spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 1Gi
- storageClassName: manual
- volumeName: jellyfin-config-pv
- ---
- apiVersion: v1
- kind: PersistentVolumeClaim
- metadata:
- name: jellyfin-cache-pvc
- spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 1Gi
- storageClassName: manual
- volumeName: jellyfin-cache-pv
- ---
- apiVersion: v1
- kind: PersistentVolumeClaim
- metadata:
- name: jellyfin-content-pvc
- spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 1Gi
- storageClassName: manual
- volumeName: jellyfin-content-pv
- ---
- apiVersion: apps/v1
- kind: StatefulSet
- metadata:
- name: jellyfin
- labels:
- app: jellyfin
- spec:
- replicas: 1
- selector:
- matchLabels:
- app: jellyfin
- template:
- metadata:
- labels:
- app: jellyfin
- spec:
- # Force the pod to run on the extranuc node
- nodeSelector:
- kubernetes.io/hostname: extranuc
- # Tolerate the taint on extranuc (adjust key/value/effect to match your taint)
- # tolerations:
- # - key: "node"
- # operator: "Equal"
- # value: "extranuc"
- # effect: "NoSchedule"
- containers:
- - name: jellyfin
- image: jellyfin/jellyfin:latest
- ports:
- - name: http
- containerPort: 8096
- protocol: TCP
- - name: https
- containerPort: 8920
- protocol: TCP
- - name: svc-discover
- containerPort: 1900
- protocol: UDP
- - name: discover
- containerPort: 7359
- protocol: UDP
- volumeMounts:
- - name: jellyfin-config
- mountPath: /config
- - name: jellyfin-cache
- mountPath: /cache
- - name: jellyfin-content
- mountPath: /jellyfin-content
- volumes:
- - name: jellyfin-config
- persistentVolumeClaim:
- claimName: jellyfin-config-pvc
- - name: jellyfin-cache
- persistentVolumeClaim:
- claimName: jellyfin-cache-pvc
- - name: jellyfin-content
- persistentVolumeClaim:
- claimName: jellyfin-content-pvc
- ---
- apiVersion: v1
- kind: Service
- metadata:
- name: jellyfin-service
- spec:
- selector:
- app: jellyfin
- ports:
- - name: http
- port: 80
- targetPort: 8096
- nodePort: 30001 # Exposing HTTP on port 30001
- - name: https
- port: 443
- targetPort: 8920
- nodePort: 30002 # Exposing HTTPS on port 30002
- type: NodePort
- ---
- apiVersion: networking.k8s.io/v1
- kind: Ingress
- metadata:
- name: jellyfin-ingress
- spec:
- ingressClassName: traefik
- rules:
- - host: jellyfin.spidershomelab.xyz
- http:
- paths:
- - path: /
- pathType: ImplementationSpecific
- backend:
- service:
- name: jellyfin-service
- port:
- name: http
Advertisement
Add Comment
Please, Sign In to add comment