Guest User

Untitled

a guest
Mar 23rd, 2025
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.65 KB | None | 0 0
  1. ---
  2. apiVersion: v1
  3. kind: PersistentVolume
  4. metadata:
  5. name: jellyfin-config-pv
  6. spec:
  7. capacity:
  8. storage: 1Gi
  9. volumeMode: Filesystem
  10. accessModes:
  11. - ReadWriteOnce
  12. persistentVolumeReclaimPolicy: Retain
  13. storageClassName: manual
  14. hostPath:
  15. path: /var/lib/rancher/k3s/links/jellyfin/config
  16. nodeAffinity:
  17. required:
  18. nodeSelectorTerms:
  19. - matchExpressions:
  20. - key: kubernetes.io/hostname
  21. operator: In
  22. values:
  23. - raspberrypi
  24. ---
  25. apiVersion: v1
  26. kind: PersistentVolume
  27. metadata:
  28. name: jellyfin-cache-pv
  29. spec:
  30. capacity:
  31. storage: 1Gi
  32. volumeMode: Filesystem
  33. accessModes:
  34. - ReadWriteOnce
  35. persistentVolumeReclaimPolicy: Retain
  36. storageClassName: manual
  37. hostPath:
  38. path: /var/lib/rancher/k3s/links/jellyfin/cache
  39. nodeAffinity:
  40. required:
  41. nodeSelectorTerms:
  42. - matchExpressions:
  43. - key: kubernetes.io/hostname
  44. operator: In
  45. values:
  46. - raspberrypi
  47. ---
  48. apiVersion: v1
  49. kind: PersistentVolume
  50. metadata:
  51. name: jellyfin-content-pv
  52. spec:
  53. capacity:
  54. storage: 1Gi
  55. volumeMode: Filesystem
  56. accessModes:
  57. - ReadWriteOnce
  58. persistentVolumeReclaimPolicy: Retain
  59. storageClassName: manual
  60. hostPath:
  61. path: /mnt/media/jellyfin/
  62. nodeAffinity:
  63. required:
  64. nodeSelectorTerms:
  65. - matchExpressions:
  66. - key: kubernetes.io/hostname
  67. operator: In
  68. values:
  69. - extranuc
  70. ---
  71. apiVersion: v1
  72. kind: PersistentVolumeClaim
  73. metadata:
  74. name: jellyfin-config-pvc
  75. spec:
  76. accessModes:
  77. - ReadWriteOnce
  78. resources:
  79. requests:
  80. storage: 1Gi
  81. storageClassName: manual
  82. volumeName: jellyfin-config-pv
  83. ---
  84. apiVersion: v1
  85. kind: PersistentVolumeClaim
  86. metadata:
  87. name: jellyfin-cache-pvc
  88. spec:
  89. accessModes:
  90. - ReadWriteOnce
  91. resources:
  92. requests:
  93. storage: 1Gi
  94. storageClassName: manual
  95. volumeName: jellyfin-cache-pv
  96. ---
  97. apiVersion: v1
  98. kind: PersistentVolumeClaim
  99. metadata:
  100. name: jellyfin-content-pvc
  101. spec:
  102. accessModes:
  103. - ReadWriteOnce
  104. resources:
  105. requests:
  106. storage: 1Gi
  107. storageClassName: manual
  108. volumeName: jellyfin-content-pv
  109. ---
  110. apiVersion: apps/v1
  111. kind: StatefulSet
  112. metadata:
  113. name: jellyfin
  114. labels:
  115. app: jellyfin
  116. spec:
  117. replicas: 1
  118. selector:
  119. matchLabels:
  120. app: jellyfin
  121. template:
  122. metadata:
  123. labels:
  124. app: jellyfin
  125. spec:
  126. # Force the pod to run on the extranuc node
  127. nodeSelector:
  128. kubernetes.io/hostname: extranuc
  129. # Tolerate the taint on extranuc (adjust key/value/effect to match your taint)
  130. # tolerations:
  131. # - key: "node"
  132. # operator: "Equal"
  133. # value: "extranuc"
  134. # effect: "NoSchedule"
  135. containers:
  136. - name: jellyfin
  137. image: jellyfin/jellyfin:latest
  138. ports:
  139. - name: http
  140. containerPort: 8096
  141. protocol: TCP
  142. - name: https
  143. containerPort: 8920
  144. protocol: TCP
  145. - name: svc-discover
  146. containerPort: 1900
  147. protocol: UDP
  148. - name: discover
  149. containerPort: 7359
  150. protocol: UDP
  151. volumeMounts:
  152. - name: jellyfin-config
  153. mountPath: /config
  154. - name: jellyfin-cache
  155. mountPath: /cache
  156. - name: jellyfin-content
  157. mountPath: /jellyfin-content
  158. volumes:
  159. - name: jellyfin-config
  160. persistentVolumeClaim:
  161. claimName: jellyfin-config-pvc
  162. - name: jellyfin-cache
  163. persistentVolumeClaim:
  164. claimName: jellyfin-cache-pvc
  165. - name: jellyfin-content
  166. persistentVolumeClaim:
  167. claimName: jellyfin-content-pvc
  168. ---
  169. apiVersion: v1
  170. kind: Service
  171. metadata:
  172. name: jellyfin-service
  173. spec:
  174. selector:
  175. app: jellyfin
  176. ports:
  177. - name: http
  178. port: 80
  179. targetPort: 8096
  180. nodePort: 30001 # Exposing HTTP on port 30001
  181. - name: https
  182. port: 443
  183. targetPort: 8920
  184. nodePort: 30002 # Exposing HTTPS on port 30002
  185. type: NodePort
  186. ---
  187. apiVersion: networking.k8s.io/v1
  188. kind: Ingress
  189. metadata:
  190. name: jellyfin-ingress
  191. spec:
  192. ingressClassName: traefik
  193. rules:
  194. - host: jellyfin.spidershomelab.xyz
  195. http:
  196. paths:
  197. - path: /
  198. pathType: ImplementationSpecific
  199. backend:
  200. service:
  201. name: jellyfin-service
  202. port:
  203. name: http
  204.  
Advertisement
Add Comment
Please, Sign In to add comment