50c2fe2a1e
ci / lint (push) Successful in 1m19s
ci / unit (push) Failing after 1m2s
ci / integration (push) Has been skipped
ci / types (push) Successful in 1m37s
ci / security (push) Failing after 38s
ci / dockerfile (push) Successful in 14s
ci / image (api) (push) Has been skipped
ci / image (reconciler) (push) Has been skipped
ci / image (worker) (push) Has been skipped
ci / bump (push) Has been skipped
Complete working build of the system learn-python/ teaches. 164 tests, mypy --strict clean, domain coverage 99%.
45 lines
1.3 KiB
YAML
45 lines
1.3 KiB
YAML
{{- if .Values.serviceMonitor.enabled }}
|
|
{{/*
|
|
Chart-native, values-gated. A hand-authored ServiceMonitor CR applied next to the release
|
|
is banned: it drifts from the chart, survives a `helm uninstall`, and nothing owns it.
|
|
|
|
The api is scraped through its Service. The worker and reconciler have no Service — they
|
|
are scraped by pod, which is why their metrics port is named and their pods carry the
|
|
component label.
|
|
*/}}
|
|
apiVersion: monitoring.coreos.com/v1
|
|
kind: ServiceMonitor
|
|
metadata:
|
|
name: {{ include "svcforge.fullname" . }}-api
|
|
labels:
|
|
{{- include "svcforge.labels" . | nindent 4 }}
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
{{- include "svcforge.selectorLabels" (dict "ctx" $ "component" "api") | nindent 6 }}
|
|
endpoints:
|
|
- port: http
|
|
path: /metrics
|
|
interval: {{ .Values.serviceMonitor.interval }}
|
|
---
|
|
apiVersion: monitoring.coreos.com/v1
|
|
kind: PodMonitor
|
|
metadata:
|
|
name: {{ include "svcforge.fullname" . }}-workers
|
|
labels:
|
|
{{- include "svcforge.labels" . | nindent 4 }}
|
|
spec:
|
|
selector:
|
|
matchExpressions:
|
|
- key: app.kubernetes.io/component
|
|
operator: In
|
|
values: [worker, reconciler]
|
|
- key: app.kubernetes.io/instance
|
|
operator: In
|
|
values: [{{ .Release.Name }}]
|
|
podMetricsEndpoints:
|
|
- port: metrics
|
|
path: /metrics
|
|
interval: {{ .Values.serviceMonitor.interval }}
|
|
{{- end }}
|