Skip to content

Commit 2f9be3b

Browse files
authored
feat: adds support to configure persistentVolumeClaimRetentionPolicy (#121)
Signed-off-by: Gagan H R <hrgagan4@gmail.com>
1 parent f40b01c commit 2f9be3b

File tree

4 files changed

+40
-0
lines changed

4 files changed

+40
-0
lines changed

valkey/templates/statefulset.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ spec:
1212
serviceName: {{ include "valkey.fullname" . }}-headless
1313
replicas: {{ add (int .Values.replica.replicas) 1 }}
1414
podManagementPolicy: OrderedReady
15+
{{- if .Values.replica.persistentVolumeClaimRetentionPolicy }}
16+
persistentVolumeClaimRetentionPolicy:
17+
{{- toYaml .Values.replica.persistentVolumeClaimRetentionPolicy | nindent 4 }}
18+
{{- end }}
1519
selector:
1620
matchLabels:
1721
{{- include "valkey.selectorLabels" . | nindent 6 }}

valkey/tests/statefulset_test.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,3 +236,21 @@ tests:
236236
name: extra-config
237237
mountPath: /extra-config
238238
readOnly: true
239+
240+
- it: should include persistentVolumeClaimRetentionPolicy when configured
241+
set:
242+
replica.enabled: true
243+
replica.persistence.size: "5Gi"
244+
replica.persistentVolumeClaimRetentionPolicy:
245+
whenDeleted: Retain
246+
whenScaled: Delete
247+
template: templates/statefulset.yaml
248+
asserts:
249+
- isKind:
250+
of: StatefulSet
251+
- equal:
252+
path: spec.persistentVolumeClaimRetentionPolicy.whenDeleted
253+
value: Retain
254+
- equal:
255+
path: spec.persistentVolumeClaimRetentionPolicy.whenScaled
256+
value: Delete

valkey/values.schema.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,19 @@
385385
}
386386
}
387387
},
388+
"persistentVolumeClaimRetentionPolicy": {
389+
"type": "object",
390+
"properties": {
391+
"whenDeleted": {
392+
"type": "string",
393+
"enum": ["Delete", "Retain"]
394+
},
395+
"whenScaled": {
396+
"type": "string",
397+
"enum": ["Delete", "Retain"]
398+
}
399+
}
400+
},
388401
"replicas": {
389402
"type": "integer"
390403
},

valkey/values.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,11 @@ replica:
245245
accessModes:
246246
- ReadWriteOnce
247247

248+
# PersistentVolumeClaim retention policy for StatefulSet
249+
# Controls when PVCs are deleted (requires Kubernetes 1.23+)
250+
# More info: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
251+
persistentVolumeClaimRetentionPolicy: {}
252+
248253
tls:
249254
# Enable TLS
250255
enabled: false

0 commit comments

Comments
 (0)