jellyfin.yaml 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. ---
  2. apiVersion: v1
  3. kind: Namespace
  4. metadata:
  5. name: plex
  6. ---
  7. apiVersion: apps/v1
  8. kind: Deployment
  9. metadata:
  10. name: jellyfin
  11. namespace: plex
  12. spec:
  13. selector:
  14. matchLabels:
  15. app: jellyfin
  16. replicas: 1
  17. template:
  18. metadata:
  19. labels:
  20. app: jellyfin
  21. annotations:
  22. backup.velero.io/backup-volumes-excludes: media,tmpfs
  23. spec:
  24. containers:
  25. - name: jellyfin
  26. image: jellyfin/jellyfin:10.8.5
  27. ports:
  28. - containerPort: 8096
  29. name: http-web-svc
  30. volumeMounts:
  31. - mountPath: "/config"
  32. name: config
  33. - mountPath: "/media"
  34. name: media
  35. #- mountPath: "/transcodes"
  36. # name: tmpfs
  37. # Quicksync
  38. - name: "render-device"
  39. mountPath: "/dev/dri/renderD128"
  40. env:
  41. - name: PUID
  42. value: "1000"
  43. - name: PGID
  44. value: "1000"
  45. ## NVIDIA
  46. #- name: NVIDIA_DRIVER_CAPABILITIES
  47. # value: "all"
  48. # Quicksync
  49. securityContext:
  50. privileged: true
  51. livenessProbe:
  52. httpGet:
  53. path: /web/index.html
  54. port: 8096
  55. failureThreshold: 5
  56. initialDelaySeconds: 10
  57. periodSeconds: 30
  58. timeoutSeconds: 10
  59. ## NVIDIA
  60. #resources:
  61. # limits:
  62. # nvidia.com/gpu: 1
  63. affinity:
  64. nodeAffinity:
  65. requiredDuringSchedulingIgnoredDuringExecution:
  66. nodeSelectorTerms:
  67. - matchExpressions:
  68. - key: gpu-node
  69. operator: In
  70. values:
  71. - "true"
  72. volumes:
  73. - name: config
  74. persistentVolumeClaim:
  75. claimName: jellyfin-config-pvc
  76. - name: media
  77. persistentVolumeClaim:
  78. claimName: media2-pvc
  79. - name: tmpfs
  80. emptyDir:
  81. medium: Memory
  82. sizeLimit: 12Gi
  83. # Quicksync
  84. - name: "render-device"
  85. hostPath:
  86. path: "/dev/dri/renderD128"
  87. ---
  88. apiVersion: v1
  89. kind: Service
  90. metadata:
  91. name: jellyfin-service
  92. namespace: plex
  93. spec:
  94. selector:
  95. app: jellyfin
  96. type: ClusterIP
  97. ports:
  98. - name: jellyfin-web-port
  99. protocol: TCP
  100. port: 8096
  101. targetPort: http-web-svc
  102. ---
  103. apiVersion: traefik.containo.us/v1alpha1
  104. kind: IngressRoute
  105. metadata:
  106. name: jellyfin
  107. namespace: plex
  108. spec:
  109. entryPoints:
  110. - websecure
  111. routes:
  112. - kind: Rule
  113. match: Host(`jellyfin.jibby.org`)
  114. services:
  115. - kind: Service
  116. name: jellyfin-service
  117. port: 8096