diff --git a/kubernetes/apps/default/jellyfin/app/helmrelease.yaml b/kubernetes/apps/default/jellyfin/app/helmrelease.yaml index 7098369a3..ad5b00c8a 100644 --- a/kubernetes/apps/default/jellyfin/app/helmrelease.yaml +++ b/kubernetes/apps/default/jellyfin/app/helmrelease.yaml @@ -10,7 +10,7 @@ spec: chart: spec: chart: app-template - version: 1.5.1 + version: 2.0.3 sourceRef: kind: HelmRepository name: bjw-s @@ -27,15 +27,67 @@ spec: uninstall: keepHistory: false values: - image: - repository: ghcr.io/onedr0p/jellyfin - tag: 10.8.11@sha256:926e2a9f6677a0c7b12feba29f36c954154869318d6a52df72f72ff9c74cf494 - env: - TZ: ${TIMEZONE} + controllers: + main: + type: statefulset + annotations: + reloader.stakater.com/auto: "true" + containers: + main: + image: + repository: ghcr.io/onedr0p/jellyfin + tag: 10.8.11@sha256:926e2a9f6677a0c7b12feba29f36c954154869318d6a52df72f72ff9c74cf494 + env: + DOTNET_SYSTEM_IO_DISABLEFILELOCKING: "true" + JELLYFIN_FFmpeg__probesize: 50000000 + JELLYFIN_FFmpeg__analyzeduration: 50000000 + JELLYFIN_PublishedServerUrl: &loadBalancerIP ${CLUSTER_LB_JELLYFIN} + TZ: ${TIMEZONE} + probes: + liveness: &probes + enabled: true + custom: true + spec: + httpGet: + path: /health + port: &port 8096 + initialDelaySeconds: 0 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 3 + readiness: *probes + startup: + enabled: false + resources: + requests: + gpu.intel.com/i915: 1 + cpu: 100m + memory: 512Mi + limits: + gpu.intel.com/i915: 1 + memory: 4Gi + statefulset: + volumeClaimTemplates: + - name: config + accessMode: ReadWriteOnce + size: 50Gi + storageClass: rook-ceph-block + globalMounts: + - path: /config + pod: + enableServiceLinks: false + nodeSelector: + intel.feature.node.kubernetes.io/gpu: "true" + securityContext: + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + fsGroupChangePolicy: OnRootMismatch + supplementalGroups: [44, 105, 10000] service: main: type: LoadBalancer - loadBalancerIP: "${CLUSTER_LB_JELLYFIN}" + loadBalancerIP: *loadBalancerIP externalTrafficPolicy: Local ports: http: @@ -43,68 +95,49 @@ spec: ingress: main: enabled: true - ingressClassName: "nginx" + className: "nginx" annotations: hajimari.io/icon: simple-icons:jellyfin hosts: - host: &host "{{ .Release.Name }}.${SECRET_CLUSTER_DOMAIN}" paths: - path: / - pathType: Prefix + service: + name: main + port: http 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 + globalMounts: + - path: /mnt/storage/music photo: enabled: true type: nfs server: "${LOCAL_LAN_TRUENAS}" path: /mnt/storage/photo mountPath: /mnt/storage/photo + globalMounts: + - path: /mnt/storage/photo`` video: enabled: true type: nfs server: "${LOCAL_LAN_TRUENAS}" path: /mnt/storage/video - mountPath: /mnt/storage/video + globalMounts: + - path: /mnt/storage/video transcode: enabled: true type: emptyDir + globalMounts: + - path: /transcode 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 + globalMounts: + - path: /cache diff --git a/kubernetes/apps/default/jellyfin/app/kustomization.yaml b/kubernetes/apps/default/jellyfin/app/kustomization.yaml index 7cc2de98b..29079162f 100644 --- a/kubernetes/apps/default/jellyfin/app/kustomization.yaml +++ b/kubernetes/apps/default/jellyfin/app/kustomization.yaml @@ -7,4 +7,3 @@ resources: - ./gatus.yaml - ./helmrelease.yaml - ./volsync.yaml - - ./volume.yaml diff --git a/kubernetes/apps/default/jellyfin/app/volsync.yaml b/kubernetes/apps/default/jellyfin/app/volsync.yaml index 5750e3150..adeec6903 100644 --- a/kubernetes/apps/default/jellyfin/app/volsync.yaml +++ b/kubernetes/apps/default/jellyfin/app/volsync.yaml @@ -30,7 +30,7 @@ metadata: name: jellyfin namespace: default spec: - sourcePVC: jellyfin-config + sourcePVC: config-jellyfin-0 trigger: schedule: "0 7 * * *" restic: diff --git a/kubernetes/apps/default/jellyfin/app/volume.yaml b/kubernetes/apps/default/jellyfin/app/volume.yaml deleted file mode 100644 index 1ca6e184c..000000000 --- a/kubernetes/apps/default/jellyfin/app/volume.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: jellyfin-config - namespace: default - labels: - app.kubernetes.io/name: &name jellyfin - app.kubernetes.io/instance: *name - snapshot.home.arpa/enabled: "true" -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 30Gi - storageClassName: rook-ceph-block