Guest User

Untitled

a guest
Mar 30th, 2025
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.04 KB | None | 0 0
  1. apiVersion: v1
  2. kind: PersistentVolume
  3. metadata:
  4. name: jellyfin-new-config-pv
  5. spec:
  6. capacity:
  7. storage: 1Gi
  8. volumeMode: Filesystem
  9. accessModes:
  10. - ReadWriteOnce
  11. persistentVolumeReclaimPolicy: Retain
  12. storageClassName: local-storage
  13. local:
  14. path: /mnt/media/jellyfin/config
  15. nodeAffinity:
  16. required:
  17. nodeSelectorTerms:
  18. - matchExpressions:
  19. - key: kubernetes.io/hostname
  20. operator: In
  21. values:
  22. - extranuc
  23. ---
  24. apiVersion: v1
  25. kind: PersistentVolume
  26. metadata:
  27. name: jellyfin-new-cache-pv
  28. spec:
  29. capacity:
  30. storage: 1Gi
  31. volumeMode: Filesystem
  32. accessModes:
  33. - ReadWriteOnce
  34. persistentVolumeReclaimPolicy: Retain
  35. storageClassName: local-storage
  36. local:
  37. path: /mnt/media/jellyfin/cache
  38. nodeAffinity:
  39. required:
  40. nodeSelectorTerms:
  41. - matchExpressions:
  42. - key: kubernetes.io/hostname
  43. operator: In
  44. values:
  45. - extranuc
  46. ---
  47. apiVersion: v1
  48. kind: PersistentVolume
  49. metadata:
  50. name: jellyfin-new-media-pv
  51. spec:
  52. capacity:
  53. storage: 10Gi
  54. volumeMode: Filesystem
  55. accessModes:
  56. - ReadWriteOnce
  57. persistentVolumeReclaimPolicy: Retain
  58. storageClassName: local-storage
  59. local:
  60. path: /mnt/media/jellyfin/media
  61. nodeAffinity:
  62. required:
  63. nodeSelectorTerms:
  64. - matchExpressions:
  65. - key: kubernetes.io/hostname
  66. operator: In
  67. values:
  68. - extranuc
  69. ---
  70. apiVersion: v1
  71. kind: PersistentVolume
  72. metadata:
  73. name: jellyfin-apt-cache-pv
  74. spec:
  75. capacity:
  76. storage: 2Gi
  77. volumeMode: Filesystem
  78. accessModes:
  79. - ReadWriteOnce
  80. persistentVolumeReclaimPolicy: Retain
  81. storageClassName: local-storage
  82. local:
  83. path: /mnt/media/jellyfin/apt-cache
  84. nodeAffinity:
  85. required:
  86. nodeSelectorTerms:
  87. - matchExpressions:
  88. - key: kubernetes.io/hostname
  89. operator: In
  90. values:
  91. - extranuc
  92. ---
  93. apiVersion: v1
  94. kind: PersistentVolumeClaim
  95. metadata:
  96. name: jellyfin-new-config-pvc
  97. spec:
  98. accessModes:
  99. - ReadWriteOnce
  100. resources:
  101. requests:
  102. storage: 1Gi
  103. storageClassName: local-storage
  104. volumeName: jellyfin-new-config-pv
  105. ---
  106. apiVersion: v1
  107. kind: PersistentVolumeClaim
  108. metadata:
  109. name: jellyfin-new-cache-pvc
  110. spec:
  111. accessModes:
  112. - ReadWriteOnce
  113. resources:
  114. requests:
  115. storage: 1Gi
  116. storageClassName: local-storage
  117. volumeName: jellyfin-new-cache-pv
  118. ---
  119. apiVersion: v1
  120. kind: PersistentVolumeClaim
  121. metadata:
  122. name: jellyfin-new-media-pvc
  123. spec:
  124. accessModes:
  125. - ReadWriteOnce
  126. resources:
  127. requests:
  128. storage: 10Gi
  129. storageClassName: local-storage
  130. volumeName: jellyfin-new-media-pv
  131. ---
  132. apiVersion: v1
  133. kind: PersistentVolumeClaim
  134. metadata:
  135. name: jellyfin-apt-cache-pvc
  136. spec:
  137. accessModes:
  138. - ReadWriteOnce
  139. resources:
  140. requests:
  141. storage: 2Gi
  142. storageClassName: local-storage
  143. volumeName: jellyfin-apt-cache-pv
  144. ---
  145. apiVersion: apps/v1
  146. kind: Deployment
  147. metadata:
  148. name: jellyfin
  149. spec:
  150. replicas: 1
  151. selector:
  152. matchLabels:
  153. app: jellyfin
  154. template:
  155. metadata:
  156. labels:
  157. app: jellyfin
  158. spec:
  159. nodeSelector:
  160. kubernetes.io/hostname: extranuc
  161. containers:
  162. - name: jellyfin
  163. image: ubuntu:22.04
  164. command: ["/bin/sh", "-c"]
  165. args:
  166. - |
  167. export APT_CACHE=/var/cache/apt/archives
  168. export APT_LISTS=/var/lib/apt/lists
  169. echo "nameserver 8.8.8.8" > /etc/resolv.conf
  170. echo "nameserver 8.8.4.4" >> /etc/resolv.conf
  171. apt-get update -o Dir::Cache::Archives="$APT_CACHE" -o Dir::State::Lists="$APT_LISTS"
  172. apt-get install -y -o Dir::Cache::Archives="$APT_CACHE" -o Dir::State::Lists="$APT_LISTS" wget gnupg apt-transport-https
  173. wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | apt-key add -
  174. echo "deb [arch=$(dpkg --print-architecture)] https://repo.jellyfin.org/ubuntu jammy main" > /etc/apt/sources.list.d/jellyfin.list
  175. apt-get update -o Dir::Cache::Archives="$APT_CACHE" -o Dir::State::Lists="$APT_LISTS"
  176. apt-get install --download-only -y jellyfin libicu70
  177. touch /config/.initialized
  178. if ! command -v jellyfin &>/dev/null; then
  179. apt-get install -y -o Dir::Cache::Archives="$APT_CACHE" -o Dir::State::Lists="$APT_LISTS" jellyfin libicu70
  180. fi
  181. exec /usr/bin/jellyfin --datadir /config --cachedir /cache --webdir=/usr/share/jellyfin/web --ffmpeg=/usr/bin/ffmpeg
  182. ports:
  183. - containerPort: 8096
  184. volumeMounts:
  185. - name: config
  186. mountPath: /config
  187. - name: cache
  188. mountPath: /cache
  189. - name: media
  190. mountPath: /media
  191. - name: apt-cache
  192. mountPath: /var/cache/apt/archives
  193. - name: apt-lists
  194. mountPath: /var/lib/apt/lists
  195. volumes:
  196. - name: config
  197. persistentVolumeClaim:
  198. claimName: jellyfin-new-config-pvc
  199. - name: cache
  200. persistentVolumeClaim:
  201. claimName: jellyfin-new-cache-pvc
  202. - name: media
  203. persistentVolumeClaim:
  204. claimName: jellyfin-new-media-pvc
  205. - name: apt-cache
  206. persistentVolumeClaim:
  207. claimName: jellyfin-apt-cache-pvc
  208. - name: apt-lists
  209. emptyDir: {}
  210. ---
  211. apiVersion: v1
  212. kind: Service
  213. metadata:
  214. name: jellyfin
  215. spec:
  216. selector:
  217. app: jellyfin
  218. ports:
  219. - protocol: TCP
  220. port: 80
  221. targetPort: 8096
  222. type: ClusterIP
  223. ---
  224. apiVersion: networking.k8s.io/v1
  225. kind: Ingress
  226. metadata:
  227. name: jellyfin-ingress
  228. spec:
  229. rules:
  230. - host: jellyfin.(my domain)
  231. http:
  232. paths:
  233. - path: /
  234. pathType: Prefix
  235. backend:
  236. service:
  237. name: jellyfin
  238. port:
  239. number: 80
  240.  
Advertisement
Add Comment
Please, Sign In to add comment