This is an automated email from the ASF dual-hosted git repository.

jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 96ef43f6ef [HELM]: Added additional probes options and startup probe. 
(#13165)
96ef43f6ef is described below

commit 96ef43f6eff6e41ab6ca3747f8dcb9251679191b
Author: Abhishek Sharma <[email protected]>
AuthorDate: Thu May 23 18:06:37 2024 -0400

    [HELM]: Added additional probes options and startup probe. (#13165)
---
 helm/pinot/templates/broker/statefulset.yaml       |  25 ++++-
 helm/pinot/templates/controller/statefulset.yaml   |  25 ++++-
 .../templates/minion-stateless/deployment.yaml     |  25 ++++-
 helm/pinot/templates/minion/statefulset.yaml       |  25 ++++-
 helm/pinot/templates/server/statefulset.yaml       |  37 ++++---
 helm/pinot/values.yaml                             | 114 +++++++++++++++++++++
 6 files changed, 221 insertions(+), 30 deletions(-)

diff --git a/helm/pinot/templates/broker/statefulset.yaml 
b/helm/pinot/templates/broker/statefulset.yaml
index 9e4f6a2370..d9b950ce45 100644
--- a/helm/pinot/templates/broker/statefulset.yaml
+++ b/helm/pinot/templates/broker/statefulset.yaml
@@ -91,16 +91,33 @@ spec:
           {{- end }}
         {{- if .Values.broker.probes.livenessEnabled }}
         livenessProbe:
-          initialDelaySeconds: {{ .Values.probes.initialDelaySeconds }}
-          periodSeconds: {{ .Values.probes.periodSeconds }}
+          initialDelaySeconds: {{ 
.Values.broker.probes.liveness.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds: {{ .Values.broker.probes.liveness.periodSeconds | 
default .Values.probes.periodSeconds }}
+          failureThreshold: {{ .Values.broker.probes.liveness.failureThreshold 
| default .Values.probes.failureThreshold }}
+          successThreshold: {{ .Values.broker.probes.liveness.successThreshold 
| default .Values.probes.successThreshold }}
+          timeoutSeconds: {{ .Values.broker.probes.liveness.timeoutSeconds | 
default .Values.probes.timeoutSeconds }}
           httpGet:
             path: {{ .Values.broker.probes.endpoint }}
             port: {{ .Values.broker.service.port }}
         {{- end }}
         {{- if .Values.broker.probes.readinessEnabled }}
         readinessProbe:
-          initialDelaySeconds: {{ .Values.probes.initialDelaySeconds }}
-          periodSeconds: {{ .Values.probes.periodSeconds }}
+          initialDelaySeconds: {{ 
.Values.broker.probes.readiness.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds: {{ .Values.broker.probes.readiness.periodSeconds | 
default .Values.probes.periodSeconds }}
+          failureThreshold: {{ 
.Values.broker.probes.readiness.failureThreshold | default 
.Values.probes.failureThreshold }}
+          successThreshold: {{ 
.Values.broker.probes.readiness.successThreshold | default 
.Values.probes.successThreshold }}
+          timeoutSeconds: {{ .Values.broker.probes.readiness.timeoutSeconds | 
default .Values.probes.timeoutSeconds }}
+          httpGet:
+            path: {{ .Values.broker.probes.endpoint }}
+            port: {{ .Values.broker.service.port }}
+        {{- end }}
+        {{- if .Values.broker.probes.startupEnabled }}
+        startupProbe:
+          initialDelaySeconds: {{ 
.Values.broker.probes.startup.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds: {{ .Values.broker.probes.startup.periodSeconds | 
default .Values.probes.periodSeconds }}
+          failureThreshold: {{ .Values.broker.probes.startup.failureThreshold 
| default .Values.probes.failureThreshold }}
+          successThreshold:{{ .Values.broker.probes.startup.successThreshold | 
default .Values.probes.successThreshold }}
+          timeoutSeconds: {{ .Values.broker.probes.startup.timeoutSeconds | 
default .Values.probes.timeoutSeconds }}
           httpGet:
             path: {{ .Values.broker.probes.endpoint }}
             port: {{ .Values.broker.service.port }}
diff --git a/helm/pinot/templates/controller/statefulset.yaml 
b/helm/pinot/templates/controller/statefulset.yaml
index 0bc85e217c..b298562b5a 100644
--- a/helm/pinot/templates/controller/statefulset.yaml
+++ b/helm/pinot/templates/controller/statefulset.yaml
@@ -80,16 +80,33 @@ spec:
 {{- end }}           
         {{- if .Values.controller.probes.livenessEnabled }}
         livenessProbe:
-          initialDelaySeconds: {{ .Values.probes.initialDelaySeconds }}
-          periodSeconds: {{ .Values.probes.periodSeconds }}
+          initialDelaySeconds: {{ 
.Values.controller.probes.liveness.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds:{{ .Values.controller.probes.liveness.periodSeconds | 
default .Values.probes.periodSeconds }}
+          failureThreshold: {{ 
.Values.controller.probes.liveness.failureThreshold | default 
.Values.probes.failureThreshold }}
+          successThreshold: {{ 
.Values.controller.probes.liveness.successThreshold | default 
.Values.probes.successThreshold }}
+          timeoutSeconds: {{ .Values.controller.probes.liveness.timeoutSeconds 
| default .Values.probes.timeoutSeconds }}
           httpGet:
             path: {{ .Values.controller.probes.endpoint }}
             port: {{ .Values.controller.service.port }}
         {{- end }}
         {{- if .Values.controller.probes.readinessEnabled }}
         readinessProbe:
-          initialDelaySeconds: {{ .Values.probes.initialDelaySeconds }}
-          periodSeconds: {{ .Values.probes.periodSeconds }}
+          initialDelaySeconds: {{ 
.Values.controller.probes.readiness.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds: {{ .Values.controller.probes.readiness.periodSeconds 
| default .Values.probes.periodSeconds }}
+          failureThreshold: {{ 
.Values.controller.probes.readiness.failureThreshold | default 
.Values.probes.failureThreshold }}
+          successThreshold: {{ 
.Values.controller.probes.readiness.successThreshold | default 
.Values.probes.successThreshold }}
+          timeoutSeconds: {{ 
.Values.controller.probes.readiness.timeoutSeconds | default 
.Values.probes.timeoutSeconds }}
+          httpGet:
+            path: {{ .Values.controller.probes.endpoint }}
+            port: {{ .Values.controller.service.port }}
+        {{- end }}
+        {{- if .Values.controller.probes.startupEnabled }}
+        startupProbe:
+          initialDelaySeconds: {{ 
.Values.controller.probes.startup.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds: {{ .Values.controller.probes.startup.periodSeconds | 
default .Values.probes.periodSeconds }}
+          failureThreshold: {{ 
.Values.controller.probes.startup.failureThreshold | default 
.Values.probes.failureThreshold }}
+          successThreshold: {{ 
.Values.controller.probes.startup.successThreshold | default 
.Values.probes.successThreshold }}
+          timeoutSeconds: {{ .Values.controller.probes.startup.timeoutSeconds 
| default .Values.probes.timeoutSeconds }}
           httpGet:
             path: {{ .Values.controller.probes.endpoint }}
             port: {{ .Values.controller.service.port }}
diff --git a/helm/pinot/templates/minion-stateless/deployment.yaml 
b/helm/pinot/templates/minion-stateless/deployment.yaml
index d68fd40275..4c4a5f4c71 100644
--- a/helm/pinot/templates/minion-stateless/deployment.yaml
+++ b/helm/pinot/templates/minion-stateless/deployment.yaml
@@ -79,20 +79,37 @@ spec:
 {{- end }}  
         {{- if .Values.minionStateless.probes.livenessEnabled }}
         livenessProbe:
-          initialDelaySeconds: {{ .Values.probes.initialDelaySeconds }}
-          periodSeconds: {{ .Values.probes.periodSeconds }}
+          initialDelaySeconds: {{ 
.Values.minionStateless.probes.liveness.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds: {{ 
.Values.minionStateless.probes.liveness.periodSeconds | default 
.Values.probes.periodSeconds }}
+          failureThreshold: {{ 
.Values.minionStateless.probes.liveness.failureThreshold | default 
.Values.probes.failureThreshold }}
+          successThreshold: {{ 
.Values.minionStateless.probes.liveness.successThreshold | default 
.Values.probes.successThreshold }}
+          timeoutSeconds: {{ 
.Values.minionStateless.probes.liveness.timeoutSeconds | default 
.Values.probes.timeoutSeconds }}
           httpGet:
             path: {{ .Values.minionStateless.probes.endpoint }}
             port: {{ .Values.minionStateless.service.port }}
         {{- end }}
         {{- if .Values.minionStateless.probes.readinessEnabled }}
         readinessProbe:
-          initialDelaySeconds: {{ .Values.probes.initialDelaySeconds }}
-          periodSeconds: {{ .Values.probes.periodSeconds }}
+          initialDelaySeconds: {{ 
.Values.minionStateless.probes.readiness.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds: {{ 
.Values.minionStateless.probes.readiness.periodSeconds | default 
.Values.probes.periodSeconds }}
+          failureThreshold: {{ 
.Values.minionStateless.probes.readiness.failureThreshold | default 
.Values.probes.failureThreshold }}
+          successThreshold: {{ 
.Values.minionStateless.probes.readiness.successThreshold | default 
.Values.probes.successThreshold }}
+          timeoutSeconds: {{ 
.Values.minionStateless.probes.readiness.timeoutSeconds | default 
.Values.probes.timeoutSeconds }}
           httpGet:
             path: {{ .Values.minionStateless.probes.endpoint }}
             port: {{ .Values.minionStateless.service.port }}
         {{- end }}
+        {{- if .Values.minionStateless.probes.startupEnabled }}
+        startupProbe:
+          initialDelaySeconds: {{ 
.Values.minionStateless.probes.startup.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds: {{ 
.Values.minionStateless.probes.startup.periodSeconds | default 
.Values.probes.periodSeconds }}
+          failureThreshold: {{ 
.Values.minionStateless.probes.startup.failureThreshold | default 
.Values.probes.failureThreshold }}
+          successThreshold: {{ 
.Values.minionStateless.probes.startup.successThreshold | default 
.Values.probes.successThreshold }}
+          timeoutSeconds: {{ 
.Values.minionStateless.probes.startup.timeoutSeconds | default 
.Values.probes.timeoutSeconds }}
+          httpGet:
+            path: {{ .Values.minionStateless.probes.endpoint }}
+            port: {{ .Values.minionStateless.service.port }}
+          {{- end }}
         volumeMounts:
           - name: config
             mountPath: /var/pinot/minion/config
diff --git a/helm/pinot/templates/minion/statefulset.yaml 
b/helm/pinot/templates/minion/statefulset.yaml
index c66663def4..61ac896ac9 100644
--- a/helm/pinot/templates/minion/statefulset.yaml
+++ b/helm/pinot/templates/minion/statefulset.yaml
@@ -86,16 +86,33 @@ spec:
 {{- end }}     
         {{- if .Values.minion.probes.livenessEnabled }}
         livenessProbe:
-          initialDelaySeconds: {{ .Values.probes.initialDelaySeconds }}
-          periodSeconds: {{ .Values.probes.periodSeconds }}
+          initialDelaySeconds: {{ 
.Values.minion.probes.liveness.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds: {{ .Values.minion.probes.liveness.periodSeconds | 
default .Values.probes.periodSeconds }}
+          failureThreshold: {{ .Values.minion.probes.liveness.failureThreshold 
| default .Values.probes.failureThreshold }}
+          successThreshold: {{ .Values.minion.probes.liveness.successThreshold 
| default .Values.probes.successThreshold }}
+          timeoutSeconds: {{ .Values.minion.probes.liveness.timeoutSeconds | 
default .Values.probes.timeoutSeconds }}
           httpGet:
             path: {{ .Values.minion.probes.endpoint }}
             port: {{ .Values.minion.service.port }}
         {{- end }}
         {{- if .Values.minion.probes.readinessEnabled }}
         readinessProbe:
-          initialDelaySeconds: {{ .Values.probes.initialDelaySeconds }}
-          periodSeconds: {{ .Values.probes.periodSeconds }}
+          initialDelaySeconds: {{ 
.Values.minion.probes.readiness.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds: {{ .Values.minion.probes.readiness.periodSeconds | 
default .Values.probes.periodSeconds }}
+          failureThreshold: {{ 
.Values.minion.probes.readiness.failureThreshold | default 
.Values.probes.failureThreshold }}
+          successThreshold: {{ 
.Values.minion.probes.readiness.successThreshold | default 
.Values.probes.successThreshold }}
+          timeoutSeconds: {{ .Values.minion.probes.readiness.timeoutSeconds | 
default .Values.probes.timeoutSeconds }}
+          httpGet:
+            path: {{ .Values.minion.probes.endpoint }}
+            port: {{ .Values.minion.service.port }}
+        {{- end }}
+        {{- if .Values.minion.probes.startupEnabled }}
+        startupProbe:
+          initialDelaySeconds: {{ 
.Values.minion.probes.startup.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds: {{ .Values.minion.probes.startup.periodSeconds | 
default .Values.probes.periodSeconds }}
+          failureThreshold: {{ .Values.minion.probes.startup.failureThreshold 
| default .Values.probes.failureThreshold }}
+          successThreshold: {{ .Values.minion.probes.startup.successThreshold 
| default .Values.probes.successThreshold }}
+          timeoutSeconds: {{ .Values.minion.probes.startup.timeoutSeconds | 
default .Values.probes.timeoutSeconds }}
           httpGet:
             path: {{ .Values.minion.probes.endpoint }}
             port: {{ .Values.minion.service.port }}
diff --git a/helm/pinot/templates/server/statefulset.yaml 
b/helm/pinot/templates/server/statefulset.yaml
index a6591481e9..94ad39ae93 100644
--- a/helm/pinot/templates/server/statefulset.yaml
+++ b/helm/pinot/templates/server/statefulset.yaml
@@ -88,26 +88,35 @@ spec:
 {{- end }}   
         {{- if .Values.server.probes.livenessEnabled }}
         livenessProbe:
-          initialDelaySeconds: {{ .Values.probes.initialDelaySeconds }}
-          periodSeconds: {{ .Values.probes.periodSeconds }}
+          initialDelaySeconds: {{ 
.Values.server.probes.liveness.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds: {{ .Values.server.probes.liveness.periodSeconds | 
default .Values.probes.periodSeconds }}
+          failureThreshold: {{ .Values.server.probes.liveness.failureThreshold 
| default .Values.probes.failureThreshold }}
+          successThreshold: {{ .Values.server.probes.liveness.successThreshold 
| default .Values.probes.successThreshold }}
+          timeoutSeconds: {{ .Values.server.probes.liveness.timeoutSeconds | 
default .Values.probes.timeoutSeconds }}
           httpGet:
-            {{- if and .Values.server.probes.livenessProbe 
.Values.server.probes.livenessProbe.endpoint}}
-            path: {{ .Values.server.probes.livenessProbe.endpoint }}
-            {{- else }}
-            path: {{ .Values.server.probes.endpoint }}
-            {{- end }}
+            path: {{ .Values.server.probes.liveness.endpoint | default 
.Values.server.probes.endpoint }}
             port: {{ .Values.server.service.adminPort }}
         {{- end }}
         {{- if .Values.server.probes.readinessEnabled }}
         readinessProbe:
-          initialDelaySeconds: {{ .Values.probes.initialDelaySeconds }}
-          periodSeconds: {{ .Values.probes.periodSeconds }}
+          initialDelaySeconds: {{ 
.Values.server.probes.readiness.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds: {{ .Values.server.probes.readiness.periodSeconds | 
default .Values.probes.periodSeconds }}
+          failureThreshold: {{ 
.Values.server.probes.readiness.failureThreshold | default 
.Values.probes.failureThreshold }}
+          successThreshold: {{ 
.Values.server.probes.readiness.successThreshold | default 
.Values.probes.successThreshold }}
+          timeoutSeconds: {{ .Values.server.probes.readiness.timeoutSeconds | 
default .Values.probes.timeoutSeconds }}
           httpGet:
-            {{- if and .Values.server.probes.readinessProbe 
.Values.server.probes.readinessProbe.endpoint}}
-            path: {{ .Values.server.probes.readinessProbe.endpoint }}
-            {{- else }}
-            path: {{ .Values.server.probes.endpoint }}
-            {{- end }}
+            path: {{ .Values.server.probes.readiness.endpoint | default 
.Values.server.probes.endpoint }}
+            port: {{ .Values.server.service.adminPort }}
+        {{- end }}
+        {{- if .Values.server.probes.startupEnabled }}
+        startupProbe:
+          initialDelaySeconds: {{ 
.Values.server.probes.startup.initialDelaySeconds | default 
.Values.probes.initialDelaySeconds }}
+          periodSeconds: {{ .Values.server.probes.startup.periodSeconds | 
default .Values.probes.periodSeconds }}
+          failureThreshold: {{ .Values.server.probes.startup.failureThreshold 
| default .Values.probes.failureThreshold }}
+          successThreshold: {{ .Values.server.probes.startup.successThreshold 
| default .Values.probes.successThreshold }}
+          timeoutSeconds: {{ .Values.server.probes.startup.timeoutSeconds | 
default .Values.probes.timeoutSeconds }}
+          httpGet:
+            path: {{ .Values.server.probes.liveness.endpoint | default 
.Values.server.probes.endpoint }}
             port: {{ .Values.server.service.adminPort }}
         {{- end }}
         volumeMounts:
diff --git a/helm/pinot/values.yaml b/helm/pinot/values.yaml
index 17ee1aaf0d..235e963e4f 100644
--- a/helm/pinot/values.yaml
+++ b/helm/pinot/values.yaml
@@ -49,9 +49,15 @@ securityContext: {}
   # runAsNonRoot: true
   # runAsUser: 1000
 
+# default values of the probes i.e. liveness and readiness.
+# customization of values is present at the component level.
 probes:
   initialDelaySeconds: 60
   periodSeconds: 10
+  failureThreshold: 10
+  # should be 1 for liveness and startup probe, as per K8s doc.
+  successThreshold: 1
+  timeoutSeconds: 10
 
 serviceAccount:
   # Specifies whether a service account should be created
@@ -92,6 +98,27 @@ controller:
     endpoint: "/health"
     livenessEnabled: false
     readinessEnabled: false
+    startupEnabled: false
+    liveness:
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
+
+    readiness:
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
+
+    startup:
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
 
   persistence:
     enabled: true
@@ -223,6 +250,27 @@ broker:
     endpoint: "/health"
     livenessEnabled: true
     readinessEnabled: true
+    startupEnabled: false
+    liveness:
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
+
+    readiness:
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
+
+    startup:
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
 
   persistence:
     extraVolumes: []
@@ -330,6 +378,30 @@ server:
     endpoint: "/health"
     livenessEnabled: false
     readinessEnabled: false
+    startupEnabled: false
+    liveness:
+      endpoint: "/health/liveness"
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
+
+    readiness:
+      endpoint: "/health/readiness"
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
+
+    startup:
+      endpoint: "/health/liveness"
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
 
   dataDir: /var/pinot/server/data/index
   segmentTarDir: /var/pinot/server/data/segment
@@ -434,6 +506,27 @@ minion:
     endpoint: "/health"
     livenessEnabled: true
     readinessEnabled: true
+    startupEnabled: false
+    liveness:
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
+
+    readiness:
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
+
+    startup:
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
 
   dataDir: /var/pinot/minion/data
   jvmOpts: "-XX:ActiveProcessorCount=2 -Xms256M -Xmx1G -XX:+UseG1GC 
-XX:MaxGCPauseMillis=200 -Xlog:gc*:file=/opt/pinot/gc-pinot-minion.log"
@@ -524,6 +617,27 @@ minionStateless:
     endpoint: "/health"
     livenessEnabled: true
     readinessEnabled: true
+    startupEnabled: true
+    liveness:
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
+
+    readiness:
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
+
+    startup:
+      initialDelaySeconds: 60
+      failureThreshold: 10
+      timeoutSeconds: 10
+      successThreshold: 1
+      periodSeconds: 10
 
   dataDir: /var/pinot/minion/data
   jvmOpts: "-XX:ActiveProcessorCount=2 -Xms256M -Xmx1G -XX:+UseG1GC 
-XX:MaxGCPauseMillis=200 -Xlog:gc*:file=/opt/pinot/gc-pinot-minion.log"


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to