--- # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2beta1.json apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease metadata: name: &app jellyfin namespace: default spec: interval: 30m chart: spec: chart: app-template version: 1.5.1 sourceRef: kind: HelmRepository name: bjw-s namespace: flux-system maxHistory: 2 install: createNamespace: true remediation: retries: 3 upgrade: cleanupOnFail: true remediation: retries: 3 uninstall: keepHistory: false values: image: repository: ghcr.io/onedr0p/jellyfin tag: 10.8.11@sha256:02904ff44d66c9a549c1dbf7e5bb03f6185272786f871d5718da22ca9a0e600e env: TZ: ${TIMEZONE} service: main: type: LoadBalancer loadBalancerIP: "${CLUSTER_LB_JELLYFIN}" externalTrafficPolicy: Local ports: http: port: 8096 ingress: main: enabled: true ingressClassName: "nginx" annotations: hajimari.io/icon: simple-icons:jellyfin hosts: - host: &host "{{ .Release.Name }}.${SECRET_CLUSTER_DOMAIN}" paths: - path: / pathType: Prefix tls: - hosts: - *host podSecurityContext: runAsUser: 568 runAsGroup: 568 fsGroup: 568 fsGroupChangePolicy: "OnRootMismatch" supplementalGroups: - 44 - 109 persistence: config: enabled: true existingClaim: jellyfin-config mountPath: /config music: enabled: true type: nfs server: "${LOCAL_LAN_TRUENAS}" path: /mnt/storage/music mountPath: /mnt/storage/music photo: enabled: true type: nfs server: "${LOCAL_LAN_TRUENAS}" path: /mnt/storage/photo mountPath: /mnt/storage/photo video: enabled: true type: nfs server: "${LOCAL_LAN_TRUENAS}" path: /mnt/storage/video mountPath: /mnt/storage/video transcode: enabled: true type: emptyDir cache: enabled: true type: emptyDir affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: intel.feature.node.kubernetes.io/gpu operator: In values: - "true" resources: requests: gpu.intel.com/i915: 1 cpu: 100m memory: 1Gi limits: gpu.intel.com/i915: 1 memory: 6Gi