From ca26a331f2cb129250b04eeec7cc11dfe4ba332f Mon Sep 17 00:00:00 2001 From: Gautier Dhordain <2345804+gdhordain@users.noreply.github.com> Date: Mon, 24 May 2021 13:55:56 +0200 Subject: [PATCH] [bitnami/elasticsearch] add startup probes feature (#6445) * [bitnami/elastcisearch] add startup probes support * [bitnami/elastcisearch] fix liveness/readiness probes typo --- bitnami/elasticsearch/Chart.yaml | 2 +- bitnami/elasticsearch/README.md | 24 +++++++++++++ .../templates/coordinating-deploy.yaml | 11 ++++++ .../templates/data-statefulset.yaml | 21 ++++++++--- .../templates/ingest-deploy.yaml | 11 ++++++ .../templates/master-statefulset.yaml | 21 ++++++++--- bitnami/elasticsearch/values.yaml | 36 ++++++++++++++++--- 7 files changed, 111 insertions(+), 15 deletions(-) diff --git a/bitnami/elasticsearch/Chart.yaml b/bitnami/elasticsearch/Chart.yaml index 0323b311f..4048878eb 100644 --- a/bitnami/elasticsearch/Chart.yaml +++ b/bitnami/elasticsearch/Chart.yaml @@ -25,4 +25,4 @@ name: elasticsearch sources: - https://github.com/bitnami/bitnami-docker-elasticsearch - https://www.elastic.co/products/elasticsearch -version: 15.1.7 +version: 15.2.0 diff --git a/bitnami/elasticsearch/README.md b/bitnami/elasticsearch/README.md index f17a08d53..4049e0723 100644 --- a/bitnami/elasticsearch/README.md +++ b/bitnami/elasticsearch/README.md @@ -109,6 +109,12 @@ The following table lists the configurable parameters of the Elasticsearch chart | `master.securityContext.enabled` | Enable security context for master-eligible pods | `true` | | `master.securityContext.fsGroup` | Group ID for the container for master-eligible pods | `1001` | | `master.securityContext.runAsUser` | User ID for the container for master-eligible pods | `1001` | +| `master.startupProbe.enabled` | Enable/disable the startup probe (master nodes pod) | `false` | +| `master.startupProbe.initialDelaySeconds` | Delay before startup probe is initiated (master nodes pod) | `90` | +| `master.startupProbe.periodSeconds` | How often to perform the probe (master nodes pod) | `10` | +| `master.startupProbe.timeoutSeconds` | When the probe times out (master nodes pod) | `5` | +| `master.startupProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed (master nodes pod) | `1` | +| `master.startupProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded | `5` | | `master.livenessProbe.enabled` | Enable/disable the liveness probe (master-eligible nodes pod) | `true` | | `master.livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated (master-eligible nodes pod) | `90` | | `master.livenessProbe.periodSeconds` | How often to perform the probe (master-eligible nodes pod) | `10` | @@ -147,6 +153,12 @@ The following table lists the configurable parameters of the Elasticsearch chart | `coordinating.securityContext.enabled` | Enable security context for coordinating-only pods | `true` | | `coordinating.securityContext.fsGroup` | Group ID for the container for coordinating-only pods | `1001` | | `coordinating.securityContext.runAsUser` | User ID for the container for coordinating-only pods | `1001` | +| `coordinating.startupProbe.enabled` | Enable/disable the startup probe (coordinating nodes pod) | `false` | +| `coordinating.startupProbe.initialDelaySeconds` | Delay before startup probe is initiated (coordinating nodes pod) | `90` | +| `coordinating.startupProbe.periodSeconds` | How often to perform the probe (coordinating nodes pod) | `10` | +| `coordinating.startupProbe.timeoutSeconds` | When the probe times out (coordinating nodes pod) | `5` | +| `coordinating.startupProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed (coordinating nodes pod) | `1` | +| `coordinating.startupProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded | `5` | | `coordinating.livenessProbe.enabled` | Enable/disable the liveness probe (coordinating-only nodes pod) | `true` | | `coordinating.livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated (coordinating-only nodes pod) | `90` | | `coordinating.livenessProbe.periodSeconds` | How often to perform the probe (coordinating-only nodes pod) | `10` | @@ -180,6 +192,12 @@ The following table lists the configurable parameters of the Elasticsearch chart | `data.securityContext.enabled` | Enable security context for data pods | `true` | | `data.securityContext.fsGroup` | Group ID for the container for data pods | `1001` | | `data.securityContext.runAsUser` | User ID for the container for data pods | `1001` | +| `data.startupProbe.enabled` | Enable/disable the startup probe (data nodes pod) | `false` | +| `data.startupProbe.initialDelaySeconds` | Delay before startup probe is initiated (data nodes pod) | `90` | +| `data.startupProbe.periodSeconds` | How often to perform the probe (data nodes pod) | `10` | +| `data.startupProbe.timeoutSeconds` | When the probe times out (data nodes pod) | `5` | +| `data.startupProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed (data nodes pod) | `1` | +| `data.startupProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded | `5` | | `data.livenessProbe.enabled` | Enable/disable the liveness probe (data nodes pod) | `true` | | `data.livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated (data nodes pod) | `90` | | `data.livenessProbe.periodSeconds` | How often to perform the probe (data nodes pod) | `10` | @@ -218,6 +236,12 @@ The following table lists the configurable parameters of the Elasticsearch chart | `ingest.securityContext.enabled` | Enable security context for ingest pods | `true` | | `ingest.securityContext.fsGroup` | Group ID for the container for ingest pods | `1001` | | `ingest.securityContext.runAsUser` | User ID for the container for ingest pods | `1001` | +| `ingest.startupProbe.enabled` | Enable/disable the startup probe (ingest nodes pod) | `false` | +| `ingest.startupProbe.initialDelaySeconds` | Delay before startup probe is initiated (ingest nodes pod) | `90` | +| `ingest.startupProbe.periodSeconds` | How often to perform the probe (ingest nodes pod) | `10` | +| `ingest.startupProbe.timeoutSeconds` | When the probe times out (ingest nodes pod) | `5` | +| `ingest.startupProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed (ingest nodes pod) | `1` | +| `ingest.startupProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded | `5` | | `ingest.livenessProbe.enabled` | Enable/disable the liveness probe (ingest nodes pod) | `true` | | `ingest.livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated (ingest nodes pod) | `90` | | `ingest.livenessProbe.periodSeconds` | How often to perform the probe (ingest nodes pod) | `10` | diff --git a/bitnami/elasticsearch/templates/coordinating-deploy.yaml b/bitnami/elasticsearch/templates/coordinating-deploy.yaml index ea4ee1f9f..f0195479a 100644 --- a/bitnami/elasticsearch/templates/coordinating-deploy.yaml +++ b/bitnami/elasticsearch/templates/coordinating-deploy.yaml @@ -118,6 +118,17 @@ spec: containerPort: 9200 - name: transport containerPort: 9300 + {{- if .Values.coordinating.startupProbe.enabled }} + startupProbe: + initialDelaySeconds: {{ .Values.coordinating.startupProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.coordinating.startupProbe.periodSeconds }} + timeoutSeconds: {{ .Values.coordinating.startupProbe.timeoutSeconds }} + successThreshold: {{ .Values.coordinating.startupProbe.successThreshold }} + failureThreshold: {{ .Values.coordinating.startupProbe.failureThreshold }} + httpGet: + path: /_cluster/health?local=true + port: 9200 + {{- end }} {{- if .Values.coordinating.livenessProbe.enabled }} livenessProbe: initialDelaySeconds: {{ .Values.coordinating.livenessProbe.initialDelaySeconds }} diff --git a/bitnami/elasticsearch/templates/data-statefulset.yaml b/bitnami/elasticsearch/templates/data-statefulset.yaml index 01505fb88..0883c46c5 100644 --- a/bitnami/elasticsearch/templates/data-statefulset.yaml +++ b/bitnami/elasticsearch/templates/data-statefulset.yaml @@ -147,6 +147,17 @@ spec: containerPort: 9200 - name: transport containerPort: 9300 + {{- if .Values.data.startupProbe.enabled }} + startupProbe: + initialDelaySeconds: {{ .Values.data.startupProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.data.startupProbe.periodSeconds }} + timeoutSeconds: {{ .Values.data.startupProbe.timeoutSeconds }} + successThreshold: {{ .Values.data.startupProbe.successThreshold }} + failureThreshold: {{ .Values.data.startupProbe.failureThreshold }} + httpGet: + path: /_cluster/health?local=true + port: 9200 + {{- end }} {{- if .Values.data.livenessProbe.enabled }} livenessProbe: initialDelaySeconds: {{ .Values.data.livenessProbe.initialDelaySeconds }} @@ -160,11 +171,11 @@ spec: {{- end }} {{- if .Values.data.readinessProbe.enabled }} readinessProbe: - initialDelaySeconds: {{ .Values.data.livenessProbe.initialDelaySeconds }} - periodSeconds: {{ .Values.data.livenessProbe.periodSeconds }} - timeoutSeconds: {{ .Values.data.livenessProbe.timeoutSeconds }} - successThreshold: {{ .Values.data.livenessProbe.successThreshold }} - failureThreshold: {{ .Values.data.livenessProbe.failureThreshold }} + initialDelaySeconds: {{ .Values.data.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.data.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.data.readinessProbe.timeoutSeconds }} + successThreshold: {{ .Values.data.readinessProbe.successThreshold }} + failureThreshold: {{ .Values.data.readinessProbe.failureThreshold }} httpGet: path: /_cluster/health?local=true port: 9200 diff --git a/bitnami/elasticsearch/templates/ingest-deploy.yaml b/bitnami/elasticsearch/templates/ingest-deploy.yaml index a24cea402..6affae7b9 100644 --- a/bitnami/elasticsearch/templates/ingest-deploy.yaml +++ b/bitnami/elasticsearch/templates/ingest-deploy.yaml @@ -113,6 +113,17 @@ spec: containerPort: 9200 - name: transport containerPort: 9300 + {{- if .Values.ingest.startupProbe.enabled }} + startupProbe: + initialDelaySeconds: {{ .Values.ingest.startupProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.ingest.startupProbe.periodSeconds }} + timeoutSeconds: {{ .Values.ingest.startupProbe.timeoutSeconds }} + successThreshold: {{ .Values.ingest.startupProbe.successThreshold }} + failureThreshold: {{ .Values.ingest.startupProbe.failureThreshold }} + httpGet: + path: /_cluster/health?local=true + port: 9200 + {{- end }} {{- if .Values.ingest.livenessProbe.enabled }} livenessProbe: initialDelaySeconds: {{ .Values.ingest.livenessProbe.initialDelaySeconds }} diff --git a/bitnami/elasticsearch/templates/master-statefulset.yaml b/bitnami/elasticsearch/templates/master-statefulset.yaml index af03bae79..f13457984 100644 --- a/bitnami/elasticsearch/templates/master-statefulset.yaml +++ b/bitnami/elasticsearch/templates/master-statefulset.yaml @@ -150,6 +150,17 @@ spec: containerPort: 9200 - name: transport containerPort: 9300 + {{- if .Values.master.startupProbe.enabled }} + startupProbe: + initialDelaySeconds: {{ .Values.master.startupProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.master.startupProbe.periodSeconds }} + timeoutSeconds: {{ .Values.master.startupProbe.timeoutSeconds }} + successThreshold: {{ .Values.master.startupProbe.successThreshold }} + failureThreshold: {{ .Values.master.startupProbe.failureThreshold }} + httpGet: + path: /_cluster/health?local=true + port: 9200 + {{- end }} {{- if .Values.master.livenessProbe.enabled }} livenessProbe: initialDelaySeconds: {{ .Values.master.livenessProbe.initialDelaySeconds }} @@ -163,11 +174,11 @@ spec: {{- end }} {{- if .Values.master.readinessProbe.enabled }} readinessProbe: - initialDelaySeconds: {{ .Values.master.livenessProbe.initialDelaySeconds }} - periodSeconds: {{ .Values.master.livenessProbe.periodSeconds }} - timeoutSeconds: {{ .Values.master.livenessProbe.timeoutSeconds }} - successThreshold: {{ .Values.master.livenessProbe.successThreshold }} - failureThreshold: {{ .Values.master.livenessProbe.failureThreshold }} + initialDelaySeconds: {{ .Values.master.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.master.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.master.readinessProbe.timeoutSeconds }} + successThreshold: {{ .Values.master.readinessProbe.successThreshold }} + failureThreshold: {{ .Values.master.readinessProbe.failureThreshold }} httpGet: path: /_cluster/health?local=true port: 9200 diff --git a/bitnami/elasticsearch/values.yaml b/bitnami/elasticsearch/values.yaml index 9593d767b..777698c20 100644 --- a/bitnami/elasticsearch/values.yaml +++ b/bitnami/elasticsearch/values.yaml @@ -285,9 +285,16 @@ master: requests: cpu: 25m memory: 256Mi - ## Elasticsearch master-eligible container's liveness and readiness probes + ## Elasticsearch master-eligible container's startup, liveness and readiness probes ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes ## + startupProbe: + enabled: false + # initialDelaySeconds: 90 + # periodSeconds: 10 + # timeoutSeconds: 5 + # successThreshold: 1 + # failureThreshold: 5 livenessProbe: enabled: false # initialDelaySeconds: 90 @@ -480,9 +487,16 @@ coordinating: requests: cpu: 25m memory: 256Mi - ## Elasticsearch coordinating-only container's liveness and readiness probes + ## Elasticsearch coordinating-only container's startup, liveness and readiness probes ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes ## + startupProbe: + enabled: false + # initialDelaySeconds: 90 + # periodSeconds: 10 + # timeoutSeconds: 5 + # successThreshold: 1 + # failureThreshold: 5 livenessProbe: enabled: false # initialDelaySeconds: 90 @@ -632,9 +646,16 @@ data: requests: cpu: 25m memory: 2048Mi - ## Elasticsearch data container's liveness and readiness probes + ## Elasticsearch data container's startup, liveness and readiness probes ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes ## + startupProbe: + enabled: false + # initialDelaySeconds: 90 + # periodSeconds: 10 + # timeoutSeconds: 5 + # successThreshold: 1 + # failureThreshold: 5 livenessProbe: enabled: false # initialDelaySeconds: 90 @@ -799,9 +820,16 @@ ingest: requests: cpu: 25m memory: 256Mi - ## Elasticsearch ingest container's liveness and readiness probes + ## Elasticsearch ingest container's startup, liveness and readiness probes ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes ## + startupProbe: + enabled: false + # initialDelaySeconds: 90 + # periodSeconds: 10 + # timeoutSeconds: 5 + # successThreshold: 1 + # failureThreshold: 5 livenessProbe: enabled: false # initialDelaySeconds: 90