apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: jellyfin
  namespace: media
spec:
  interval: 5m
  chart:
    spec:
      chart: app-template
      version: 1.3.x
      sourceRef:
        kind: HelmRepository
        name: bjws-charts
        namespace: flux-system

  values:
    image:
      repository: jellyfin/jellyfin
      tag: "10.8.10"

    podLabels:
      needsAuthentik: "yes"

    service:
      main:
        ports:
          http:
            port: 8096

    probes:
      liveness:
        enabled: false

    ingress:
      main:
        enabled: true
        annotations:
          cert-manager.io/cluster-issuer: letsencrypt-production
          traefik.ingress.kubernetes.io/router.entrypoints: websecure
        hosts:
          - host: &host "watch.${SECRET_NEW_DOMAIN}"
            paths:
              - path: /
                pathType: Prefix
        tls:
          - hosts:
              - *host
            secretName: wildcard-main-tls

    persistence:
      config:
        enabled: true
        type: hostPath
        hostPath: /mnt/MainPool/Kubernetes/jellyfin
        mountPath: /config

      storage:
        enabled: true
        type: hostPath
        hostPath: /mnt/MainPool/Media/Media
        mountPath: /storage/Media

      cache:
        enabled: true
        type: pvc
        accessMode: ReadWriteOnce
        size: 8Gi
        mountPath: /cache

      transcodes:
        enabled: true
        type: pvc
        accessMode: ReadWriteOnce
        size: 24Gi
        mountPath: /config/transcodes

    resources:
      requests:
        cpu: 3m
        memory: 1500Mi
        
      limits:
        memory: 3000Mi