Switch adguardhome/esphome/signal-gateway/zigbee2mqtt to PVC storage

Replaces raw hostPath (/srv/data/<app>) with a local-path PVC per app,
so these apps get proper PVC lifecycle semantics and can have a PVC
backup CronJob (matching what gitea already has) instead of being
unbacked host directories. local-path already lives on the same disk
these hostPaths did, so this isn't a storage-tier change.

adguardhome specifically: consolidates the previous split work/+conf/
hostPath mounts into a single PVC mounted at /opt/adguardhome (its own
default convention), since a real deployment can't run two hostPath
subtrees off one PVC.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01566weDFku8TaRC2CJUPVM1
This commit is contained in:
sha
2026-08-24 02:44:30 +03:00
co-authored by Claude Sonnet 5
parent d22a3a62cf
commit cc5ecd25ce
16 changed files with 115 additions and 36 deletions
+1 -1
View File
@@ -2,7 +2,7 @@ apiVersion: v2
name: zigbee2mqtt
description: Zigbee2MQTT Helm chart
type: application
version: 0.1.5
version: 0.1.6
appVersion: "2.13.0"
annotations:
version-source: github-release:Koenkk/zigbee2mqtt
+2 -3
View File
@@ -67,6 +67,5 @@ spec:
mountPath: /app/data
volumes:
- name: data
hostPath:
path: {{ .Values.volume.hostPath }}
type: DirectoryOrCreate
persistentVolumeClaim:
claimName: {{ .Values.persistence.existingClaim | default (printf "%s-data" .Release.Name) }}
+18
View File
@@ -0,0 +1,18 @@
{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ .Release.Name }}-data
labels:
app.kubernetes.io/name: {{ .Chart.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
accessModes:
{{- toYaml .Values.persistence.accessModes | nindent 4 }}
{{- with .Values.persistence.storageClass }}
storageClassName: {{ . }}
{{- end }}
resources:
requests:
storage: {{ .Values.persistence.size }}
{{- end }}
+7 -2
View File
@@ -21,8 +21,13 @@ resources:
memory: "1Gi"
# Persistent /app/data directory (configuration, device database, coordinator backup)
volume:
hostPath: ""
persistence:
enabled: true
existingClaim: ""
storageClass: local-path
accessModes:
- ReadWriteOnce
size: 1Gi
nodeSelector: {}
tolerations: []