Skip to content

Commit ef9d3b7

Browse files
committed
feat: Add ServiceMonitor to the redis-operator helm chart
Signed-off-by: Mario Trangoni <[email protected]>
1 parent a74c88c commit ef9d3b7

File tree

4 files changed

+76
-4
lines changed

4 files changed

+76
-4
lines changed

charts/redis-operator/README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,14 @@ kubectl create secret tls <webhook-server-cert> --key tls.key --cert tls.crt -n
115115
| redisOperator.imagePullPolicy | string | `"Always"` | |
116116
| redisOperator.imagePullSecrets | list | `[]` | |
117117
| redisOperator.imageTag | string | `""` | |
118-
| redisOperator.metrics.bindAddress | string | `":8080"` | |
119-
| redisOperator.metrics.enabled | bool | `true` | |
118+
| redisOperator.metrics.bindAddress | string | `":8080"` | The address the metrics endpoint binds to |
119+
| redisOperator.metrics.enabled | bool | `true` | Enable metrics server |
120+
| redisOperator.metrics.port | string | `"8080"` | The port the metrics endpoint binds to |
121+
| redisOperator.metrics.serviceMonitor.enabled | bool | `false` | |
122+
| redisOperator.metrics.serviceMonitor.extraLabels | object | `{}` | extraLabels are added to the servicemonitor when enabled set to true |
123+
| redisOperator.metrics.serviceMonitor.interval | string | `"30s"` | |
124+
| redisOperator.metrics.serviceMonitor.namespace | string | `""` | Namespace where servicemonitor resource will be created, if empty it will be created in the same namespace as the operator |
125+
| redisOperator.metrics.serviceMonitor.scrapeTimeout | string | `"10s"` | |
120126
| redisOperator.name | string | `"redis-operator"` | |
121127
| redisOperator.podAnnotations | object | `{}` | |
122128
| redisOperator.podLabels | object | `{}` | |
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{{ if .Values.redisOperator.metrics.enabled }}
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
labels:
6+
app.kubernetes.io/name : {{ .Values.redisOperator.name | default .Release.Name }}-metrics
7+
helm.sh/chart : {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
8+
app.kubernetes.io/managed-by : {{ .Release.Service }}
9+
app.kubernetes.io/instance : {{ .Release.Name }}
10+
app.kubernetes.io/version : {{ .Chart.AppVersion }}
11+
app.kubernetes.io/component: metrics
12+
app.kubernetes.io/part-of : {{ .Release.Name }}
13+
name: {{ .Values.redisOperator.name | default .Release.Name }}-metrics
14+
namespace: {{ .Release.Namespace }}
15+
spec:
16+
ports:
17+
- name: redis-operator-metrics
18+
port: 8080
19+
protocol: TCP
20+
targetPort: {{ .Values.redisOperator.metrics.port }}
21+
selector:
22+
name: {{ .Values.redisOperator.name }}
23+
{{ end }}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{{- if eq .Values.redisOperator.metrics.serviceMonitor.enabled true }}
2+
---
3+
apiVersion: monitoring.coreos.com/v1
4+
kind: ServiceMonitor
5+
metadata:
6+
name: {{ .Values.redisOperator.name | default .Release.Name }}-prometheus-monitoring
7+
namespace: {{ .Values.redisOperator.metrics.serviceMonitor.namespace | default .Release.Namespace }}
8+
labels:
9+
app.kubernetes.io/name: {{ .Values.redisOperator.name | default .Release.Name }}
10+
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
11+
app.kubernetes.io/managed-by: {{ .Release.Service }}
12+
app.kubernetes.io/instance: {{ .Values.redisOperator.name | default .Release.Name }}
13+
app.kubernetes.io/version: {{ .Chart.AppVersion }}
14+
app.kubernetes.io/component: middleware
15+
{{- with .Values.redisOperator.metrics.serviceMonitor.extraLabels }}
16+
{{- toYaml . | nindent 4 }}
17+
{{- end }}
18+
spec:
19+
selector:
20+
matchLabels:
21+
app.kubernetes.io/name : {{ .Values.redisOperator.name | default .Release.Name }}-metrics
22+
app.kubernetes.io/component: metrics
23+
endpoints:
24+
- port: redis-operator-metrics
25+
interval: {{ .Values.redisOperator.metrics.serviceMonitor.interval }}
26+
scrapeTimeout: {{ .Values.redisOperator.metrics.serviceMonitor.scrapeTimeout }}
27+
namespaceSelector:
28+
matchNames:
29+
- {{ .Release.Namespace }}
30+
{{- end }}

charts/redis-operator/values.yaml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,23 @@ redisOperator:
3333

3434
# metrics configuration for monitoring
3535
metrics:
36-
# Enable metrics server
36+
# -- Enable metrics server
3737
enabled: true
38-
# The address the metrics endpoint binds to
38+
# -- The address the metrics endpoint binds to
3939
bindAddress: ":8080"
40+
# -- The port the metrics endpoint binds to
41+
port: "8080"
42+
# serviceMonitor configuration
43+
serviceMonitor:
44+
enabled: false
45+
interval: 30s
46+
scrapeTimeout: 10s
47+
# -- Namespace where servicemonitor resource will be created, if empty it will be created in the same namespace as the operator
48+
namespace: ""
49+
# -- extraLabels are added to the servicemonitor when enabled set to true
50+
extraLabels: {}
51+
# foo: bar
52+
# team: devops
4053

4154
resources:
4255
limits:

0 commit comments

Comments
 (0)