Add dedicated cache volume configuration to reduce wear on SD cards and improve
performance by allowing cache to be stored on separate storage.
Changes:
- Add persistence.cache configuration in values.yaml with support for:
- PVC (default type when enabled)
- hostPath for direct host mount
- emptyDir (default when disabled)
- Add cache volume mount at /cache in deployment
- Add cache PersistentVolumeClaim template
- Support for existing PVC via existingClaim
- Configurable size (default 10Gi), accessMode, storageClass, and annotations
- Update Chart version from 2.5.0 to 2.5.1
- Add Artifact Hub changelog annotation
The cache volume is disabled by default to maintain backward compatibility.
Users can enable it via:
```yaml
persistence:
cache:
enabled: true
type: pvc
size: 10Gi
```
This addresses the use case mentioned in #62 where users want to avoid SD card
wear by storing cache on separate persistent storage.
Fixes: #62
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
69 lines
2.0 KiB
YAML
69 lines
2.0 KiB
YAML
{{- if and .Values.persistence.config.enabled (not .Values.persistence.config.existingClaim) }}
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: {{ include "jellyfin.fullname" . }}-config
|
|
labels:
|
|
{{- include "jellyfin.labels" . | nindent 4 }}
|
|
{{- with .Values.persistence.config.annotations }}
|
|
annotations:
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
spec:
|
|
accessModes:
|
|
- {{ .Values.persistence.config.accessMode | quote }}
|
|
resources:
|
|
requests:
|
|
storage: {{ .Values.persistence.config.size | quote }}
|
|
{{- with .Values.persistence.config.storageClass }}
|
|
storageClassName: {{ . | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if and .Values.persistence.media.enabled (eq .Values.persistence.media.type "pvc") (not .Values.persistence.media.existingClaim) }}
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: {{ include "jellyfin.fullname" . }}-media
|
|
labels:
|
|
{{- include "jellyfin.labels" . | nindent 4 }}
|
|
{{- with .Values.persistence.media.annotations }}
|
|
annotations:
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
spec:
|
|
accessModes:
|
|
- {{ .Values.persistence.media.accessMode | quote }}
|
|
resources:
|
|
requests:
|
|
storage: {{ .Values.persistence.media.size | quote }}
|
|
{{- with .Values.persistence.media.storageClass }}
|
|
storageClassName: {{ . | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if and .Values.persistence.cache.enabled (eq .Values.persistence.cache.type "pvc") (not .Values.persistence.cache.existingClaim) }}
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: {{ include "jellyfin.fullname" . }}-cache
|
|
labels:
|
|
{{- include "jellyfin.labels" . | nindent 4 }}
|
|
{{- with .Values.persistence.cache.annotations }}
|
|
annotations:
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
spec:
|
|
accessModes:
|
|
- {{ .Values.persistence.cache.accessMode | quote }}
|
|
resources:
|
|
requests:
|
|
storage: {{ .Values.persistence.cache.size | quote }}
|
|
{{- with .Values.persistence.cache.storageClass }}
|
|
storageClassName: {{ . | quote }}
|
|
{{- end }}
|
|
{{- end }}
|