diff --git a/couchdb/Chart.yaml b/couchdb/Chart.yaml index 1de5fa8..76e58d4 100644 --- a/couchdb/Chart.yaml +++ b/couchdb/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: couchdb -version: 4.3.1 +version: 4.4.0 appVersion: 3.3.2 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 5175d25..569837f 100644 --- a/couchdb/README.md +++ b/couchdb/README.md @@ -18,7 +18,7 @@ storage volumes to each Pod in the Deployment. ```bash $ helm repo add couchdb https://apache.github.io/couchdb-helm $ helm install couchdb/couchdb \ - --version=4.2.0 \ + --version=4.4.0 \ --set allowAdminParty=true \ --set couchdbConfig.couchdb.uuid=$(curl https://www.uuidgenerator.net/api/version4 2>/dev/null | tr -d -) ``` @@ -44,7 +44,7 @@ Afterwards install the chart replacing the UUID ```bash $ helm install \ --name my-release \ - --version=4.2.0 \ + --version=4.4.0 \ --set couchdbConfig.couchdb.uuid=decafbaddecafbaddecafbaddecafbad \ couchdb/couchdb ``` @@ -78,7 +78,7 @@ and then install the chart while overriding the `createAdminSecret` setting: ```bash $ helm install \ --name my-release \ - --version=4.2.0 \ + --version=4.4.0 \ --set createAdminSecret=false \ --set couchdbConfig.couchdb.uuid=decafbaddecafbaddecafbaddecafbad \ couchdb/couchdb @@ -133,7 +133,7 @@ version semantics. You can upgrade directly from `stable/couchdb` to this chart ```bash $ helm repo add couchdb https://apache.github.io/couchdb-helm -$ helm upgrade my-release --version=4.2.0 couchdb/couchdb +$ helm upgrade my-release --version=4.4.0 couchdb/couchdb ``` ## Configuration @@ -193,6 +193,10 @@ A variety of other parameters are also configurable. See the comments in the | `persistentVolume.volumeName` | | | `persistentVolume.claimName` | | | `persistentVolume.volumeSource` | | +| `persistentVolume.annotations` | {} | +| `podDisruptionBudget.enabled` | false | +| `podDisruptionBudget.minAvailable` | nil | +| `podDisruptionBudget.maxUnavailable` | 1 | | `podManagementPolicy` | Parallel | | `affinity` | | | `topologySpreadConstraints` | | diff --git a/couchdb/README.md.gotmpl b/couchdb/README.md.gotmpl index 2bdd972..969c2d0 100644 --- a/couchdb/README.md.gotmpl +++ b/couchdb/README.md.gotmpl @@ -179,6 +179,9 @@ A variety of other parameters are also configurable. See the comments in the | `persistentVolume.accessModes` | ReadWriteOnce | | `persistentVolume.storageClass` | Default for the Kube cluster | | `persistentVolume.annotations` | {} | +| `podDisruptionBudget.enabled` | false | +| `podDisruptionBudget.minAvailable` | nil | +| `podDisruptionBudget.maxUnavailable` | 1 | | `podManagementPolicy` | Parallel | | `affinity` | | | `topologySpreadConstraints` | | diff --git a/couchdb/templates/pdb.yaml b/couchdb/templates/pdb.yaml new file mode 100644 index 0000000..4b79818 --- /dev/null +++ b/couchdb/templates/pdb.yaml @@ -0,0 +1,21 @@ +{{- if and .Values.podDisruptionBudget .Values.podDisruptionBudget.enabled }} +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: "{{ .Release.Name }}-pdb" + labels: + app.kubernetes.io/managed-by: {{ .Release.Service | quote }} + app.kubernetes.io/instance: {{ .Release.Name | quote }} + app.kubernetes.io/version: {{ .Chart.AppVersion }} + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} +spec: + {{- if .Values.podDisruptionBudget.minAvailable }} + minAvailable: {{ .Values.podDisruptionBudget.minAvailable }} + {{- end }} + {{- if .Values.podDisruptionBudget.maxUnavailable }} + maxUnavailable: {{ .Values.podDisruptionBudget.maxUnavailable }} + {{- end }} + selector: + matchLabels: +{{ include "couchdb.ss.selector" . | indent 6 }} +{{- end }} diff --git a/couchdb/values.yaml b/couchdb/values.yaml index cc9878e..19b6b50 100644 --- a/couchdb/values.yaml +++ b/couchdb/values.yaml @@ -221,6 +221,13 @@ readinessProbe: successThreshold: 1 timeoutSeconds: 1 +# Control an optional pod disruption budget +podDisruptionBudget: + # toggle creation of pod disruption budget, disabled by default + enabled: false + # minAvailable: 1 + maxUnavailable: 1 + # CouchDB 3.2.0 adds in a metrics endpoint on the path `/_node/_local/_prometheus`. # Optionally, a standalone, unauthenticated port can be exposed for these metrics. prometheusPort: