feat(persistence): add cache volume persistence support

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>
This commit is contained in:
Aleksei SviridkinandClaude committed 2025-11-05 23:26:58 +03:00 Unverified
1 parent 2401a45bb1
commit 35f39bf92c
5 files changed
+69 -2

No files matched your search

+16
View File
@@ -222,6 +222,22 @@ persistence:
storageClass: ''
## -- Use an existing PVC for this mount
# existingClaim: ''
cache:
# -- set to false to use emptyDir
enabled: false
# -- Type of volume for cache storage (pvc, hostPath, emptyDir). If 'enabled' is false, 'emptyDir' is used regardless of this setting.
type: pvc
# -- Path on the host node for cache storage, only used if type is 'hostPath'.
hostPath: ""
# -- PVC specific settings, only used if type is 'pvc'.
accessMode: ReadWriteOnce
size: 10Gi
# -- Custom annotations to be added to the PVC
annotations: {}
# -- If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner.
storageClass: ''
## -- Use an existing PVC for this mount
# existingClaim: ''
# -- Configuration for metrics collection and monitoring
metrics: