feat(helm): add liveness and readiness for deployment webserver (#20567)
* feat(helm): add liveness and readiness for deployment webserver
* feat(helm): add example in values
* feat(helm): move config probes under supersetNode
* feat(helm): bump chart.yaml
* fix(helm): remove default values in template and use values.yaml
* fix(git): bump chart verison
* fix(json): update the schema to get CI passing
* fix(helm): correct path for values readiness
Co-authored-by: wiktor2200 <wiktor2200@users.noreply.github.com>
Co-authored-by: Jeremy PLANCKEEL <jplanckeel.externe@bedrockstreaming.com>
Co-authored-by: Craig Rueda <craig@craigrueda.com>
Co-authored-by: wiktor2200 <wiktor2200@users.noreply.github.com>
diff --git a/helm/superset/Chart.yaml b/helm/superset/Chart.yaml
index 078d11b..9b53c89 100644
--- a/helm/superset/Chart.yaml
+++ b/helm/superset/Chart.yaml
@@ -22,7 +22,7 @@
- name: craig-rueda
email: craig@craigrueda.com
url: https://github.com/craig-rueda
-version: 0.7.0
+version: 0.7.1
dependencies:
- name: postgresql
version: 11.1.22
diff --git a/helm/superset/templates/deployment.yaml b/helm/superset/templates/deployment.yaml
index 8d035a2..7c3bdac 100644
--- a/helm/superset/templates/deployment.yaml
+++ b/helm/superset/templates/deployment.yaml
@@ -120,6 +120,24 @@
- name: http
containerPort: {{ .Values.service.port }}
protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /health
+ port: http
+ initialDelaySeconds: {{ .Values.supersetNode.livenessProbe.initialDelaySeconds }}
+ timeoutSeconds: {{ .Values.supersetNode.livenessProbe.timeoutSeconds }}
+ failureThreshold: {{ .Values.supersetNode.livenessProbe.failureThreshold }}
+ periodSeconds: {{ .Values.supersetNode.livenessProbe.periodSeconds }}
+ successThreshold: {{ .Values.supersetNode.livenessProbe.successThreshold }}
+ readinessProbe:
+ httpGet:
+ path: /health
+ port: http
+ initialDelaySeconds: {{ .Values.supersetNode.readinessProbe.initialDelaySeconds }}
+ timeoutSeconds: {{ .Values.supersetNode.readinessProbe.timeoutSeconds }}
+ failureThreshold: {{ .Values.supersetNode.readinessProbe.failureThreshold }}
+ periodSeconds: {{ .Values.supersetNode.readinessProbe.periodSeconds }}
+ successThreshold: {{ .Values.supersetNode.readinessProbe.successThreshold }}
resources:
{{- if .Values.supersetNode.resources }}
{{ toYaml .Values.supersetNode.resources | indent 12 }}
diff --git a/helm/superset/values.schema.json b/helm/superset/values.schema.json
index dc8a586..996c88b 100644
--- a/helm/superset/values.schema.json
+++ b/helm/superset/values.schema.json
@@ -276,6 +276,62 @@
"podLabels": {
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels"
},
+ "livenessProbe": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "initialDelaySeconds": {
+ "type": "integer"
+ },
+ "timeoutSeconds": {
+ "type": "integer"
+ },
+ "failureThreshold": {
+ "type": "integer"
+ },
+ "periodSeconds": {
+ "type": "integer"
+ },
+ "successThreshold": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "initialDelaySeconds",
+ "timeoutSeconds",
+ "failureThreshold",
+ "periodSeconds",
+ "successThreshold"
+ ]
+ },
+ "readinessProbe": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "initialDelaySeconds": {
+ "type": "integer"
+ },
+ "timeoutSeconds": {
+ "type": "integer"
+ },
+ "failureThreshold": {
+ "type": "integer"
+ },
+ "periodSeconds": {
+ "type": "integer"
+ },
+ "successThreshold": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "initialDelaySeconds",
+ "timeoutSeconds",
+ "failureThreshold",
+ "periodSeconds",
+ "successThreshold"
+ ]
+ },
"resources": {
"type": "object"
},
diff --git a/helm/superset/values.yaml b/helm/superset/values.yaml
index 3188903..86029c8 100644
--- a/helm/superset/values.yaml
+++ b/helm/superset/values.yaml
@@ -254,6 +254,18 @@
podAnnotations: {}
## Labels to be added to supersetNode pods
podLabels: {}
+ livenessProbe:
+ initialDelaySeconds: 15
+ timeoutSeconds: 1
+ failureThreshold: 3
+ periodSeconds: 15
+ successThreshold: 1
+ readinessProbe:
+ initialDelaySeconds: 15
+ timeoutSeconds: 1
+ failureThreshold: 3
+ periodSeconds: 15
+ successThreshold: 1
# Resource settings for the supersetNode pods - these settings overwrite might existing values from the global resources object defined above.
resources: {}
# limits: