feat: allow configure persistentVolumeClaimRetentionPolicy (#136)

Allow to specify a persistentVolumeClaimRetentionPolicy in both the primary and secondary StatefulSet.

This allows for automatic cleanup of PVCs after deletion, etc. An example use case of this is for highly dynamic test environments, where cleaning up the PVCs after deletion of the helm chart is preferred.
diff --git a/couchdb/Chart.yaml b/couchdb/Chart.yaml
index a0c49d2..c6f74c9 100644
--- a/couchdb/Chart.yaml
+++ b/couchdb/Chart.yaml
@@ -1,6 +1,6 @@
 apiVersion: v1
 name: couchdb
-version: 4.5.1
+version: 4.5.2
 appVersion: 3.3.3
 description: A database featuring seamless multi-master sync, that scales from
   big data to mobile, with an intuitive HTTP/JSON API and designed for
diff --git a/couchdb/README.md b/couchdb/README.md
index e4a3224..a4200f0 100644
--- a/couchdb/README.md
+++ b/couchdb/README.md
@@ -1,6 +1,6 @@
 # CouchDB
 
-![Version: 4.5.1](https://img.shields.io/badge/Version-4.5.1-informational?style=flat-square) ![AppVersion: 3.3.3](https://img.shields.io/badge/AppVersion-3.3.3-informational?style=flat-square)
+![Version: 4.5.2](https://img.shields.io/badge/Version-4.5.2-informational?style=flat-square) ![AppVersion: 3.3.3](https://img.shields.io/badge/AppVersion-3.3.3-informational?style=flat-square)
 
 Apache CouchDB is a database featuring seamless multi-master sync, that scales
 from big data to mobile, with an intuitive HTTP/JSON API and designed for
@@ -18,7 +18,7 @@
 ```bash
 $ helm repo add couchdb https://apache.github.io/couchdb-helm
 $ helm install couchdb/couchdb \
-  --version=4.5.1 \
+  --version=4.5.2 \
   --set allowAdminParty=true \
   --set couchdbConfig.couchdb.uuid=$(curl https://www.uuidgenerator.net/api/version4 2>/dev/null | tr -d -)
 ```
@@ -44,7 +44,7 @@
 ```bash
 $ helm install \
   --name my-release \
-  --version=4.5.1 \
+  --version=4.5.2 \
   --set couchdbConfig.couchdb.uuid=decafbaddecafbaddecafbaddecafbad \
   couchdb/couchdb
 ```
@@ -78,7 +78,7 @@
 ```bash
 $ helm install \
   --name my-release \
-  --version=4.5.1 \
+  --version=4.5.2 \
   --set createAdminSecret=false \
   --set couchdbConfig.couchdb.uuid=decafbaddecafbaddecafbaddecafbad \
   couchdb/couchdb
@@ -133,7 +133,7 @@
 
 ```bash
 $ helm repo add couchdb https://apache.github.io/couchdb-helm
-$ helm upgrade my-release --version=4.5.1 couchdb/couchdb
+$ helm upgrade my-release --version=4.5.2 couchdb/couchdb
 ```
 
 ## Configuration
@@ -194,6 +194,9 @@
 | `persistentVolume.claimName`         |                                                  |
 | `persistentVolume.volumeSource`      |                                                  |
 | `persistentVolume.annotations`       | {}                                               |
+| `persistentVolumeClaimRetentionPolicy.enabled`     | Field controls if and how PVCs are deleted during the lifecycle                                            |
+| `persistentVolumeClaimRetentionPolicy.whenScaled`  | Configures the volume retention behavior that applies when the replica count of the StatefulSet is reduced |
+| `persistentVolumeClaimRetentionPolicy.whenDeleted` | Configures the volume retention behavior that applies when the StatefulSet is deleted                      |
 | `podDisruptionBudget.enabled`        | false                                            |
 | `podDisruptionBudget.minAvailable`   | nil                                              |
 | `podDisruptionBudget.maxUnavailable` | 1                                                |
diff --git a/couchdb/templates/statefulset.yaml b/couchdb/templates/statefulset.yaml
index 619a46d..f9c7bcf 100644
--- a/couchdb/templates/statefulset.yaml
+++ b/couchdb/templates/statefulset.yaml
@@ -236,6 +236,11 @@
             claimName: {{ $claim.claimName }}
         {{- end }}
 {{- else }}
+{{- if .Values.persistentVolumeClaimRetentionPolicy.enabled }}
+  persistentVolumeClaimRetentionPolicy:
+    whenDeleted: {{ .Values.persistentVolumeClaimRetentionPolicy.whenDeleted }}
+    whenScaled: {{ .Values.persistentVolumeClaimRetentionPolicy.whenScaled }}
+{{- end }}
   volumeClaimTemplates:
     - metadata:
         {{- include "persistentVolume.metadata" (dict "context" .) | nindent 8 }}
diff --git a/couchdb/values.yaml b/couchdb/values.yaml
index 5f65795..30941c5 100644
--- a/couchdb/values.yaml
+++ b/couchdb/values.yaml
@@ -75,6 +75,15 @@
   size: 10Gi
   # storageClass: "-"
 
+# Experimental - FEATURE STATE: Kubernetes v1.27 [beta]
+# Field controls if and how PVCs are deleted during the lifecycle
+# of a StatefulSet
+# ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
+persistentVolumeClaimRetentionPolicy:
+  enabled: false
+  whenScaled: Retain
+  whenDeleted: Retain
+
 ## The CouchDB image
 image:
   repository: couchdb
diff --git a/test/e2e-kind.sh b/test/e2e-kind.sh
index 525c8ee..35ac2ea 100755
--- a/test/e2e-kind.sh
+++ b/test/e2e-kind.sh
@@ -11,7 +11,7 @@
 
 run_ct_container() {
     echo 'Running ct container...'
-    docker run --rm --interactive --detach --network host --name ct \
+    docker run --rm --interactive --detach --network host --name ct --userns=host \
         --volume "$(pwd)/test/ct.yaml:/etc/ct/ct.yaml" \
         --volume "$(pwd):/workdir" \
         --workdir /workdir \