Skip to content

Commit 356ab62

Browse files
authored
feat(deps): hydra-maester - add metrics support (ory#780)
* feat(hydra-maester): Add metrics support * feat: add new variant of values with the metrics support for automated verification
1 parent b47b9c1 commit 356ab62

File tree

5 files changed

+105
-1
lines changed

5 files changed

+105
-1
lines changed

hacks/values/hydra-maester/default.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,13 @@ deployment:
1919
extraVolumeMounts:
2020
- name: "test-volume"
2121
mountPath: /test-volume
22+
service:
23+
metrics:
24+
enabled: true
25+
annotations:
26+
ory.sh/test-annotations: "true"
27+
serviceMonitor:
28+
labels:
29+
release: "prometheus"
30+
tlsConfig:
31+
insecureSkipVerify: true

helm/charts/hydra-maester/templates/deployment.yaml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ spec:
5959
command:
6060
- /manager
6161
args:
62-
- --metrics-addr=127.0.0.1:8080
62+
- --metrics-addr={{ if .Values.service.metrics.enabled }}0.0.0.0{{ else }}127.0.0.1{{ end }}:{{ .Values.service.metrics.port }}
6363
- --hydra-url={{ required "scheme is required" .Values.adminService.scheme }}://{{ .Values.adminService.name | default ( include "hydra-maester.adminService" . ) }}
6464
- --hydra-port={{ required "port must be set and non-empty" .Values.adminService.port }}
6565
{{- with .Values.adminService.endpoint }}
@@ -96,6 +96,12 @@ spec:
9696
securityContext:
9797
{{- toYaml .Values.deployment.securityContext | nindent 12 }}
9898
{{- end }}
99+
ports:
100+
{{- if .Values.service.metrics.enabled }}
101+
- name: {{ .Values.service.metrics.name }}
102+
containerPort: {{ .Values.service.metrics.port }}
103+
protocol: TCP
104+
{{- end }}
99105
serviceAccountName: {{ include "hydra-maester.fullname" . }}-account
100106
automountServiceAccountToken: {{ .Values.deployment.automountServiceAccountToken }}
101107
{{- if .Values.priorityClassName }}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{{- if .Values.service.metrics.enabled }}
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: {{ include "hydra-maester.fullname" . }}-metrics
6+
namespace: {{ .Release.Namespace }}
7+
labels:
8+
app.kubernetes.io/component: metrics
9+
{{- include "hydra-maester.labels" . | nindent 4 }}
10+
{{- with .Values.service.metrics.annotations }}
11+
annotations:
12+
{{- toYaml . | nindent 4 }}
13+
{{- end }}
14+
spec:
15+
type: {{ .Values.service.metrics.type }}
16+
{{- if eq .Values.service.metrics.type "LoadBalancer" }}
17+
{{- with .Values.service.metrics.loadBalancerIP }}
18+
loadBalancerIP: {{ . }}
19+
{{- end }}
20+
{{- end }}
21+
ports:
22+
- port: {{ .Values.service.metrics.port }}
23+
targetPort: {{ .Values.service.metrics.name }}
24+
protocol: TCP
25+
name: {{ .Values.service.metrics.name }}
26+
selector:
27+
app.kubernetes.io/name: {{ include "hydra-maester.fullname" . }}
28+
app.kubernetes.io/instance: {{ .Release.Name }}
29+
{{ end }}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") (.Values.service.metrics.enabled) }}
2+
apiVersion: monitoring.coreos.com/v1
3+
kind: ServiceMonitor
4+
metadata:
5+
name: {{ include "hydra-maester.fullname" . }}-metrics
6+
namespace: {{ .Release.Namespace }}
7+
labels:
8+
app.kubernetes.io/component: metrics
9+
{{- include "hydra-maester.labels" . | nindent 4 }}
10+
{{- with .Values.serviceMonitor.labels }}
11+
{{- toYaml . | nindent 4 }}
12+
{{- end }}
13+
{{- with .Values.service.metrics.annotations }}
14+
annotations:
15+
{{- toYaml . | nindent 4 }}
16+
{{- end }}
17+
spec:
18+
endpoints:
19+
- path: /metrics
20+
port: {{ .Values.service.metrics.name }}
21+
scheme: {{ .Values.serviceMonitor.scheme }}
22+
interval: {{ .Values.serviceMonitor.scrapeInterval }}
23+
scrapeTimeout: {{ .Values.serviceMonitor.scrapeTimeout }}
24+
{{- with .Values.serviceMonitor.tlsConfig }}
25+
tlsConfig:
26+
{{- toYaml . | nindent 6 }}
27+
{{- end }}
28+
selector:
29+
matchLabels:
30+
app.kubernetes.io/name: {{ include "hydra-maester.fullname" . }}
31+
app.kubernetes.io/instance: {{ .Release.Name }}
32+
app.kubernetes.io/component: metrics
33+
{{- end }}

helm/charts/hydra-maester/values.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,3 +157,29 @@ pdb:
157157
spec:
158158
minAvailable: ""
159159
maxUnavailable: ""
160+
161+
## -- Service configurations
162+
service:
163+
## -- Metrics service
164+
metrics:
165+
enabled: false
166+
type: ClusterIP
167+
## -- The load balancer IP
168+
loadBalancerIP: ""
169+
name: http-metrics
170+
port: 8080
171+
annotations: {}
172+
173+
## -- Parameters for the Prometheus ServiceMonitor objects.
174+
# Reference: https://docs.openshift.com/container-platform/4.6/rest_api/monitoring_apis/servicemonitor-monitoring-coreos-com-v1.html
175+
serviceMonitor:
176+
# -- HTTP scheme to use for scraping.
177+
scheme: http
178+
# -- Interval at which metrics should be scraped
179+
scrapeInterval: 60s
180+
# -- Timeout after which the scrape is ended
181+
scrapeTimeout: 30s
182+
# -- Provide additional labels to the ServiceMonitor resource metadata
183+
labels: {}
184+
# -- TLS configuration to use when scraping the endpoint
185+
tlsConfig: {}

0 commit comments

Comments
 (0)