diff --git a/charts/ceph-csi-rbd/templates/provisioner-deployment.yaml b/charts/ceph-csi-rbd/templates/provisioner-deployment.yaml index cf72883f4..a92e17368 100644 --- a/charts/ceph-csi-rbd/templates/provisioner-deployment.yaml +++ b/charts/ceph-csi-rbd/templates/provisioner-deployment.yaml @@ -11,6 +11,12 @@ metadata: heritage: {{ .Release.Service }} spec: replicas: {{ .Values.provisioner.replicaCount }} + strategy: + type: {{ .Values.provisioner.strategy.type }} +{{- if eq .Values.provisioner.strategy.type "RollingUpdate" }} + rollingUpdate: + maxUnavailable: {{ .Values.provisioner.strategy.rollingUpdate.maxUnavailable }} +{{- end }} selector: matchLabels: app: {{ include "ceph-csi-rbd.name" . }} diff --git a/charts/ceph-csi-rbd/values.yaml b/charts/ceph-csi-rbd/values.yaml index e40877287..782c2ac0c 100644 --- a/charts/ceph-csi-rbd/values.yaml +++ b/charts/ceph-csi-rbd/values.yaml @@ -117,6 +117,14 @@ nodeplugin: provisioner: name: provisioner replicaCount: 3 + strategy: + # RollingUpdate strategy replaces old pods with new ones gradually, + # without incurring downtime. + type: RollingUpdate + rollingUpdate: + # maxUnavailable is the maximum number of pods that can be + # unavailable during the update process. + maxUnavailable: 50% # if fstype is not specified in storageclass, ext4 is default defaultFSType: ext4 # deployController to enable or disable the deployment of controller which