Skip to content

Commit 24d6a2d

Browse files
committed
feat: readiness/liveness probes customization & more graceful defaults
1 parent 8e73d1c commit 24d6a2d

File tree

7 files changed

+85
-17
lines changed

7 files changed

+85
-17
lines changed

charts/conduit/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type: application
1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
1717
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 0.2.6
18+
version: 0.2.7
1919

2020
# This is the version number of the application being deployed. This version number should be
2121
# incremented each time you make changes to the application. Versions are not expected to

charts/conduit/templates/admin/deployment.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,26 @@ spec:
4848
{{- end }}
4949
ports:
5050
- containerPort: 8080
51+
{{- $readiness := default (dict) .Values.admin.readinessProbe }}
52+
{{- $liveness := default (dict) .Values.admin.livenessProbe }}
53+
readinessProbe:
54+
httpGet:
55+
path: /
56+
port: 8080
57+
initialDelaySeconds: {{ default $.Values.global.probes.readiness.initialDelaySeconds $readiness.initialDelaySeconds }}
58+
periodSeconds: {{ default $.Values.global.probes.readiness.periodSeconds $readiness.periodSeconds }}
59+
timeoutSeconds: {{ default $.Values.global.probes.readiness.timeoutSeconds $readiness.timeoutSeconds }}
60+
successThreshold: {{ default $.Values.global.probes.readiness.successThreshold $readiness.successThreshold }}
61+
failureThreshold: {{ default $.Values.global.probes.readiness.failureThreshold $readiness.failureThreshold }}
62+
livenessProbe:
63+
httpGet:
64+
path: /
65+
port: 8080
66+
initialDelaySeconds: {{ default $.Values.global.probes.liveness.initialDelaySeconds $liveness.initialDelaySeconds }}
67+
periodSeconds: {{ default $.Values.global.probes.liveness.periodSeconds $liveness.periodSeconds }}
68+
timeoutSeconds: {{ default $.Values.global.probes.liveness.timeoutSeconds $liveness.timeoutSeconds }}
69+
successThreshold: {{ default $.Values.global.probes.liveness.successThreshold $liveness.successThreshold }}
70+
failureThreshold: {{ default $.Values.global.probes.liveness.failureThreshold $liveness.failureThreshold }}
5171
envFrom:
5272
- configMapRef:
5373
name: conduit-admin-cm

charts/conduit/templates/core/deployment.yaml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,16 +69,24 @@ spec:
6969
{{- with .Values.core.envFrom }}
7070
{{- toYaml . | nindent 12 }}
7171
{{- end }}
72+
{{- $readiness := default (dict) .Values.core.readinessProbe }}
73+
{{- $liveness := default (dict) .Values.core.livenessProbe }}
7274
readinessProbe:
7375
grpc:
7476
port: {{ default .Values.global.config.grpc_port .Values.core.containerPort }}
75-
initialDelaySeconds: 5
76-
periodSeconds: 5
77+
initialDelaySeconds: {{ default $.Values.global.probes.readiness.initialDelaySeconds $readiness.initialDelaySeconds }}
78+
periodSeconds: {{ default $.Values.global.probes.readiness.periodSeconds $readiness.periodSeconds }}
79+
timeoutSeconds: {{ default $.Values.global.probes.readiness.timeoutSeconds $readiness.timeoutSeconds }}
80+
successThreshold: {{ default $.Values.global.probes.readiness.successThreshold $readiness.successThreshold }}
81+
failureThreshold: {{ default $.Values.global.probes.readiness.failureThreshold $readiness.failureThreshold }}
7782
livenessProbe:
7883
grpc:
7984
port: {{ default .Values.global.config.grpc_port .Values.core.containerPort }}
80-
initialDelaySeconds: 20
81-
periodSeconds: 10
85+
initialDelaySeconds: {{ default $.Values.global.probes.liveness.initialDelaySeconds $liveness.initialDelaySeconds }}
86+
periodSeconds: {{ default $.Values.global.probes.liveness.periodSeconds $liveness.periodSeconds }}
87+
timeoutSeconds: {{ default $.Values.global.probes.liveness.timeoutSeconds $liveness.timeoutSeconds }}
88+
successThreshold: {{ default $.Values.global.probes.liveness.successThreshold $liveness.successThreshold }}
89+
failureThreshold: {{ default $.Values.global.probes.liveness.failureThreshold $liveness.failureThreshold }}
8290
env:
8391
- name: __DEFAULT_HOST_URL
8492
value: {{ template "conduit-helm.core.default_host" . }}

charts/conduit/templates/database/deployment.yaml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,24 @@ spec:
6666
{{- with .Values.database.envFrom }}
6767
{{- toYaml . | nindent 12 }}
6868
{{- end }}
69+
{{- $readiness := default (dict) .Values.database.readinessProbe }}
70+
{{- $liveness := default (dict) .Values.database.livenessProbe }}
6971
readinessProbe:
7072
grpc:
7173
port: {{ default .Values.global.config.grpc_port .Values.database.containerPort }}
72-
initialDelaySeconds: 5
73-
periodSeconds: 5
74+
initialDelaySeconds: {{ default $.Values.global.probes.readiness.initialDelaySeconds $readiness.initialDelaySeconds }}
75+
periodSeconds: {{ default $.Values.global.probes.readiness.periodSeconds $readiness.periodSeconds }}
76+
timeoutSeconds: {{ default $.Values.global.probes.readiness.timeoutSeconds $readiness.timeoutSeconds }}
77+
successThreshold: {{ default $.Values.global.probes.readiness.successThreshold $readiness.successThreshold }}
78+
failureThreshold: {{ default $.Values.global.probes.readiness.failureThreshold $readiness.failureThreshold }}
7479
livenessProbe:
7580
grpc:
7681
port: {{ default .Values.global.config.grpc_port .Values.database.containerPort }}
77-
initialDelaySeconds: 20
78-
periodSeconds: 10
82+
initialDelaySeconds: {{ default $.Values.global.probes.liveness.initialDelaySeconds $liveness.initialDelaySeconds }}
83+
periodSeconds: {{ default $.Values.global.probes.liveness.periodSeconds $liveness.periodSeconds }}
84+
timeoutSeconds: {{ default $.Values.global.probes.liveness.timeoutSeconds $liveness.timeoutSeconds }}
85+
successThreshold: {{ default $.Values.global.probes.liveness.successThreshold $liveness.successThreshold }}
86+
failureThreshold: {{ default $.Values.global.probes.liveness.failureThreshold $liveness.failureThreshold }}
7987
env:
8088
- name: SERVICE_URL
8189
value: {{ template "conduit-helm.database.fullname" . }}-headless:{{ .Values.database.service.tcp_port }}

charts/conduit/templates/router/deployment.yaml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,24 @@ spec:
6161
- containerPort: {{ default .Values.global.config.grpc_port .Values.router.containerPort }}
6262
- containerPort: 3000
6363
- containerPort: 3001
64+
{{- $readiness := default (dict) .Values.router.readinessProbe }}
65+
{{- $liveness := default (dict) .Values.router.livenessProbe }}
6466
readinessProbe:
6567
grpc:
6668
port: {{ default .Values.global.config.grpc_port .Values.router.containerPort }}
67-
initialDelaySeconds: 5
68-
periodSeconds: 5
69+
initialDelaySeconds: {{ default $.Values.global.probes.readiness.initialDelaySeconds $readiness.initialDelaySeconds }}
70+
periodSeconds: {{ default $.Values.global.probes.readiness.periodSeconds $readiness.periodSeconds }}
71+
timeoutSeconds: {{ default $.Values.global.probes.readiness.timeoutSeconds $readiness.timeoutSeconds }}
72+
successThreshold: {{ default $.Values.global.probes.readiness.successThreshold $readiness.successThreshold }}
73+
failureThreshold: {{ default $.Values.global.probes.readiness.failureThreshold $readiness.failureThreshold }}
6974
livenessProbe:
7075
grpc:
7176
port: {{ default .Values.global.config.grpc_port .Values.router.containerPort }}
72-
initialDelaySeconds: 20
73-
periodSeconds: 10
77+
initialDelaySeconds: {{ default $.Values.global.probes.liveness.initialDelaySeconds $liveness.initialDelaySeconds }}
78+
periodSeconds: {{ default $.Values.global.probes.liveness.periodSeconds $liveness.periodSeconds }}
79+
timeoutSeconds: {{ default $.Values.global.probes.liveness.timeoutSeconds $liveness.timeoutSeconds }}
80+
successThreshold: {{ default $.Values.global.probes.liveness.successThreshold $liveness.successThreshold }}
81+
failureThreshold: {{ default $.Values.global.probes.liveness.failureThreshold $liveness.failureThreshold }}
7482
envFrom:
7583
- configMapRef:
7684
name: conduit-cm

charts/conduit/templates/services/deployment.yaml

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,16 +81,26 @@ spec:
8181
{{- end }}
8282
ports:
8383
- containerPort: {{ coalesce $spec.containerPort $moduleSettings.containerPort $.Values.global.config.grpc_port }}
84+
{{- $specReadiness := default (dict) $spec.readinessProbe }}
85+
{{- $moduleReadiness := default (dict) $moduleSettings.readinessProbe }}
86+
{{- $specLiveness := default (dict) $spec.livenessProbe }}
87+
{{- $moduleLiveness := default (dict) $moduleSettings.livenessProbe }}
8488
readinessProbe:
8589
grpc:
8690
port: {{ coalesce $spec.containerPort $moduleSettings.containerPort $.Values.global.config.grpc_port }}
87-
initialDelaySeconds: 5
88-
periodSeconds: 5
91+
initialDelaySeconds: {{ coalesce $specReadiness.initialDelaySeconds $moduleReadiness.initialDelaySeconds $.Values.global.probes.readiness.initialDelaySeconds }}
92+
periodSeconds: {{ coalesce $specReadiness.periodSeconds $moduleReadiness.periodSeconds $.Values.global.probes.readiness.periodSeconds }}
93+
timeoutSeconds: {{ coalesce $specReadiness.timeoutSeconds $moduleReadiness.timeoutSeconds $.Values.global.probes.readiness.timeoutSeconds }}
94+
successThreshold: {{ coalesce $specReadiness.successThreshold $moduleReadiness.successThreshold $.Values.global.probes.readiness.successThreshold }}
95+
failureThreshold: {{ coalesce $specReadiness.failureThreshold $moduleReadiness.failureThreshold $.Values.global.probes.readiness.failureThreshold }}
8996
livenessProbe:
9097
grpc:
9198
port: {{ coalesce $spec.containerPort $moduleSettings.containerPort $.Values.global.config.grpc_port }}
92-
initialDelaySeconds: 20
93-
periodSeconds: 10
99+
initialDelaySeconds: {{ coalesce $specLiveness.initialDelaySeconds $moduleLiveness.initialDelaySeconds $.Values.global.probes.liveness.initialDelaySeconds }}
100+
periodSeconds: {{ coalesce $specLiveness.periodSeconds $moduleLiveness.periodSeconds $.Values.global.probes.liveness.periodSeconds }}
101+
timeoutSeconds: {{ coalesce $specLiveness.timeoutSeconds $moduleLiveness.timeoutSeconds $.Values.global.probes.liveness.timeoutSeconds }}
102+
successThreshold: {{ coalesce $specLiveness.successThreshold $moduleLiveness.successThreshold $.Values.global.probes.liveness.successThreshold }}
103+
failureThreshold: {{ coalesce $specLiveness.failureThreshold $moduleLiveness.failureThreshold $.Values.global.probes.liveness.failureThreshold }}
94104
envFrom:
95105
- configMapRef:
96106
name: conduit-cm

charts/conduit/values.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,20 @@ global:
3030
metrics_port: 9100
3131
# -- Override for "conduit-helm.conduit.url"
3232
conduit_url: ""
33+
# -- Global probe settings
34+
probes:
35+
readiness:
36+
initialDelaySeconds: 10
37+
periodSeconds: 5
38+
timeoutSeconds: 1
39+
successThreshold: 1
40+
failureThreshold: 5
41+
liveness:
42+
initialDelaySeconds: 20
43+
periodSeconds: 10
44+
timeoutSeconds: 1
45+
successThreshold: 1
46+
failureThreshold: 5
3347
secret:
3448
# -- Master Secret override. Must be given in b64 format.
3549
MASTER_KEY:

0 commit comments

Comments
 (0)