From e02351e53258210c1b285ea586f3440fd7eaf0b8 Mon Sep 17 00:00:00 2001 From: Michael Welles Date: Tue, 21 Jul 2026 00:29:07 -0400 Subject: [PATCH] chore(dgraph): add persistentVolumeClaimRetentionPolicy for alpha and zero --- charts/dgraph/README.md | 2 ++ charts/dgraph/templates/alpha/statefulset.yaml | 7 +++++++ charts/dgraph/templates/zero/statefulset.yaml | 7 +++++++ charts/dgraph/values.yaml | 14 ++++++++++++++ 4 files changed, 30 insertions(+) diff --git a/charts/dgraph/README.md b/charts/dgraph/README.md index d21724d5b..81b4d63f4 100644 --- a/charts/dgraph/README.md +++ b/charts/dgraph/README.md @@ -133,6 +133,7 @@ The following table lists the configurable parameters of the `dgraph` chart and | `zero.persistence.storageClass` | PVC Storage Class for zero volume | `nil` | | `zero.persistence.accessModes` | PVC Access Mode for zero volume | `['ReadWriteOnce']` | | `zero.persistence.size` | PVC Storage Request for zero volume | `32Gi` | +| `zero.persistence.persistentVolumeClaimRetentionPolicy` | PVC retention policy for the zero StatefulSet (`whenDeleted`/`whenScaled`, each `Retain` or `Delete`); requires Kubernetes >= 1.27. Unset keeps the Kubernetes default. | _unset_ | | `zero.nodeSelector` | Node labels for zero pod assignment | `{}` | | `zero.tolerations` | Zero tolerations | `[]` | | `zero.resources.requests.memory` | Zero pod resources memory requests | `100Mi` | @@ -191,6 +192,7 @@ The following table lists the configurable parameters of the `dgraph` chart and | `alpha.persistence.storageClass` | PVC Storage Class for alpha volume | `nil` | | `alpha.persistence.accessModes` | PVC Access Mode for alpha volume | `['ReadWriteOnce']` | | `alpha.persistence.size` | PVC Storage Request for alpha volume | `100Gi` | +| `alpha.persistence.persistentVolumeClaimRetentionPolicy` | PVC retention policy for the alpha StatefulSet (`whenDeleted`/`whenScaled`, each `Retain` or `Delete`); requires Kubernetes >= 1.27. Unset keeps the Kubernetes default. | _unset_ | | `alpha.nodeSelector` | Node labels for alpha pod assignment | `{}` | | `alpha.tolerations` | Alpha tolerations | `[]` | | `alpha.resources.requests.memory` | Zero pod resources memory request | `100Mi` | diff --git a/charts/dgraph/templates/alpha/statefulset.yaml b/charts/dgraph/templates/alpha/statefulset.yaml index 0bd3c702c..d11a270de 100644 --- a/charts/dgraph/templates/alpha/statefulset.yaml +++ b/charts/dgraph/templates/alpha/statefulset.yaml @@ -50,6 +50,13 @@ spec: app: {{ template "dgraph.name" . }} release: {{ .Release.Name }} component: {{ .Values.alpha.name }} + {{- if .Values.alpha.persistence.enabled }} + {{- with .Values.alpha.persistence.persistentVolumeClaimRetentionPolicy }} + persistentVolumeClaimRetentionPolicy: + whenDeleted: {{ .whenDeleted | default "Retain" }} + whenScaled: {{ .whenScaled | default "Retain" }} + {{- end }} + {{- end }} template: metadata: name: {{ template "dgraph.alpha.fullname" . }} diff --git a/charts/dgraph/templates/zero/statefulset.yaml b/charts/dgraph/templates/zero/statefulset.yaml index 27c5b9e61..0a1c1fa0c 100644 --- a/charts/dgraph/templates/zero/statefulset.yaml +++ b/charts/dgraph/templates/zero/statefulset.yaml @@ -43,6 +43,13 @@ spec: app: {{ template "dgraph.name" . }} release: {{ .Release.Name }} component: {{ .Values.zero.name }} + {{- if .Values.zero.persistence.enabled }} + {{- with .Values.zero.persistence.persistentVolumeClaimRetentionPolicy }} + persistentVolumeClaimRetentionPolicy: + whenDeleted: {{ .whenDeleted | default "Retain" }} + whenScaled: {{ .whenScaled | default "Retain" }} + {{- end }} + {{- end }} template: metadata: name: {{ template "dgraph.zero.fullname" . }} diff --git a/charts/dgraph/values.yaml b/charts/dgraph/values.yaml index 1743d5419..8b4cb774c 100644 --- a/charts/dgraph/values.yaml +++ b/charts/dgraph/values.yaml @@ -194,6 +194,13 @@ zero: accessModes: - ReadWriteOnce size: 32Gi + ## Optionally control PVC lifecycle on StatefulSet deletion (whenDeleted) and + ## scale-down (whenScaled). Each is "Retain" (the Kubernetes default) or + ## "Delete". Leaving this unset preserves current behavior. Requires + ## Kubernetes >= 1.27. + # persistentVolumeClaimRetentionPolicy: + # whenDeleted: Retain + # whenScaled: Retain ## Node labels and tolerations for pod assignment ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector @@ -422,6 +429,13 @@ alpha: - ReadWriteOnce size: 100Gi annotations: {} + ## Optionally control PVC lifecycle on StatefulSet deletion (whenDeleted) and + ## scale-down (whenScaled). Each is "Retain" (the Kubernetes default) or + ## "Delete". Leaving this unset preserves current behavior. Requires + ## Kubernetes >= 1.27. + # persistentVolumeClaimRetentionPolicy: + # whenDeleted: Retain + # whenScaled: Retain ## Node labels and tolerations for pod assignment ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector