diff --git a/chart/templates/monitoring/values.yaml b/chart/templates/monitoring/values.yaml index 390ba4a575e166667ddb2938c78b76d20eb9a411..96960687d6851fc5364627de51b0725e3889a8eb 100644 --- a/chart/templates/monitoring/values.yaml +++ b/chart/templates/monitoring/values.yaml @@ -1,5 +1,5 @@ {{- if .Values.monitoring.enabled }} -{{- include "values-secret" (dict "root" $ "package" .Values.monitoring "name" "monitoring" "defaults" (include "bigbang.defaults.monitoring" .)) }} +{{- include "values-secret" (dict "root" $ "package" (dict "values" (fromYaml (include "bigbang.overlays.monitoring" .))) "name" "monitoring" "defaults" (include "bigbang.defaults.monitoring" .)) }} {{- end }} {{- define "bigbang.defaults.monitoring" -}} @@ -122,6 +122,24 @@ prometheus: {{- end }} {{- end }} {{- end }} + {{- if .Values.addons.vault.enabled }} + additionalScrapeConfigs: + - job_name: vault + metrics_path: /v1/sys/metrics + params: + format: ['prometheus'] + scheme: https + authorization: + credentials_file: /vault/secrets/token + {{- $vaultHosts := (dig "istio" "vault" "hosts" dict .Values.addons.vault.values) }} + {{- if $vaultHosts }} + static_configs: + - targets: [{{ tpl ($vaultHosts | first) $ }}] + {{- else }} + static_configs: + - targets: [vault.{{ .Values.domain }}] + {{- end }} + {{- end }} {{- if $istioInjection }} # Add volume/mount for Istio certs for mTLS scraping volumes: @@ -379,3 +397,27 @@ prometheusOperator: {{ include "istioAnnotation" . }} {{- end }} {{- end }} + +{{- /* This function merges defaults in lists from above into overlays */ -}} +{{- /* The end user will not have to replicate additionalScrapeConfigs from above when providing an overlay */ -}} +{{- /* There is a hidden flag `skipOverlayMerge` that can be added to any additionalScrapeConfigs to ignore the defaults */ -}} +{{- define "bigbang.overlays.monitoring" }} + + {{- $defaults := fromYaml (include "bigbang.defaults.monitoring" .) }} + + {{- $overlays := dig "values" dict .Values.monitoring }} + {{- range $prometheusConfig, $default := $defaults.prometheus }} + {{- $overlay := (dig "prometheus" $prometheusConfig dict $overlays) }} + # Only continue if an overlay matches a default constriant and hidden "skipOverlayMerge" is not set + {{- if and $overlay (not $overlay.skipOverlayMerge) }} + + # Add any default additionalScrapeConfigs to overlay + {{- if and (dig "additionalScrapeConfigs" list $default) (dig "additionalScrapeConfigs" list $overlay) }} + {{ $_ := set $overlay "additionalScrapeConfigs" (concat $default.additionalScrapeConfigs $overlay.additionalScrapeConfigs) }} + {{- end }} + + + {{- end }} + {{- end }} +{{ toYaml $overlays }} +{{- end }} diff --git a/chart/values.yaml b/chart/values.yaml index 0b9d5ffeebcaf38717c3b83b3df99f051109f289..8861b37b326fafb756866e7f31b6ee625c26ccba 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -614,7 +614,7 @@ monitoring: git: repo: https://repo1.dso.mil/platform-one/big-bang/apps/core/monitoring.git path: "./chart" - tag: "40.0.0-bb.0" + tag: "40.0.0-bb.1" # -- Flux reconciliation overrides specifically for the Monitoring Package flux: