diff --git a/.github/workflows/helm-test.yml b/.github/workflows/helm-test.yml index 18a52da..16eaa73 100644 --- a/.github/workflows/helm-test.yml +++ b/.github/workflows/helm-test.yml @@ -55,3 +55,10 @@ jobs: run: | helm template ${{ matrix.chart }} deploy/helm/${{ matrix.chart }} --set image.tag=test \ | kubeconform -strict -summary -kubernetes-version "$KUBERNETES_VERSION" + + - name: Validate the ServiceMonitor renders (operator CRD skipped) + run: | + rendered=$(helm template ${{ matrix.chart }} deploy/helm/${{ matrix.chart }} \ + --set image.tag=test --set serviceMonitor.enabled=true) + echo "$rendered" | grep -q 'kind: ServiceMonitor' + echo "$rendered" | kubeconform -strict -summary -skip ServiceMonitor -kubernetes-version "$KUBERNETES_VERSION" diff --git a/deploy/helm/ledger/templates/servicemonitor.yaml b/deploy/helm/ledger/templates/servicemonitor.yaml new file mode 100644 index 0000000..31463e5 --- /dev/null +++ b/deploy/helm/ledger/templates/servicemonitor.yaml @@ -0,0 +1,16 @@ +{{- if .Values.serviceMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "ledger.fullname" . }} + labels: + {{- include "ledger.labels" . | nindent 4 }} +spec: + selector: + matchLabels: + {{- include "ledger.selectorLabels" . | nindent 6 }} + endpoints: + - port: http + path: {{ .Values.serviceMonitor.path }} + interval: {{ .Values.serviceMonitor.interval }} +{{- end }} diff --git a/deploy/helm/ledger/values.yaml b/deploy/helm/ledger/values.yaml index 69b67df..beb310f 100644 --- a/deploy/helm/ledger/values.yaml +++ b/deploy/helm/ledger/values.yaml @@ -19,6 +19,12 @@ service: type: ClusterIP port: 8080 +# Prometheus Operator ServiceMonitor. Off by default; enable on a cluster running the operator. +serviceMonitor: + enabled: false + interval: 30s + path: /actuator/prometheus + resources: requests: cpu: 250m diff --git a/deploy/helm/payments/templates/servicemonitor.yaml b/deploy/helm/payments/templates/servicemonitor.yaml new file mode 100644 index 0000000..6d5f87d --- /dev/null +++ b/deploy/helm/payments/templates/servicemonitor.yaml @@ -0,0 +1,16 @@ +{{- if .Values.serviceMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "payments.fullname" . }} + labels: + {{- include "payments.labels" . | nindent 4 }} +spec: + selector: + matchLabels: + {{- include "payments.selectorLabels" . | nindent 6 }} + endpoints: + - port: http + path: {{ .Values.serviceMonitor.path }} + interval: {{ .Values.serviceMonitor.interval }} +{{- end }} diff --git a/deploy/helm/payments/values.yaml b/deploy/helm/payments/values.yaml index a3c416d..93363af 100644 --- a/deploy/helm/payments/values.yaml +++ b/deploy/helm/payments/values.yaml @@ -19,6 +19,12 @@ service: type: ClusterIP port: 8080 +# Prometheus Operator ServiceMonitor. Off by default; enable on a cluster running the operator. +serviceMonitor: + enabled: false + interval: 30s + path: /actuator/prometheus + resources: requests: cpu: 250m