From a7fd9f8ae5c0e8842520a2dac71382f362c2910d Mon Sep 17 00:00:00 2001 From: Haro Date: Tue, 15 Sep 2026 07:23:38 +0000 Subject: [PATCH] [UPDATE][jellyfin][1.0.31] v1.0.30: Drop legacy `ENABLE_HW_ACCEL` / `VIDEO_GID` / `RENDER_GID` envs and cpu privileged `/dev/dri` hostPath; hw transcoding is only via **intel** --- jellyfin/Chart.yaml | 3 +- jellyfin/OlaresManifest.yaml | 82 ++++++++++++------------- jellyfin/i18n/de-DE/OlaresManifest.yaml | 45 ++++++++++++++ jellyfin/i18n/es-ES/OlaresManifest.yaml | 45 ++++++++++++++ jellyfin/i18n/fr-FR/OlaresManifest.yaml | 45 ++++++++++++++ jellyfin/i18n/it-IT/OlaresManifest.yaml | 45 ++++++++++++++ jellyfin/i18n/ja-JP/OlaresManifest.yaml | 45 ++++++++++++++ jellyfin/owners | 8 +-- jellyfin/templates/deployment.yaml | 49 +++++++-------- 9 files changed, 287 insertions(+), 80 deletions(-) create mode 100644 jellyfin/i18n/de-DE/OlaresManifest.yaml create mode 100644 jellyfin/i18n/es-ES/OlaresManifest.yaml create mode 100644 jellyfin/i18n/fr-FR/OlaresManifest.yaml create mode 100644 jellyfin/i18n/it-IT/OlaresManifest.yaml create mode 100644 jellyfin/i18n/ja-JP/OlaresManifest.yaml diff --git a/jellyfin/Chart.yaml b/jellyfin/Chart.yaml index b0b686481..5faad8c5e 100644 --- a/jellyfin/Chart.yaml +++ b/jellyfin/Chart.yaml @@ -15,8 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 1.0.24 - +version: 1.0.31 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. diff --git a/jellyfin/OlaresManifest.yaml b/jellyfin/OlaresManifest.yaml index 9edb41421..ba92748de 100644 --- a/jellyfin/OlaresManifest.yaml +++ b/jellyfin/OlaresManifest.yaml @@ -10,10 +10,15 @@ metadata: description: The Free Software Media System icon: https://app.cdn.olares.com/appstore/jellyfin/icon.png appid: jellyfin - version: '1.0.24' + version: '1.0.31' title: Jellyfin categories: - Fun + - homelab + tags: + - home-theater + - media-management + - smart-home permission: appData: true @@ -57,6 +62,10 @@ spec: The project relies entirely on contributions from volunteers. Want to help out? There's lots of ways to do so, and you don't even have to code! upgradeDescription: | + v1.0.30: Drop legacy `ENABLE_HW_ACCEL` / `VIDEO_GID` / `RENDER_GID` envs and cpu privileged `/dev/dri` hostPath; hw transcoding is only via **intel** or **amd** accelerator install (gpu-inject). + + v1.0.29: Add cpu/intel/amd accelerator modes; intel/amd hw transcoding via gpu-inject (no privileged); runAsUser/runAsGroup 1000; supplementalGroups for /dev/dri access. + v1.0.24: Pin pods to control-plane (master) via nodeAffinity; drop legacy `sysVersion >= 1.12.3` appData path branching (Olares minimum is 1.12.6). Stop recursively chowning the whole Home on startup; only fix ownership on appData. @@ -66,7 +75,7 @@ spec: This minor release brings several bugfixes to improve your Jellyfin experience. As always, please ensure you take a full backup before upgrading! - Optional Intel/AMD GPU hardware transcoding via ENABLE_HW_ACCEL (mounts /dev/dri, supplementalGroups, privileged for DRM cgroup; set VIDEO_GID / RENDER_GID from the host if needed). + Optional hardware transcoding: install with **intel** or **amd** accelerator mode (VA-API/QSV via gpu-inject). **cpu** mode is software transcoding only. General Changes (1) Add lockhelper for UserManager [PR #16944], by @JPVenson @@ -80,12 +89,33 @@ spec: locale: - en-US - zh-CN - requiredMemory: 256Mi - limitedMemory: 4Gi - requiredDisk: 128Mi - limitedDisk: 10Gi - requiredCpu: 0.1 - limitedCpu: 4 + - de-DE + - es-ES + - it-IT + - fr-FR + - ja-JP + accelerator: + - mode: cpu + requiredCpu: "0.1" + limitedCpu: "4" + requiredMemory: 256Mi + limitedMemory: 4Gi + requiredDisk: 128Mi + limitedDisk: 10Gi + - mode: intel + requiredCpu: "0.1" + limitedCpu: "4" + requiredMemory: 256Mi + limitedMemory: 4Gi + requiredDisk: 128Mi + limitedDisk: 10Gi + - mode: amd + requiredCpu: "0.1" + limitedCpu: "4" + requiredMemory: 256Mi + limitedMemory: 4Gi + requiredDisk: 128Mi + limitedDisk: 10Gi doc: https://jellyfin.org/docs/ legal: - text: Community Standards @@ -109,42 +139,6 @@ options: - name: olares type: system version: '>=1.12.6-0' -envs: - - envName: ENABLE_HW_ACCEL - type: bool - default: 'false' - required: false - editable: true - applyOnChange: true - description: | - Enable Intel/AMD GPU hardware transcoding. When true: mounts /dev/dri, adds VIDEO_GID/RENDER_GID supplemental groups, and runs the container privileged (needed on Olares so the device cgroup allows opening DRM nodes). Leave false unless you need QSV/VA-API. - Host must expose /dev/dri. After enabling, set VIDEO_GID and RENDER_GID from the host (`getent group video` / `getent group render`) if you are not on Olares One. - - envName: VIDEO_GID - type: int - default: '44' - required: false - editable: true - applyOnChange: true - description: | - Used only when ENABLE_HW_ACCEL=true. Numeric GID of the host "video" group that owns /dev/dri/card* devices. - Default 44 matches Olares One; other hosts often differ — do not assume 44 is correct. - On the Olares host (SSH or Terminal), run: - getent group video - Example output: video:x:44:olares → set this env to 44 (the number after x:). - You can also confirm with: ls -ln /dev/dri (card* column 4 is the video GID). - - envName: RENDER_GID - type: int - default: '994' - required: false - editable: true - applyOnChange: true - description: | - Used only when ENABLE_HW_ACCEL=true. Numeric GID of the host "render" group that owns /dev/dri/renderD* devices (required for QSV/VA-API). - Default 994 matches Olares One; other hosts often use a different GID (e.g. 109, 110, 993) — always check your host. - On the Olares host (SSH or Terminal), run: - getent group render - Example output: render:x:994:ollama → set this env to 994 (the number after x:). - You can also confirm with: ls -ln /dev/dri (renderD* column 4 is the render GID). entrances: - name: jellyfin-svc port: 8096 diff --git a/jellyfin/i18n/de-DE/OlaresManifest.yaml b/jellyfin/i18n/de-DE/OlaresManifest.yaml new file mode 100644 index 000000000..0b408fe04 --- /dev/null +++ b/jellyfin/i18n/de-DE/OlaresManifest.yaml @@ -0,0 +1,45 @@ +metadata: + title: Jellyfin + description: Das Free-Software-Mediensystem +spec: + fullDescription: | + Jellyfin ist ein Free-Software-Mediensystem, das Ihnen die Kontrolle über Verwaltung und Streaming Ihrer Medien gibt. Es ist eine Alternative zu den proprietären Emby und Plex und liefert Medien von einem dedizierten Server an Endgeräte über mehrere Apps. + + Jellyfin ermöglicht das Sammeln, Verwalten und Streamen Ihrer Medien. Betreiben Sie den Jellyfin-Server auf Ihrem System und erhalten Sie Zugang zum führenden Free-Software-Entertainment-System — inklusive aller Extras. + + Mit Jellyfin können Sie + - Ihre gesamte Filmsammlung genießen, leicht zu durchsuchen und mit schöner Artwork. + - Lieblingsserien ansehen, automatisch nach Staffeln sortiert und bereit zum Binge. + - Musik hören — Ihre Künstler und Playlists — zu Hause oder unterwegs. + - TV schauen und automatische Aufnahmen einrichten, um Ihre Bibliothek zu erweitern. + - Bücher, Comics und Magazine lesen. + - Fotos organisieren und Erinnerungen mit Freunden und Familie teilen. + - Einen Filmabend remote teilen. So einfach war es noch nie. + + Why Jellyfin + **Privacy Focused** + Jellyfin hat kein Tracking, kein Phone-Home und keine zentralen Server, die Ihre Daten sammeln. Wir setzen auf offene und transparente Software. Wir sind auch nicht im Mediengeschäft — die einzigen Medien, die Sie sehen, sind Ihre eigenen. + + **Free Software** + Jellyfin ist Free Software unter der GNU GPL. Sie dürfen es kostenlos nutzen, studieren, ändern, bauen und verbreiten, solange Ihre Änderungen unter derselben Lizenz stehen. + + **No Fees** + Der Jellyfin-Server und die offiziellen Clients sind jetzt und immer kostenlos zum Download. Es gibt keine Kosten — versteckt oder anderweitig — für Sie, Ihre Freunde oder Ihr Unternehmen. Unsere Nebenkosten werden durch Spenden von Nutzern wie Ihnen gedeckt. + + **Community Built** + Das Projekt lebt vollständig von Beiträgen Freiwilliger. Mitmachen? Es gibt viele Wege — und Sie müssen nicht einmal programmieren! + upgradeDescription: | + v1.0.24: Pods per nodeAffinity auf control-plane (master) pinnen; Legacy-`sysVersion >= 1.12.3`-appData-Pfadverzweigung entfernen (Olares-Minimum ist 1.12.6). + + Jellyfin Server auf 10.11.11 upgraden + + Wir freuen uns, die neueste stabile Jellyfin-Version 10.11.11 anzukündigen! + + Dieses Minor-Release bringt mehrere Bugfixes für ein besseres Jellyfin-Erlebnis. Bitte erstellen Sie wie immer vor dem Upgrade ein vollständiges Backup! + + Optionale Intel/AMD-GPU-Hardware-Transkodierung via ENABLE_HW_ACCEL (mountet /dev/dri, supplementalGroups, privileged für DRM-cgroup; VIDEO_GID / RENDER_GID vom Host setzen, falls nötig). + + General Changes (1) + Lockhelper für UserManager hinzugefügt [PR #16944], von @JPVenson + + Vollständige Release Notes: https://github.com/jellyfin/jellyfin/releases/tag/v10.11.11 diff --git a/jellyfin/i18n/es-ES/OlaresManifest.yaml b/jellyfin/i18n/es-ES/OlaresManifest.yaml new file mode 100644 index 000000000..ed2ac43ea --- /dev/null +++ b/jellyfin/i18n/es-ES/OlaresManifest.yaml @@ -0,0 +1,45 @@ +metadata: + title: Jellyfin + description: El sistema multimedia de software libre +spec: + fullDescription: | + Jellyfin es un sistema multimedia de software libre que te pone al mando de gestionar y transmitir tus medios. Es una alternativa a los propietarios Emby y Plex, para ofrecer medios desde un servidor dedicado a dispositivos de usuario final mediante múltiples apps. + + Jellyfin te permite recopilar, gestionar y transmitir tus medios. Ejecuta el servidor Jellyfin en tu sistema y accede al principal sistema de entretenimiento de software libre, con todas las funciones incluidas. + + Con Jellyfin puedes + - Disfrutar de toda tu colección de películas, fácil de explorar y con artwork hermoso. + - Ver tus series favoritas, ordenadas automáticamente por temporada y listas para el binge. + - Escuchar música, tus artistas y playlists, en casa o en movimiento. + - Ver TV y programar grabaciones automáticas para ampliar tu biblioteca. + - Leer libros, cómics y revistas. + - Organizar tus fotos y compartir recuerdos con amigos y familia. + - Compartir una noche de cine en remoto. Nunca había sido tan fácil. + + Why Jellyfin + **Privacy Focused** + Jellyfin no tiene tracking, phone-home ni servidores centrales que recopilen tus datos. Creemos en mantener el software abierto y transparente. Tampoco estamos en el negocio de los medios, así que los únicos medios que ves son los tuyos. + + **Free Software** + Jellyfin es Free Software, licenciado bajo la GNU GPL. Puedes usarlo, estudiarlo, modificarlo, construirlo y distribuirlo gratis, siempre que tus cambios se licencien igual. + + **No Fees** + El servidor Jellyfin y los clientes oficiales son gratis de descargar, ahora y siempre. No hay costes, ocultos o de otro tipo, para usarlo tú, tus amigos o tu empresa. Nuestros costes incidentales se pagan con donaciones de usuarios como tú. + + **Community Built** + El proyecto depende por completo de las contribuciones de voluntarios. ¿Quieres ayudar? Hay muchas formas, ¡y ni siquiera hace falta programar! + upgradeDescription: | + v1.0.24: Fijar pods al control-plane (master) vía nodeAffinity; eliminar el branching legado de rutas appData `sysVersion >= 1.12.3` (el mínimo de Olares es 1.12.6). + + Actualizar Jellyfin Server a 10.11.11 + + ¡Nos complace anunciar la última versión estable de Jellyfin, 10.11.11! + + Esta versión menor trae varias correcciones para mejorar tu experiencia con Jellyfin. Como siempre, ¡haz una copia de seguridad completa antes de actualizar! + + Transcodificación por hardware GPU Intel/AMD opcional vía ENABLE_HW_ACCEL (monta /dev/dri, supplementalGroups, privileged para DRM cgroup; define VIDEO_GID / RENDER_GID del host si hace falta). + + General Changes (1) + Añadir lockhelper para UserManager [PR #16944], por @JPVenson + + Notas de versión completas en https://github.com/jellyfin/jellyfin/releases/tag/v10.11.11 diff --git a/jellyfin/i18n/fr-FR/OlaresManifest.yaml b/jellyfin/i18n/fr-FR/OlaresManifest.yaml new file mode 100644 index 000000000..8d3c4f48f --- /dev/null +++ b/jellyfin/i18n/fr-FR/OlaresManifest.yaml @@ -0,0 +1,45 @@ +metadata: + title: Jellyfin + description: Le Free Software Media System +spec: + fullDescription: | + Jellyfin est un Free Software Media System qui vous donne le contrôle de la gestion et du streaming de vos médias. C’est une alternative aux solutions propriétaires Emby et Plex, pour fournir des médias depuis un serveur dédié vers les appareils des utilisateurs finaux via plusieurs apps. + + Jellyfin vous permet de collecter, gérer et streamer vos médias. Exécutez le serveur Jellyfin sur votre système et accédez au principal système de divertissement free-software, avec toutes les fonctions incluses. + + Avec Jellyfin, vous pouvez + - Profiter de toute votre collection de films, facile à parcourir et avec de beaux artworks. + - Regarder vos séries préférées, triées automatiquement par saison et prêtes pour le binge. + - Écouter de la musique, vos artistes et playlists, chez vous ou en déplacement. + - Regarder la TV et programmer des enregistrements automatiques pour enrichir votre bibliothèque. + - Lire livres, comics et magazines. + - Organiser vos photos et partager des souvenirs avec vos amis et votre famille. + - Partager une soirée film à distance. Cela n’a jamais été aussi simple. + + Why Jellyfin + **Privacy Focused** + Jellyfin n’a ni tracking, ni phone-home, ni serveurs centraux collectant vos données. Nous croyons en un logiciel ouvert et transparent. Nous ne sommes pas non plus dans le business des médias, donc les seuls médias que vous voyez sont les vôtres. + + **Free Software** + Jellyfin est Free Software, sous licence GNU GPL. Vous pouvez l’utiliser, l’étudier, le modifier, le construire et le distribuer gratuitement, tant que vos modifications sont sous la même licence. + + **No Fees** + Le serveur Jellyfin et les clients officiels sont gratuits à télécharger, maintenant et toujours. Aucun coût, caché ou autre, pour vous, vos amis ou votre entreprise. Nos coûts annexes sont couverts par les dons d’utilisateurs comme vous. + + **Community Built** + Le projet repose entièrement sur les contributions de bénévoles. Envie d’aider ? Il y a plein de façons, et vous n’avez même pas besoin de coder ! + upgradeDescription: | + v1.0.24 : Épingler les pods au control-plane (master) via nodeAffinity ; supprimer le branchement legacy des chemins appData `sysVersion >= 1.12.3` (le minimum Olares est 1.12.6). + + Mise à niveau de Jellyfin Server vers 10.11.11 + + Nous avons le plaisir d’annoncer la dernière version stable de Jellyfin, 10.11.11 ! + + Cette version mineure apporte plusieurs corrections pour améliorer votre expérience Jellyfin. Comme toujours, faites une sauvegarde complète avant la mise à niveau ! + + Transcodage matériel GPU Intel/AMD optionnel via ENABLE_HW_ACCEL (monte /dev/dri, supplementalGroups, privileged pour le cgroup DRM ; définir VIDEO_GID / RENDER_GID depuis l’hôte si besoin). + + General Changes (1) + Ajout de lockhelper pour UserManager [PR #16944], par @JPVenson + + Notes de version complètes : https://github.com/jellyfin/jellyfin/releases/tag/v10.11.11 diff --git a/jellyfin/i18n/it-IT/OlaresManifest.yaml b/jellyfin/i18n/it-IT/OlaresManifest.yaml new file mode 100644 index 000000000..91e62a30f --- /dev/null +++ b/jellyfin/i18n/it-IT/OlaresManifest.yaml @@ -0,0 +1,45 @@ +metadata: + title: Jellyfin + description: Il Free Software Media System +spec: + fullDescription: | + Jellyfin è un Free Software Media System che ti dà il controllo su gestione e streaming dei tuoi media. È un’alternativa ai proprietari Emby e Plex, per fornire media da un server dedicato ai dispositivi degli utenti finali tramite più app. + + Jellyfin ti consente di raccogliere, gestire e fare streaming dei tuoi media. Esegui il server Jellyfin sul tuo sistema e accedi al principale sistema di intrattenimento free-software, con tutte le funzioni incluse. + + Con Jellyfin puoi + - Goderti l’intera collezione di film, facile da sfogliare e con bellissimi artwork. + - Guardare le tue serie preferite, ordinate automaticamente per stagione e pronte al binge. + - Ascoltare musica, i tuoi artisti e le playlist, a casa o in movimento. + - Guardare la TV e impostare registrazioni automatiche per ampliare la libreria. + - Leggere libri, fumetti e riviste. + - Organizzare le foto e condividere ricordi con amici e famiglia. + - Condividere una serata film da remoto. Non è mai stato così facile. + + Why Jellyfin + **Privacy Focused** + Jellyfin non ha tracking, phone-home o server centrali che raccolgono i tuoi dati. Crediamo in software aperto e trasparente. Non siamo nemmeno nel business dei media, quindi gli unici media che vedi sono i tuoi. + + **Free Software** + Jellyfin è Free Software, con licenza GNU GPL. Puoi usarlo, studiarlo, modificarlo, costruirlo e distribuirlo gratuitamente, purché le modifiche siano sotto la stessa licenza. + + **No Fees** + Il server Jellyfin e i client ufficiali sono gratuiti da scaricare, ora e sempre. Non ci sono costi, nascosti o di altro tipo, per te, i tuoi amici o la tua azienda. I nostri costi incidentali sono coperti da donazioni di utenti come te. + + **Community Built** + Il progetto dipende interamente dai contributi di volontari. Vuoi aiutare? Ci sono tanti modi, e non serve nemmeno saper programmare! + upgradeDescription: | + v1.0.24: Fissare i pod al control-plane (master) via nodeAffinity; rimuovere il branching legacy dei percorsi appData `sysVersion >= 1.12.3` (il minimo Olares è 1.12.6). + + Aggiornare Jellyfin Server a 10.11.11 + + Siamo lieti di annunciare l’ultima release stabile di Jellyfin, versione 10.11.11! + + Questa release minore porta diverse correzioni per migliorare l’esperienza Jellyfin. Come sempre, esegui un backup completo prima dell’upgrade! + + Transcodifica hardware GPU Intel/AMD opzionale via ENABLE_HW_ACCEL (monta /dev/dri, supplementalGroups, privileged per DRM cgroup; imposta VIDEO_GID / RENDER_GID dall’host se necessario). + + General Changes (1) + Aggiunto lockhelper per UserManager [PR #16944], di @JPVenson + + Note di rilascio complete: https://github.com/jellyfin/jellyfin/releases/tag/v10.11.11 diff --git a/jellyfin/i18n/ja-JP/OlaresManifest.yaml b/jellyfin/i18n/ja-JP/OlaresManifest.yaml new file mode 100644 index 000000000..9affca667 --- /dev/null +++ b/jellyfin/i18n/ja-JP/OlaresManifest.yaml @@ -0,0 +1,45 @@ +metadata: + title: Jellyfin + description: フリーソフトウェアのメディアシステム +spec: + fullDescription: | + Jellyfin は、メディアの管理とストリーミングを自分でコントロールできるフリーソフトウェアのメディアシステムです。プロプライエタリな Emby や Plex の代替として、専用サーバーから複数のアプリ経由でエンドユーザー端末へメディアを届けます。 + + Jellyfin でメディアを収集・管理・ストリーミングできます。システム上で Jellyfin サーバーを動かし、先進的なフリーソフトウェア・エンターテインメントシステムへアクセスしましょう。 + + Jellyfin でできること + - 美しいアートワーク付きで、映画コレクション全体を手軽に閲覧・視聴。 + - お気に入りの番組をシーズン別に自動整理し、一気見。 + - 自宅でも外出先でも、アーティストやプレイリストの音楽を聴く。 + - TV を視聴し、自動録画でライブラリを拡張。 + - 本、コミック、雑誌を読む。 + - 写真を整理し、友人や家族と思い出を共有。 + - リモートで映画の夜を共有。これほど簡単だったことはありません。 + + Why Jellyfin + **Privacy Focused** + Jellyfin にトラッキング、フォンホーム、データ収集用の中央サーバーはありません。ソフトウェアをオープンで透明に保つことを信条とします。メディアビジネスでもないため、見えるメディアはあなた自身のものだけです。 + + **Free Software** + Jellyfin は GNU GPL ライセンスの Free Software です。変更も同じライセンスであれば、自由に使用・研究・改変・ビルド・配布できます。 + + **No Fees** + Jellyfin サーバーと公式クライアントは、今もこれからも無料でダウンロードできます。あなた、友人、会社のいずれにも隠れた費用はありません。付随コストはあなたのようなユーザーの寄付で賄われています。 + + **Community Built** + プロジェクトはボランティアの貢献に完全に依存しています。手伝いたいですか?方法はたくさんあり、コーディングすら不要です! + upgradeDescription: | + v1.0.24: nodeAffinity で Pod を control-plane(master)に固定。レガシーな `sysVersion >= 1.12.3` の appData パス分岐を削除(Olares の最低要件は 1.12.6)。 + + Jellyfin Server を 10.11.11 へアップグレード + + Jellyfin の最新安定版 10.11.11 を発表できることを嬉しく思います! + + このマイナーリリースには、体験向上のための複数のバグ修正が含まれます。いつものとおり、アップグレード前に完全バックアップを取ってください! + + ENABLE_HW_ACCEL による任意の Intel/AMD GPU ハードウェアトランスコード(/dev/dri をマウント、supplementalGroups、DRM cgroup 用 privileged;必要に応じてホストから VIDEO_GID / RENDER_GID を設定)。 + + General Changes (1) + UserManager 用 lockhelper を追加 [PR #16944]、by @JPVenson + + 完全なリリースノート: https://github.com/jellyfin/jellyfin/releases/tag/v10.11.11 diff --git a/jellyfin/owners b/jellyfin/owners index 87a4d053e..54214d082 100644 --- a/jellyfin/owners +++ b/jellyfin/owners @@ -1,7 +1,3 @@ owners: -- 'LittleLollipop' -- 'TShentu' -- 'hysyeah' -- 'pengpeng' -- 'harveyff' -- 'zdf-org' + - username: '@beclab' + title: 'Olares' diff --git a/jellyfin/templates/deployment.yaml b/jellyfin/templates/deployment.yaml index 654251610..831ceca72 100644 --- a/jellyfin/templates/deployment.yaml +++ b/jellyfin/templates/deployment.yaml @@ -18,6 +18,9 @@ data: echo "Directory $new_dir is not empty, no action needed." fi --- +{{- $gpuObj := .Values.GPU | default dict }} +{{- $gpuType := .Values.gpu | default ($gpuObj.Type) | default "cpu" }} +{{- $isIgpuMode := or (eq $gpuType "intel") (eq $gpuType "amd") }} apiVersion: apps/v1 kind: Deployment metadata: @@ -25,6 +28,10 @@ metadata: namespace: {{ .Release.Namespace }} labels: app: jellyfin + {{- if $isIgpuMode }} + annotations: + applications.app.bytetrade.io/gpu-inject: "true" + {{- end }} spec: replicas: {{ .Values.workloads.jellyfin.replicaCount }} selector: @@ -38,7 +45,14 @@ spec: app: jellyfin applications.app.bytetrade.io/macvlan-init: "true" spec: - {{- $hwAccel := eq (toString (.Values.olaresEnv.ENABLE_HW_ACCEL | default "false")) "true" }} + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + {{- if $isIgpuMode }} + supplementalGroups: + - 44 + - 994 + {{- end }} affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: @@ -46,23 +60,11 @@ spec: - matchExpressions: - key: node-role.kubernetes.io/control-plane operator: Exists - {{- if $hwAccel }} - securityContext: - supplementalGroups: - - {{ .Values.olaresEnv.VIDEO_GID | default "44" | int }} - - {{ .Values.olaresEnv.RENDER_GID | default "994" | int }} - {{- end }} volumes: - name: home hostPath: type: Directory path: {{ .Values.userspace.userData }} - {{- if $hwAccel }} - - name: dri - hostPath: - path: /dev/dri - type: Directory - {{- end }} - hostPath: path: '{{ .Values.userspace.appData }}/config' type: DirectoryOrCreate @@ -122,12 +124,9 @@ spec: - name: jellyfin image: "docker.io/beclab/jellyfin-jellyfin:10.11.11" imagePullPolicy: IfNotPresent - {{- if $hwAccel }} - # hostPath makes /dev/dri visible; privileged is required on Olares/k3s - # so the device cgroup allows open() on the DRM render node. securityContext: - privileged: true - {{- end }} + runAsUser: 1000 + runAsGroup: 1000 resources: requests: cpu: 100m @@ -150,20 +149,15 @@ spec: mountPath: /olares/userdata/external - name: external mountPath: /external - {{- if $hwAccel }} - - name: dri - mountPath: /dev/dri - {{- end }} env: - name: PGID - value: "1000" + value: "1000" - name: PUID - value: "1000" + value: "1000" - name: UMASK - value: "002" + value: "002" - name: TZ value: Etc/UTC - --- apiVersion: v1 @@ -174,9 +168,8 @@ metadata: spec: type: ClusterIP selector: - app: {{ .Release.Name }} + app: jellyfin ports: - protocol: TCP port: 8096 targetPort: 8096 -