jellyfin.yaml 2.6 KB

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