diff --git a/helmfile/apps/nubus/helmfile-child.yaml.gotmpl b/helmfile/apps/nubus/helmfile-child.yaml.gotmpl index 7cf92bed..513d64e5 100644 --- a/helmfile/apps/nubus/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/nubus/helmfile-child.yaml.gotmpl @@ -36,6 +36,14 @@ repositories: password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }} oci: true url: "{{ coalesce .Values.repositories.helm.registryOpencodeDe .Values.global.helmRegistry | default .Values.charts.nginxS3Gateway.registry }}/{{ .Values.charts.nginxS3Gateway.repository }}" + # prometheus-nats-exporter chart + - name: "prometheus-nats-exporter-repo" + keyring: "../../files/gpg-pubkeys/opencode.gpg" + verify: {{ .Values.charts.prometheusNatsExporter.verify }} + username: {{ env "OD_PRIVATE_REGISTRY_USERNAME" | quote }} + password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }} + oci: true + url: "{{ coalesce .Values.repositories.helm.registryOpencodeDe .Values.global.helmRegistry | default .Values.charts.prometheusNatsExporter.registry }}/{{ .Values.charts.prometheusNatsExporter.repository }}" releases: # Univention Management Stack Umbrella Chart @@ -86,6 +94,18 @@ releases: installed: {{ .Values.apps.nubus.enabled }} timeout: 900 + # prometheus-nats-exporter + - name: "prometheus-nats-exporter" + chart: "prometheus-nats-exporter-repo/{{ .Values.charts.prometheusNatsExporter.name }}" + version: "{{ .Values.charts.prometheusNatsExporter.version }}" + values: + - "values-prometheus-nats-exporter.yaml.gotmpl" + {{- range .Values.customization.release.prometheusNatsExporter }} + - {{ . }} + {{- end }} + installed: {{ eq .Values.monitoring.prometheus.exporters.nats nil | ternary .Values.monitoring.prometheus.exporters.all .Values.monitoring.prometheus.exporters.nats }} + timeout: 900 + commonLabels: deployStage: "050-components" component: "nubus" diff --git a/helmfile/apps/nubus/values-prometheus-nats-exporter.yaml.gotmpl b/helmfile/apps/nubus/values-prometheus-nats-exporter.yaml.gotmpl new file mode 100644 index 00000000..84cb7cc4 --- /dev/null +++ b/helmfile/apps/nubus/values-prometheus-nats-exporter.yaml.gotmpl @@ -0,0 +1,27 @@ +{{/* +SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH +SPDX-License-Identifier: Apache-2.0 +*/}} +--- +image: + repository: {{ coalesce .Values.repositories.image.registryOpencodeDeEnterprise .Values.global.imageRegistry .Values.images.prometheusNatsExporter.registry }}/{{ .Values.images.prometheusNatsExporter.repository }} + tag: {{ .Values.images.prometheusNatsExporter.tag }} + pullPolicy: {{ .Values.global.imagePullPolicy | quote }} + imagePullSecrets: + {{- range .Values.global.imagePullSecrets }} + - name: {{ . | quote }} + {{- end }} + +serviceMonitor: + enabled: {{ .Values.monitoring.prometheus.serviceMonitors.enabled }} + additionalLabels: + {{ .Values.monitoring.prometheus.serviceMonitors.labels | toYaml | nindent 4 }} + +resources: + {{ .Values.resources.prometheusNatsExporter | toYaml | nindent 2 }} + +config: + nats: + service: ums-provisioning-nats + namespace: {{ .Release.Namespace }} + port: 8222 diff --git a/helmfile/environments/default/charts.yaml.gotmpl b/helmfile/environments/default/charts.yaml.gotmpl index b2d94d50..7a15a908 100644 --- a/helmfile/environments/default/charts.yaml.gotmpl +++ b/helmfile/environments/default/charts.yaml.gotmpl @@ -441,6 +441,16 @@ charts: name: "postgresql" version: "2.1.2" verify: true + prometheusNatsExporter: + # providerCategory: "Platform" + # providerResponsible: "openDesk" + # upstreamRegistry: "https://ghcr.io" + # upstreamRepository: "prometheus-community/charts" + registry: "ghcr.io" + repository: "prometheus-community/charts" + name: "prometheus-nats-exporter" + version: "2.20.0" + verify: false redis: # providerCategory: "Community" # providerResponsible: "openDesk" diff --git a/helmfile/environments/default/customization.yaml.gotmpl b/helmfile/environments/default/customization.yaml.gotmpl index 8e662d82..6f8c39bd 100644 --- a/helmfile/environments/default/customization.yaml.gotmpl +++ b/helmfile/environments/default/customization.yaml.gotmpl @@ -56,6 +56,7 @@ customization: intercomService: {} opendeskKeycloakBootstrap: {} nginxS3Gateway: {} + prometheusNatsExporter: {} # open-xchange dovecot: {} openxchange: {} diff --git a/helmfile/environments/default/images.yaml.gotmpl b/helmfile/environments/default/images.yaml.gotmpl index 765daa4d..833d2b4c 100644 --- a/helmfile/environments/default/images.yaml.gotmpl +++ b/helmfile/environments/default/images.yaml.gotmpl @@ -921,6 +921,14 @@ images: registry: "registry-1.docker.io" repository: "library/postgres" tag: "15.13-alpine3.20@sha256:f7de0e2497b9a3b027d41377606f94bb0140a034ed303f6de690aa77637bfbc9" + prometheusNatsExporter: + # providerCategory: "Community" + # providerResponsible: "openDesk" + # upstreamRegistry: "https://registry-1.docker.io" + # upstreamRepository: "natsio/prometheus-nats-exporter" + registry: "docker.io" + repository: "natsio/prometheus-nats-exporter" + tag: "0.17.3@sha256:26c826662ac8424597cc9bdf89ea5b606eb66e3c11db9b1215c27d2076bbb01b" prosody: # providerCategory: "Supplier" # providerResponsible: "Nordeck" diff --git a/helmfile/environments/default/monitoring.yaml.gotmpl b/helmfile/environments/default/monitoring.yaml.gotmpl index 9f19dfdd..dbcf172f 100644 --- a/helmfile/environments/default/monitoring.yaml.gotmpl +++ b/helmfile/environments/default/monitoring.yaml.gotmpl @@ -17,6 +17,13 @@ monitoring: labels: release: "kube-prometheus-stack" + # toggles for deploying additional prometheus exporters as part of openDesk + exporters: + # general switch to enable all optional exporters + all: false + # overwrite for whether a prometheus-nats-exporter should be deployed to allow monitoring of the internal nats server + nats: ~ + grafana: dashboards: enabled: false diff --git a/helmfile/environments/default/resources.yaml.gotmpl b/helmfile/environments/default/resources.yaml.gotmpl index 9b97544b..635c6f86 100644 --- a/helmfile/environments/default/resources.yaml.gotmpl +++ b/helmfile/environments/default/resources.yaml.gotmpl @@ -437,6 +437,13 @@ resources: requests: cpu: 0.1 memory: "256Mi" + prometheusNatsExporter: + limits: + cpu: 99 + memory: "128Mi" + requests: + cpu: 100m + memory: "128Mi" prosody: limits: cpu: 99