diff --git a/charts/elasticsearch/Chart.yaml b/charts/elasticsearch/Chart.yaml
index e2a386d238d516078d0e550653d9daee774c0984..27ff65433d031079f4b4e26821bbfe470737a6c8 100644
--- a/charts/elasticsearch/Chart.yaml
+++ b/charts/elasticsearch/Chart.yaml
@@ -7,6 +7,6 @@ type: application
 maintainers:
   - name: groundhog2k
 
-version: 0.1.102
+version: 0.1.103
 
 appVersion: 7.10.2
diff --git a/charts/elasticsearch/README.md b/charts/elasticsearch/README.md
index bc10688ee9879e1963d1bdc12680201cb58736d5..6da3c54a9c1babb8df977243be16461ac251892b 100644
--- a/charts/elasticsearch/README.md
+++ b/charts/elasticsearch/README.md
@@ -1,6 +1,6 @@
 # Elasticsearch
 
-![Version: 0.1.102](https://img.shields.io/badge/Version-0.1.102-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 7.10.2](https://img.shields.io/badge/AppVersion-7.10.2-informational?style=flat-square)
+![Version: 0.1.103](https://img.shields.io/badge/Version-0.1.103-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 7.10.2](https://img.shields.io/badge/AppVersion-7.10.2-informational?style=flat-square)
 
 A Helm chart for Elasticsearch on Kubernetes
 
@@ -76,7 +76,7 @@ $ helm uninstall my-release
 | tolerations | list | `[]` | Pod tolerations |
 | podManagementPolicy | string | `OrderedReady` | Pod management policy |
 | updateStrategyType | string | `RollingUpdate` | Update strategy |
-| replicaCount | int | `1` | Number of replicas (Not supported - Don't change in this chart version) |
+| revisionHistoryLimit | int | `nil` | Maximum number of revisions maintained in revision history
 
 ## Service paramters
 
diff --git a/charts/elasticsearch/templates/statefulset.yaml b/charts/elasticsearch/templates/statefulset.yaml
index 3da552f0100eb602a0c668ea113f31d414b2021a..e394638cc3248d11dd512f59bcbc22c1257ffd5a 100644
--- a/charts/elasticsearch/templates/statefulset.yaml
+++ b/charts/elasticsearch/templates/statefulset.yaml
@@ -7,7 +7,10 @@ metadata:
 spec:
   serviceName: {{ include "elasticsearch.fullname" . }}-internal
   podManagementPolicy: {{ .Values.podManagementPolicy }}      
-  replicas: {{ .Values.replicaCount }}
+  replicas: 1
+  {{- if .Values.revisionHistoryLimit }}
+  revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
+  {{- end }}
   updateStrategy: 
     type: {{ .Values.updateStrategyType }}
   selector:
diff --git a/charts/elasticsearch/values.yaml b/charts/elasticsearch/values.yaml
index de69c462295f636b635fa442edad13d9c540438e..1c137cdc857adc5d8ab6e3b6dc3b91759469647e 100644
--- a/charts/elasticsearch/values.yaml
+++ b/charts/elasticsearch/values.yaml
@@ -21,10 +21,11 @@ serviceAccount:
 
 podAnnotations: {}
 
-## Management policy, update strategy and number of replicas
+## Pod management policy
 podManagementPolicy: OrderedReady
+
+## Pod update strategy
 updateStrategyType: RollingUpdate
-replicaCount: 1
 
 podSecurityContext:
   fsGroup: 1000
@@ -88,6 +89,8 @@ tolerations: []
 
 affinity: {}
 
+## Maximum number of revisions maintained in revision history
+revisionHistoryLimit:
 
 ## Custom liveness probe (overwrites default liveness probe)
 customLivenessProbe: {}
diff --git a/charts/graylog/Chart.yaml b/charts/graylog/Chart.yaml
index 3dc78915a242b8cf026e3b3ebc4f1ca11fc66526..2ee12f8f59d655fc4cbc6fb01a3453afc4d0c8e7 100644
--- a/charts/graylog/Chart.yaml
+++ b/charts/graylog/Chart.yaml
@@ -7,7 +7,7 @@ type: application
 maintainers:
   - name: groundhog2k
 
-version: 0.1.16
+version: 0.1.17
 
 appVersion: "4.0.6"
 
diff --git a/charts/graylog/README.md b/charts/graylog/README.md
index afbc4774588e663daee0cfc2bc148161c0a66fb4..71ebaff9a95eb044d2dceb586c1316bedf8dc12e 100644
--- a/charts/graylog/README.md
+++ b/charts/graylog/README.md
@@ -1,6 +1,6 @@
 # Graylog
 
-![Version: 0.1.16](https://img.shields.io/badge/Version-0.1.16-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 4.0.6](https://img.shields.io/badge/AppVersion-4.0.6-informational?style=flat-square)
+![Version: 0.1.17](https://img.shields.io/badge/Version-0.1.17-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 4.0.6](https://img.shields.io/badge/AppVersion-4.0.6-informational?style=flat-square)
 
 A Helm chart for Graylog on Kubernetes
 
@@ -81,6 +81,10 @@ $ helm uninstall my-release
 | podManagementPolicy | string | `OrderedReady` | Pod management policy |
 | updateStrategyType | string | `RollingUpdate` | Update strategy |
 | replicaCount | int | `1` | Number of replicas (Not supported - Don't change in this chart version) |
+| revisionHistoryLimit | int | `nil` | Maximum number of revisions maintained in revision history
+| podDisruptionBudget | object | `{}` | Pod disruption budget |
+| podDisruptionBudget.minAvailable | int | `nil` | Minimum number of pods that must be available after eviction |
+| podDisruptionBudget.maxUnavailable | int | `nil` | Maximum number of pods that can be unavailable after eviction |
 
 ## Service paramters
 
diff --git a/charts/graylog/templates/pdp.yaml b/charts/graylog/templates/pdp.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..cfc40797c066c5ba0eef09d98f70c04b4729db5e
--- /dev/null
+++ b/charts/graylog/templates/pdp.yaml
@@ -0,0 +1,22 @@
+{{- if and (.Values.podDisruptionBudget) (or .Values.podDisruptionBudget.minAvailable .Values.podDisruptionBudget.maxUnavailable) }}
+{{- if semverCompare ">=1.21" .Capabilities.KubeVersion.Version }}
+apiVersion: policy/v1
+{{- else }}
+apiVersion: policy/v1beta1
+{{- end }}
+kind: PodDisruptionBudget
+metadata:
+  name: {{ include "graylog.fullname" . }}
+  labels:
+    {{- include "graylog.labels" . | nindent 4 }}
+spec:
+  {{- if .Values.podDisruptionBudget.minAvailable }}
+  minAvailable: {{ .Values.podDisruptionBudget.minAvailable }}
+  {{- end  }}
+  {{- if .Values.podDisruptionBudget.maxUnavailable }}
+  maxUnavailable: {{ .Values.podDisruptionBudget.maxUnavailable }}
+  {{- end  }}
+  selector:
+    matchLabels:
+      {{- include "graylog.selectorLabels" . | nindent 6 }}
+{{- end }}
diff --git a/charts/graylog/templates/statefulset.yaml b/charts/graylog/templates/statefulset.yaml
index 27d5aca32d8d15d8e8dc653af57a369c5439e0b8..cab07dceb98b7ce63c5586db7222edf9d995e87d 100644
--- a/charts/graylog/templates/statefulset.yaml
+++ b/charts/graylog/templates/statefulset.yaml
@@ -11,6 +11,9 @@ spec:
   serviceName: {{ include "graylog.fullname" . }}-internal
   podManagementPolicy: {{ .Values.podManagementPolicy }}      
   replicas: {{ .Values.replicaCount }}
+  {{- if .Values.revisionHistoryLimit }}
+  revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
+  {{- end }}
   updateStrategy: 
     type: {{ .Values.updateStrategyType }}    
   template:
diff --git a/charts/graylog/values.yaml b/charts/graylog/values.yaml
index 8ed86777ad9fceacda98a913ac6b6a96c00728cc..55a898b1577fe7534138b60a1fe265cfed0748fb 100644
--- a/charts/graylog/values.yaml
+++ b/charts/graylog/values.yaml
@@ -29,9 +29,13 @@ serviceAccount:
 
 podAnnotations: {}
 
-## Management policy, update strategy and number of replicas
+## Pod management policy
 podManagementPolicy: OrderedReady
+
+## Pod update strategy
 updateStrategyType: RollingUpdate
+
+## Number of replicas
 replicaCount: 1
 
 ## Pod security options (default: Graylog as fsGroup)
@@ -113,6 +117,16 @@ tolerations: []
 
 affinity: {}
 
+## Maximum number of revisions maintained in revision history
+revisionHistoryLimit:
+
+## Pod disruption budget
+podDisruptionBudget: {}
+  ## Minimum number of pods that must be available after eviction
+  # minAvailable:
+  ## Maximum number of pods that can be unavailable after eviction
+  # maxUnavailable:
+
 ## Custom liveness probe (overwrites default liveness probe)
 customLivenessProbe: {}
 
diff --git a/charts/mariadb/Chart.yaml b/charts/mariadb/Chart.yaml
index 7c9b1211bb4f1f9543e99c666c6bbb0e69d2fdc1..f8a3bb15dd4b69c2e04c1c371726be5f81f2bfe8 100644
--- a/charts/mariadb/Chart.yaml
+++ b/charts/mariadb/Chart.yaml
@@ -7,6 +7,6 @@ type: application
 maintainers:
   - name: groundhog2k
 
-version: 0.2.10
+version: 0.2.11
 
 appVersion: "10.5.9"
diff --git a/charts/mariadb/README.md b/charts/mariadb/README.md
index 31fb80aa170308264d6dcf3030dda475de84a4ce..18f1d1872cad12df18d518d5a02fc815f58fa93d 100644
--- a/charts/mariadb/README.md
+++ b/charts/mariadb/README.md
@@ -1,6 +1,6 @@
 # MariaDB
 
-![Version: 0.2.10](https://img.shields.io/badge/Version-0.2.10-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.5.9](https://img.shields.io/badge/AppVersion-10.5.9-informational?style=flat-square)
+![Version: 0.2.11](https://img.shields.io/badge/Version-0.2.11-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.5.9](https://img.shields.io/badge/AppVersion-10.5.9-informational?style=flat-square)
 
 A Helm chart for MariaDB on Kubernetes
 
@@ -69,6 +69,9 @@ $ helm uninstall my-release
 | serviceAccount.name | string | `""` | Name of the service account |
 | affinity | object | `{}` | Affinity for pod assignment |
 | tolerations | list | `[]` | Tolerations for pod assignment |
+| podManagementPolicy | string | `"OrderedReady"` | Pod management policy |
+| updateStrategyType | string | `"RollingUpdate"` | Pod update strategy |
+| revisionHistoryLimit | int | `nil` | Maximum number of revisions maintained in revision history
 
 ## Service paramters
 
diff --git a/charts/mariadb/templates/statefulset.yaml b/charts/mariadb/templates/statefulset.yaml
index f0a6d069b502d0e08e1ecab70b3609fe915c4526..e46ee5dd7e71b8c89ab392621356baafbe5fb53b 100644
--- a/charts/mariadb/templates/statefulset.yaml
+++ b/charts/mariadb/templates/statefulset.yaml
@@ -6,7 +6,13 @@ metadata:
     {{- include "mariadb.labels" . | nindent 4 }}
 spec:
   replicas: 1
+  {{- if .Values.revisionHistoryLimit }}
+  revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
+  {{- end }}
   serviceName: {{ include "mariadb.fullname" . }}
+  podManagementPolicy: {{ .Values.podManagementPolicy }}
+  updateStrategy: 
+    type: {{ .Values.updateStrategyType }}
   selector:
     matchLabels:
       {{- include "mariadb.selectorLabels" . | nindent 6 }}
diff --git a/charts/mariadb/values.yaml b/charts/mariadb/values.yaml
index c983ad5339cc319339035697bfe44f9e20c34d18..a36f0c09c914f4757eb88fd5e59554ea3e9844a9 100644
--- a/charts/mariadb/values.yaml
+++ b/charts/mariadb/values.yaml
@@ -28,6 +28,12 @@ nodeSelector: {}
 ## Additional pod annotations
 podAnnotations: {}
 
+## Pod management policy
+podManagementPolicy: OrderedReady
+
+## Pod update strategy
+updateStrategyType: RollingUpdate
+
 ## Pod security options
 podSecurityContext:
   fsGroup: 999
@@ -65,6 +71,9 @@ tolerations: []
 
 affinity: {}
 
+## Maximum number of revisions maintained in revision history
+revisionHistoryLimit:
+
 ## Custom liveness probe (overwrites default liveness probe)
 customLivenessProbe: {}
 
diff --git a/charts/metrics-server/Chart.yaml b/charts/metrics-server/Chart.yaml
index 66c7e1f3e51ea4c8da0f6060d3de3aa70b61b42e..a0055417eefad9763c55c76f4a31fa836e087700 100644
--- a/charts/metrics-server/Chart.yaml
+++ b/charts/metrics-server/Chart.yaml
@@ -7,7 +7,7 @@ type: application
 maintainers:
   - name: groundhog2k
 
-version: 2.12.6
+version: 2.12.7
 
 appVersion: "v0.4.4"
 
diff --git a/charts/metrics-server/README.md b/charts/metrics-server/README.md
index 79ba4e14ddcd18978925526b2f3733d9588cdeca..b147e89af2f508aa499ddf4f3606a445571fadea 100644
--- a/charts/metrics-server/README.md
+++ b/charts/metrics-server/README.md
@@ -1,6 +1,6 @@
 # metrics-server
 
-![Version: 2.12.6](https://img.shields.io/badge/Version-2.12.6-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.4.4](https://img.shields.io/badge/AppVersion-0.4.4-informational?style=flat-square)
+![Version: 2.12.7](https://img.shields.io/badge/Version-2.12.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.4.4](https://img.shields.io/badge/AppVersion-0.4.4-informational?style=flat-square)
 
 [Metrics Server](https://github.com/kubernetes-incubator/metrics-server) is a cluster-wide aggregator of resource usage data. Resource metrics are used by components like `kubectl top` and the [Horizontal Pod Autoscaler](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale) to scale workloads. To autoscale based upon a custom metric, see the [Prometheus Adapter chart](https://github.com/helm/charts/blob/master/stable/prometheus-adapter).
 
diff --git a/charts/metrics-server/templates/pdb.yaml b/charts/metrics-server/templates/pdb.yaml
index 0ebe5bf158d1e0970d6ef4cfe90c8ef1aeaec477..79c36e93a80f24002a434226cc3edf34e282cdc3 100644
--- a/charts/metrics-server/templates/pdb.yaml
+++ b/charts/metrics-server/templates/pdb.yaml
@@ -1,7 +1,7 @@
-{{- if .Values.podDisruptionBudget.enabled -}}
-{{- if semverCompare ">=1.21" .Capabilities.KubeVersion.Version -}}
+{{- if .Values.podDisruptionBudget.enabled }}
+{{- if semverCompare ">=1.21" .Capabilities.KubeVersion.Version }}
 apiVersion: policy/v1
-{{- else -}}
+{{- else }}
 apiVersion: policy/v1beta1
 {{- end }}
 kind: PodDisruptionBudget
@@ -23,4 +23,4 @@ spec:
   selector:
     matchLabels:
       app: {{ template "metrics-server.name" . }}
-{{- end -}}
+{{- end }}
diff --git a/charts/mongodb/Chart.yaml b/charts/mongodb/Chart.yaml
index 1523e113b6e243fe1b3de9ca259ef9765d8348c2..73395f78ddf1a4a653da95137ca8d4e2c0ff21c0 100644
--- a/charts/mongodb/Chart.yaml
+++ b/charts/mongodb/Chart.yaml
@@ -7,6 +7,6 @@ type: application
 maintainers:
   - name: groundhog2k
 
-version: 0.2.11
+version: 0.2.12
 
 appVersion: "4.2.13"
diff --git a/charts/mongodb/README.md b/charts/mongodb/README.md
index 3542d1a8485a7bc822bffc2a01bfd590cda4eecf..3d09b96134b7ebf71936e5121897f153c5075f42 100644
--- a/charts/mongodb/README.md
+++ b/charts/mongodb/README.md
@@ -1,6 +1,6 @@
 # MongoDB
 
-![Version: 0.2.11](https://img.shields.io/badge/Version-0.2.11-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 4.2.13](https://img.shields.io/badge/AppVersion-4.2.13-informational?style=flat-square)
+![Version: 0.2.12](https://img.shields.io/badge/Version-0.2.12-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 4.2.13](https://img.shields.io/badge/AppVersion-4.2.13-informational?style=flat-square)
 
 A Helm chart for MongoDB on Kubernetes
 
@@ -72,7 +72,7 @@ $ helm uninstall my-release
 | tolerations | list | `[]` | Pod tolerations |
 | podManagementPolicy | string | `OrderedReady` | Pod management policy |
 | updateStrategyType | string | `RollingUpdate` | Update strategy |
-| replicaCount | int | `1` | Number of replicas (Not supported - Don't change in this chart version) |
+| revisionHistoryLimit | int | `nil` | Maximum number of revisions maintained in revision history
 
 ## Service paramters
 
diff --git a/charts/mongodb/templates/statefulset.yaml b/charts/mongodb/templates/statefulset.yaml
index 981134b69ed178758ed91155a1e9aaf299c9cb40..85ecbb6b848b74e8df25899f4908c6257b8c055a 100644
--- a/charts/mongodb/templates/statefulset.yaml
+++ b/charts/mongodb/templates/statefulset.yaml
@@ -10,7 +10,10 @@ spec:
       {{- include "mongodb.selectorLabels" . | nindent 6 }}
   serviceName: {{ include "mongodb.fullname" . }}-internal
   podManagementPolicy: {{ .Values.podManagementPolicy }}
-  replicas: {{ .Values.replicaCount }}
+  replicas: 1
+  {{- if .Values.revisionHistoryLimit }}
+  revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
+  {{- end }}
   updateStrategy: 
     type: {{ .Values.updateStrategyType }}  
   template:
diff --git a/charts/mongodb/values.yaml b/charts/mongodb/values.yaml
index 926d2204f600efbf459acfa8e95cea0a217cc41e..91919943e1e884289bf90ed856c1755506792f00 100644
--- a/charts/mongodb/values.yaml
+++ b/charts/mongodb/values.yaml
@@ -28,10 +28,11 @@ podAnnotations: {}
 podSecurityContext:
   fsGroup: 999
 
-## Don't touch - no other options supported in this chart version
+## Pod management policy
 podManagementPolicy: OrderedReady
+
+## Pod update strategy
 updateStrategyType: RollingUpdate
-replicaCount: 1
 
 ## Default security options to run Redis as non-root, read only container without privilege escalation
 securityContext:
@@ -94,6 +95,9 @@ tolerations: []
 ## Pod affinity
 affinity: {}
 
+## Maximum number of revisions maintained in revision history
+revisionHistoryLimit:
+
 ## Additional arguments for the container entrypoint process
 args: []
 
diff --git a/charts/postgres/Chart.yaml b/charts/postgres/Chart.yaml
index 4e2beb51271f1f6d65d01b696b4aa2af57c25b46..d1b6b705b8ba58595466d9b4fbd930aba0edea6c 100644
--- a/charts/postgres/Chart.yaml
+++ b/charts/postgres/Chart.yaml
@@ -7,6 +7,6 @@ type: application
 maintainers:
   - name: groundhog2k
 
-version: 0.2.9
+version: 0.2.10
 
 appVersion: "13.2"
diff --git a/charts/postgres/README.md b/charts/postgres/README.md
index 89abedc8ad809ad05f6e2a7c316fb68553d82e9e..c6ae26579dbe8df430805a874ca5bc93d8190446 100644
--- a/charts/postgres/README.md
+++ b/charts/postgres/README.md
@@ -1,6 +1,6 @@
 # PostgreSQL
 
-![Version: 0.2.9](https://img.shields.io/badge/Version-0.2.9-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 13.2](https://img.shields.io/badge/AppVersion-13.2-informational?style=flat-square)
+![Version: 0.2.10](https://img.shields.io/badge/Version-0.2.10-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 13.2](https://img.shields.io/badge/AppVersion-13.2-informational?style=flat-square)
 
 A Helm chart for PostgreSQL on Kubernetes
 
@@ -71,6 +71,9 @@ $ helm uninstall my-release
 | serviceAccount.name | string | `""` | Name of the service account |
 | affinity | object | `{}` |  |
 | tolerations | list | `[]` |  |
+| podManagementPolicy | string | `"OrderedReady"` | Pod management policy |
+| updateStrategyType | string | `"RollingUpdate"` | Pod update strategy |
+| revisionHistoryLimit | int | `nil` | Maximum number of revisions maintained in revision history
 
 ## Service paramters
 
diff --git a/charts/postgres/templates/statefulset.yaml b/charts/postgres/templates/statefulset.yaml
index 9f6a2028f6c09d417b6630299174c8d8eb45de44..30b2a6ad48aedf553e37175f7b7a3714fcaeaa4c 100644
--- a/charts/postgres/templates/statefulset.yaml
+++ b/charts/postgres/templates/statefulset.yaml
@@ -6,7 +6,14 @@ metadata:
     {{- include "postgres.labels" . | nindent 4 }}
 spec:
   replicas: 1
+  {{- if .Values.revisionHistoryLimit }}
+  revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
+  {{- end }}
   serviceName: {{ include "postgres.fullname" . }}
+  podManagementPolicy: {{ .Values.podManagementPolicy }}
+  updateStrategy: 
+    type: {{ .Values.updateStrategyType }}
+  selector:
   selector:
     matchLabels:
       {{- include "postgres.selectorLabels" . | nindent 6 }}
diff --git a/charts/postgres/values.yaml b/charts/postgres/values.yaml
index 35e2b93109e3922c8f54c715e4998e4c6d178ec7..66f8abd7fa9289424a186b9cbde1ee22d5b5a97a 100644
--- a/charts/postgres/values.yaml
+++ b/charts/postgres/values.yaml
@@ -25,6 +25,12 @@ serviceAccount:
 ## Additional pod annotations
 podAnnotations: {}
 
+## Pod management policy
+podManagementPolicy: OrderedReady
+
+## Pod update strategy
+updateStrategyType: RollingUpdate
+
 ## Pod security context uses file system group 999 (postgres)
 podSecurityContext:
   fsGroup: 999
@@ -64,6 +70,9 @@ tolerations: []
 
 affinity: {}
 
+## Maximum number of revisions maintained in revision history
+revisionHistoryLimit:
+
 ## Custom liveness probe (overwrites default liveness probe)
 customLivenessProbe: {}
 
diff --git a/charts/rabbitmq/Chart.yaml b/charts/rabbitmq/Chart.yaml
index ec14ad3990ebf04a4c93a5de5698bc6a0a420b8e..076a4e317ec35829eacff5b0a4d510ae9c3da621 100644
--- a/charts/rabbitmq/Chart.yaml
+++ b/charts/rabbitmq/Chart.yaml
@@ -7,6 +7,6 @@ type: application
 maintainers:
   - name: groundhog2k
 
-version: 0.2.15
+version: 0.2.16
 
 appVersion: "3.8.15"
diff --git a/charts/rabbitmq/README.md b/charts/rabbitmq/README.md
index 8836817b764f7b646a8893ba63d5ca8c90c5150e..58424e10addab3fc2d094812b4a9b6de33d78d97 100644
--- a/charts/rabbitmq/README.md
+++ b/charts/rabbitmq/README.md
@@ -1,6 +1,6 @@
 # RabbitMQ
 
-![Version: 0.2.15](https://img.shields.io/badge/Version-0.2.15-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.8.15](https://img.shields.io/badge/AppVersion-3.8.15-informational?style=flat-square)
+![Version: 0.2.16](https://img.shields.io/badge/Version-0.2.16-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.8.15](https://img.shields.io/badge/AppVersion-3.8.15-informational?style=flat-square)
 
 A Helm chart for a RabbitMQ cluster on Kubernetes
 
@@ -66,13 +66,18 @@ $ helm uninstall my-release
 | env | list | `[]` | Additional container environmment variables |
 | args | list | `[]` | Additional container command arguments |
 | rbac.create | bool | `true` | Enable creation of RBAC |
-| serviceAccount.create | bool | `false` | Enable service account creation |
+| serviceAccount.annotations | object | `{}` | Additional service account annotations |
+| serviceAccount.create | bool | `true` | Enable service account creation |
 | serviceAccount.name | string | `""` | Optional name of the service account |
 | affinity | object | `{}` | Affinity for pod assignment |
 | tolerations | list | `[]` | Tolerations for pod assignment |
 | podManagementPolicy | string | `"OrderedReady"` | Pod management policy |
 | updateStrategyType | string | `"RollingUpdate"` | Pod update strategy |
 | replicaCount | int | `1` | Number of replicas |
+| revisionHistoryLimit | int | `nil` | Maximum number of revisions maintained in revision history
+| podDisruptionBudget | object | `{}` | Pod disruption budget |
+| podDisruptionBudget.minAvailable | int | `nil` | Minimum number of pods that must be available after eviction |
+| podDisruptionBudget.maxUnavailable | int | `nil` | Maximum number of pods that can be unavailable after eviction |
 
 ## Service paramters
 
diff --git a/charts/rabbitmq/templates/pdp.yaml b/charts/rabbitmq/templates/pdp.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..c5c2f0adca300471de2047934c18373a17a82b21
--- /dev/null
+++ b/charts/rabbitmq/templates/pdp.yaml
@@ -0,0 +1,22 @@
+{{- if and (.Values.podDisruptionBudget) (or .Values.podDisruptionBudget.minAvailable .Values.podDisruptionBudget.maxUnavailable) }}
+{{- if semverCompare ">=1.21" .Capabilities.KubeVersion.Version }}
+apiVersion: policy/v1
+{{- else }}
+apiVersion: policy/v1beta1
+{{- end }}
+kind: PodDisruptionBudget
+metadata:
+  name: {{ include "rabbitmq.fullname" . }}
+  labels:
+    {{- include "rabbitmq.labels" . | nindent 4 }}
+spec:
+  {{- if .Values.podDisruptionBudget.minAvailable }}
+  minAvailable: {{ .Values.podDisruptionBudget.minAvailable }}
+  {{- end  }}
+  {{- if .Values.podDisruptionBudget.maxUnavailable }}
+  maxUnavailable: {{ .Values.podDisruptionBudget.maxUnavailable }}
+  {{- end  }}
+  selector:
+    matchLabels:
+      {{- include "rabbitmq.selectorLabels" . | nindent 6 }}
+{{- end }}
diff --git a/charts/rabbitmq/templates/serviceaccount.yaml b/charts/rabbitmq/templates/serviceaccount.yaml
index ac0df972f517f91abb67228029ffbd306b92006c..e33e46ba7ae567bf10bd55036e79b2b8609a9829 100644
--- a/charts/rabbitmq/templates/serviceaccount.yaml
+++ b/charts/rabbitmq/templates/serviceaccount.yaml
@@ -3,7 +3,12 @@ apiVersion: v1
 kind: ServiceAccount
 metadata:
   name: {{ include "rabbitmq.serviceAccountName" . }}
-  labels: {{- include "rabbitmq.labels" . | nindent 4 }}
+  labels: 
+    {{- include "rabbitmq.labels" . | nindent 4 }}
+  {{- with .Values.serviceAccount.annotations }}
+  annotations:
+    {{- toYaml . | nindent 4 }}
+  {{- end }}
 secrets:
   - name: {{ include "rabbitmq.fullname" . }}
-{{- end }}
\ No newline at end of file
+{{- end }}
diff --git a/charts/rabbitmq/templates/statefulset.yaml b/charts/rabbitmq/templates/statefulset.yaml
index df001b72c4ccf6f3f1dadd69726a82c18a74b71b..3d2afea3d822a5cb7b605d412bfbb68cae93013a 100644
--- a/charts/rabbitmq/templates/statefulset.yaml
+++ b/charts/rabbitmq/templates/statefulset.yaml
@@ -11,7 +11,10 @@ spec:
   serviceName: {{ include "rabbitmq.fullname" . }}-internal
   podManagementPolicy: {{ .Values.podManagementPolicy }}
   replicas: {{ .Values.replicaCount }}
-  updateStrategy: 
+  {{- if .Values.revisionHistoryLimit }}
+  revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
+  {{- end }}
+  updateStrategy:
     type: {{ .Values.updateStrategyType }}
   template:
     metadata:
diff --git a/charts/rabbitmq/values.yaml b/charts/rabbitmq/values.yaml
index b499d0fdad5b0b670e2ecd03b6cecb77c37394da..00b4c26561914b4e331e8825e5a63dfe2954aa03 100644
--- a/charts/rabbitmq/values.yaml
+++ b/charts/rabbitmq/values.yaml
@@ -28,8 +28,10 @@ podAnnotations: {}
 podSecurityContext:
   fsGroup: 999
 
+## Pod management policy
 podManagementPolicy: OrderedReady
 
+## Pod update strategy
 updateStrategyType: RollingUpdate
 
 ## Default security options to run RabbitMq as read only container without privilege escalation
@@ -93,6 +95,16 @@ nodeSelector: {}
 tolerations: []
 affinity: {}
 
+## Maximum number of revisions maintained in revision history
+revisionHistoryLimit:
+
+## Pod disruption budget
+podDisruptionBudget: {}
+  ## Minimum number of pods that must be available after eviction
+  # minAvailable:
+  ## Maximum number of pods that can be unavailable after eviction
+  # maxUnavailable:
+
 ## Custom liveness probe (overwrites default liveness probe)
 customLivenessProbe: {}
 
@@ -120,8 +132,10 @@ readinessProbe:
 ## Service account (necessary in cluster mode)
 serviceAccount:
   create: true
-  ## The name of the ServiceAccount to use. (If not set and create is true, a name is generated using the rabbitmq.fullname template)
-  # name:
+  # Annotations to add to the service account
+  annotations: {}
+  # The name of the ServiceAccount to use. (If not set and create is true, a name is generated using the rabbitmq.fullname template)
+  name: ""
 
 ## Create RBAC (necessary in cluster mode)
 rbac:
diff --git a/charts/redis/Chart.yaml b/charts/redis/Chart.yaml
index 9d1637bde433871262102f694414b525ffbef421..bc34388ac58ff2a721934b460f9a8faaa8c41ce9 100644
--- a/charts/redis/Chart.yaml
+++ b/charts/redis/Chart.yaml
@@ -8,7 +8,7 @@ maintainers:
   - name: groundhog2k
 
 # This is the chart version
-version: 0.4.3
+version: 0.4.4
 
 # This is the version number of the application being deployed.
 appVersion: "6.2.3"
diff --git a/charts/redis/README.md b/charts/redis/README.md
index 1dd2dc0dd38903b142aaa46713cd5facf09d38bb..05db9825ba0118e0e37cc821a458c629df0c2a0c 100644
--- a/charts/redis/README.md
+++ b/charts/redis/README.md
@@ -1,6 +1,6 @@
 # Redis
 
-![Version: 0.4.3](https://img.shields.io/badge/Version-0.4.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.2.3](https://img.shields.io/badge/AppVersion-6.2.3-informational?style=flat-square)
+![Version: 0.4.4](https://img.shields.io/badge/Version-0.4.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.2.3](https://img.shields.io/badge/AppVersion-6.2.3-informational?style=flat-square)
 
 A Helm chart for Redis on Kubernetes
 
@@ -107,6 +107,10 @@ $ helm uninstall my-release
 | tolerations | list | `[]` | Tolerations for pod assignment |
 | podManagementPolicy | string | `"OrderedReady"` | Pod management policy |
 | updateStrategyType | string | `"RollingUpdate"` | Pod update strategy |
+| revisionHistoryLimit | int | `nil` | Maximum number of revisions maintained in revision history
+| podDisruptionBudget | object | `{}` | Pod disruption budget |
+| podDisruptionBudget.minAvailable | int | `nil` | Minimum number of pods that must be available after eviction |
+| podDisruptionBudget.maxUnavailable | int | `nil` | Maximum number of pods that can be unavailable after eviction |
 
 ## Service paramters
 
diff --git a/charts/redis/templates/pdp.yaml b/charts/redis/templates/pdp.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..bec0d88c4f5cbed8f92c5709f7539e0e4009156d
--- /dev/null
+++ b/charts/redis/templates/pdp.yaml
@@ -0,0 +1,22 @@
+{{- if and (.Values.podDisruptionBudget) (or .Values.podDisruptionBudget.minAvailable .Values.podDisruptionBudget.maxUnavailable) }}
+{{- if semverCompare ">=1.21" .Capabilities.KubeVersion.Version }}
+apiVersion: policy/v1
+{{- else }}
+apiVersion: policy/v1beta1
+{{- end }}
+kind: PodDisruptionBudget
+metadata:
+  name: {{ include "redis.fullname" . }}
+  labels:
+    {{- include "redis.labels" . | nindent 4 }}
+spec:
+  {{- if .Values.podDisruptionBudget.minAvailable }}
+  minAvailable: {{ .Values.podDisruptionBudget.minAvailable }}
+  {{- end  }}
+  {{- if .Values.podDisruptionBudget.maxUnavailable }}
+  maxUnavailable: {{ .Values.podDisruptionBudget.maxUnavailable }}
+  {{- end  }}
+  selector:
+    matchLabels:
+      {{- include "redis.selectorLabels" . | nindent 6 }}
+{{- end }}
diff --git a/charts/redis/templates/statefulset.yaml b/charts/redis/templates/statefulset.yaml
index bb5dcd026d378a30fae1180fea53c20776006cbd..b080d16e683efd8eaea0de3b6213b819ea5b8418 100644
--- a/charts/redis/templates/statefulset.yaml
+++ b/charts/redis/templates/statefulset.yaml
@@ -10,6 +10,9 @@ spec:
   {{- else }}
   replicas: 1
   {{- end }}
+  {{- if .Values.revisionHistoryLimit }}
+  revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
+  {{- end }}
   serviceName: {{ include "redis.fullname" . }}
   podManagementPolicy: {{ .Values.podManagementPolicy }}
   updateStrategy: 
diff --git a/charts/redis/values.yaml b/charts/redis/values.yaml
index 70bc1ecb7da9415e69ffd34e30062b0f16f05db9..985ccdce40c1af7bcaad6e457773bc7a4e53c357 100644
--- a/charts/redis/values.yaml
+++ b/charts/redis/values.yaml
@@ -84,6 +84,16 @@ tolerations: []
 
 affinity: {}
 
+## Maximum number of revisions maintained in revision history
+revisionHistoryLimit:
+
+## Pod disruption budget
+podDisruptionBudget: {}
+  ## Minimum number of pods that must be available after eviction
+  # minAvailable:
+  ## Maximum number of pods that can be unavailable after eviction
+  # maxUnavailable:
+
 ## Custom liveness probe (overwrites default liveness probe)
 customLivenessProbe: {}