Skip to content

Commit 1805546

Browse files
feat: Implement probes for all services (#78)
* feat: Implement probes for all services * Add managed-by label to defaultLabels template --------- Co-authored-by: Philipp Bouzid <ph.bouzid03@gmail.com>
1 parent 8947167 commit 1805546

File tree

4 files changed

+58
-2
lines changed

4 files changed

+58
-2
lines changed

operator/charts/helm/zookeeper-service/templates/_helpers.tpl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -498,5 +498,6 @@ Common Zookeeper chart related resources labels
498498
{{- define "zookeeper.defaultLabels" -}}
499499
app.kubernetes.io/version: '{{ .Values.ARTIFACT_DESCRIPTOR_VERSION | trunc 63 | trimAll "-_." }}'
500500
app.kubernetes.io/component: 'backend'
501+
app.kubernetes.io/managed-by: {{ .Release.Service }}
501502
app.kubernetes.io/part-of: '{{ .Values.PART_OF }}'
502-
{{- end -}}
503+
{{- end -}}

operator/charts/helm/zookeeper-service/templates/deployment.yaml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,26 @@ spec:
5353
memory: {{ default "128Mi" .Values.operator.resources.requests.memory }}
5454
securityContext:
5555
{{- include "zookeeper-service.globalContainerSecurityContext" . | nindent 12 }}
56+
livenessProbe:
57+
httpGet:
58+
path: /healthz
59+
port: 8081
60+
scheme: HTTP
61+
initialDelaySeconds: 30
62+
timeoutSeconds: 5
63+
periodSeconds: 15
64+
successThreshold: 1
65+
failureThreshold: 5
66+
readinessProbe:
67+
httpGet:
68+
path: /readyz
69+
port: 8081
70+
scheme: HTTP
71+
initialDelaySeconds: 40
72+
timeoutSeconds: 15
73+
periodSeconds: 15
74+
successThreshold: 1
75+
failureThreshold: 5
5676
{{- if .Values.operator.affinity }}
5777
affinity:
5878
{{ .Values.operator.affinity | toJson }}
@@ -68,4 +88,4 @@ spec:
6888
{{- include "zookeeper-service.globalPodSecurityContext" . | nindent 8 }}
6989
{{- with .Values.operator.securityContext }}
7090
{{- toYaml . | nindent 8 -}}
71-
{{- end }}
91+
{{- end }}

operator/charts/helm/zookeeper-service/templates/integration_tests/deployment.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,14 @@ spec:
159159
periodSeconds: 20
160160
successThreshold: 1
161161
failureThreshold: 5
162+
livenessProbe:
163+
tcpSocket:
164+
port: 8080
165+
initialDelaySeconds: 20
166+
timeoutSeconds: 5
167+
periodSeconds: 20
168+
successThreshold: 1
169+
failureThreshold: 5
162170
volumes:
163171
- name: output
164172
emptyDir: {}

operator/controllers/provider/monitoring_provider.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
appsv1 "k8s.io/api/apps/v1"
2323
corev1 "k8s.io/api/core/v1"
2424
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
25+
"k8s.io/apimachinery/pkg/util/intstr"
2526
"strconv"
2627
)
2728

@@ -178,6 +179,8 @@ func (mrp MonitoringResourceProvider) NewMonitoringDeployment() *appsv1.Deployme
178179
Command: mrp.getCommand(),
179180
Args: mrp.getArgs(),
180181
SecurityContext: getDefaultContainerSecurityContext(),
182+
LivenessProbe: mrp.getLivenessProbe(),
183+
ReadinessProbe: mrp.getReadinessProbe(),
181184
},
182185
},
183186
SecurityContext: &mrp.spec.SecurityContext,
@@ -340,3 +343,27 @@ func (mrp MonitoringResourceProvider) GetMonitoringCustomLabels(monitoringLabels
340343
func (mrp MonitoringResourceProvider) GetServiceAccountName() string {
341344
return mrp.GetServiceName()
342345
}
346+
347+
func (mrp MonitoringResourceProvider) getLivenessProbe() *corev1.Probe {
348+
probe := mrp.getProbe()
349+
probe.Handler = corev1.Handler{
350+
TCPSocket: &corev1.TCPSocketAction{
351+
Port: intstr.FromInt(8096),
352+
},
353+
}
354+
return probe
355+
}
356+
357+
func (mrp MonitoringResourceProvider) getReadinessProbe() *corev1.Probe {
358+
return mrp.getLivenessProbe()
359+
}
360+
361+
func (mrp MonitoringResourceProvider) getProbe() *corev1.Probe {
362+
return &corev1.Probe{
363+
InitialDelaySeconds: 30,
364+
TimeoutSeconds: 5,
365+
PeriodSeconds: 10,
366+
SuccessThreshold: 1,
367+
FailureThreshold: 5,
368+
}
369+
}

0 commit comments

Comments
 (0)