Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 17 additions & 15 deletions charts/tfy-prometheus-config/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,21 +43,22 @@ This chart is used to configure prometheus. It is used to configure the scrape c

### prometheusRules Prometheus rules for prometheus

| Name | Description | Value |
| -------------------------------------------- | ------------------------------------ | ---------------------------------------- |
| `prometheusRules.containerRules.enabled` | Enable prometheus rules for alerts | `true` |
| `prometheusRules.containerRules.name` | Name of the prometheus rules | `tfy-alertmanager-config-alerting-rules` |
| `prometheusRules.containerRules.labels` | Labels for the prometheus rules | `{}` |
| `prometheusRules.containerRules.annotations` | Annotations for the prometheus rules | `{}` |
| `prometheusRules.kubecostRules.enabled` | Enable prometheus rules for kubecost | `true` |
| `prometheusRules.kubecostRules.name` | Name of the prometheus rules | `tfy-alertmanager-config-kubecost-rules` |
| `prometheusRules.kubecostRules.labels` | Labels for the prometheus rules | `{}` |
| `prometheusRules.kubecostRules.annotations` | Annotations for the prometheus rules | `{}` |
| `prometheusRules.envoyPortRules.enabled` | Enable prometheus rules for alerts | `true` |
| `prometheusRules.envoyPortRules.name` | Name of the prometheus rules | `tfy-envoy-port-rules` |
| `prometheusRules.envoyPortRules.labels` | Labels for the prometheus rules | `{}` |
| `prometheusRules.envoyPortRules.annotations` | Annotations for the prometheus rules | `{}` |
| `prometheusRules.envoyPortRules.portList` | List of common ports | `[]` |
| Name | Description | Value |
| -------------------------------------------- | ---------------------------------------------------- | ---------------------------------------- |
| `prometheusRules.containerRules.enabled` | Enable prometheus rules for alerts | `true` |
| `prometheusRules.containerRules.name` | Name of the prometheus rules | `tfy-alertmanager-config-alerting-rules` |
| `prometheusRules.containerRules.labels` | Labels for the prometheus rules | `{}` |
| `prometheusRules.containerRules.annotations` | Annotations for the prometheus rules | `{}` |
| `prometheusRules.kubecostRules.enabled` | Enable prometheus rules for kubecost | `true` |
| `prometheusRules.kubecostRules.name` | Name of the prometheus rules | `tfy-alertmanager-config-kubecost-rules` |
| `prometheusRules.kubecostRules.labels` | Labels for the prometheus rules | `{}` |
| `prometheusRules.kubecostRules.annotations` | Annotations for the prometheus rules | `{}` |
| `prometheusRules.envoyPortRules.enabled` | Enable prometheus rules for alerts | `true` |
| `prometheusRules.envoyPortRules.name` | Name of the prometheus rules | `tfy-envoy-port-rules` |
| `prometheusRules.envoyPortRules.labels` | Labels for the prometheus rules | `{}` |
| `prometheusRules.envoyPortRules.annotations` | Annotations for the prometheus rules | `{}` |
| `prometheusRules.envoyPortRules.portList` | List of common ports | `[]` |
| `prometheusRules.selectorLabels` | Selector used by prometheus to find prometheus rules | `{}` |

### controlPlaneMonitors service monitors for control plane components

Expand Down Expand Up @@ -153,6 +154,7 @@ This chart is used to configure prometheus. It is used to configure the scrape c
| Name | Description | Value |
| ---------------------------------------------------------- | ----------------------------------------------- | ----------------------------------------- |
| `serviceMonitors.enabled` | Enable service monitors for prometheus | `true` |
| `serviceMonitors.labels` | Labels for service monitors | `{}` |
| `serviceMonitors.alertManager.enabled` | Enable service monitor for alert manager | `true` |
| `serviceMonitors.alertManager.name` | Name of the service monitor | `prometheus-kube-prometheus-alertmanager` |
| `serviceMonitors.alertManager.labels` | Labels for alert manager | `{}` |
Expand Down
156 changes: 68 additions & 88 deletions charts/tfy-prometheus-config/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
{{/*}}
Global Labels
*/}}
{{- define "global.labels" -}}
{{- $prometheusLabel := dict "release" "prometheus" }}
{{- if .Values.global.labels }}
{{- toYaml .Values.global.labels }}
{{- else }}
{{- toYaml $prometheusLabel }}
{{- end }}
{{- end }}

{{/*
Service Monitor Labels
*/}}
{{- define "serviceMonitors.labels"}}
{{- $mergedLabels := mergeOverwrite (include "global.labels" . | fromYaml) .Values.serviceMonitors.labels }}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should use a deepCopy function here. Also fromYaml shouldn't be required

{{- toYaml $mergedLabels }}
{{- end }}

{{/*
Alert Manager Labels
*/}}
Expand Down Expand Up @@ -74,16 +94,12 @@ Annotations for kubernetes pods scrape configs
{{- end }}

{{/*
Argo workflows service monitor labels
Argo Workflows service monitor labels
*/}}
{{- define "argo-workflows.labels" -}}
{{- if .Values.serviceMonitors.workflows.labels }}
{{- toYaml .Values.serviceMonitors.workflows.labels }}
{{- else if .Values.global.labels }}
{{- toYaml .Values.global.labels }}
{{- else }}
{{- toYaml (dict "release" "prometheus") }}
{{- end }}
{{- $base := include "serviceMonitors.labels" . | fromYaml }}
{{- $argoWorkflowsLabels := mergeOverwrite $base (.Values.serviceMonitors.workflows.labels | default (dict)) }}
{{- toYaml $argoWorkflowsLabels }}
{{- end }}


Expand Down Expand Up @@ -127,18 +143,15 @@ Elasti service monitor annotations
{{- end }}

{{/*
Keda service monitor labels
KEDA service monitor labels
*/}}
{{- define "keda.labels" -}}
{{- if .Values.serviceMonitors.keda.labels }}
{{- toYaml .Values.serviceMonitors.keda.labels }}
{{- else if .Values.global.labels }}
{{- toYaml .Values.global.labels }}
{{- else }}
{{- toYaml (dict "release" "prometheus") }}
{{- end }}
{{- $base := include "serviceMonitors.labels" . | fromYaml }}
{{- $kedaLabels := mergeOverwrite $base (.Values.serviceMonitors.keda.labels | default (dict)) }}
{{- toYaml $kedaLabels }}
{{- end }}


{{/*
Keda service monitor annotations
*/}}
Expand All @@ -153,18 +166,15 @@ Keda service monitor annotations
{{- end }}

{{/*
Kubecost service monitor labels
Kubecost service monitor labels
*/}}
{{- define "kubecost.labels" -}}
{{- if .Values.serviceMonitors.kubecost.labels }}
{{- toYaml .Values.serviceMonitors.kubecost.labels }}
{{- else if .Values.global.labels }}
{{- toYaml .Values.global.labels }}
{{- else }}
{{- toYaml (dict "release" "prometheus") }}
{{- end }}
{{- $base := include "serviceMonitors.labels" . | fromYaml }}
{{- $kubecostLabels := mergeOverwrite $base (.Values.serviceMonitors.kubecost.labels | default (dict)) }}
{{- toYaml $kubecostLabels }}
{{- end }}


{{/*
Kubecost service monitor annotations
*/}}
Expand All @@ -183,15 +193,12 @@ Kubecost service monitor annotations
Prometheus service monitor labels
*/}}
{{- define "prometheus.labels" -}}
{{- if .Values.serviceMonitors.prometheus.labels }}
{{- toYaml .Values.serviceMonitors.prometheus.labels }}
{{- else if .Values.global.labels }}
{{- toYaml .Values.global.labels }}
{{- else }}
{{- toYaml (dict "release" "prometheus") }}
{{- end }}
{{- $base := include "serviceMonitors.labels" . | fromYaml }}
{{- $prometheusLabels := mergeOverwrite $base (.Values.serviceMonitors.prometheus.labels | default (dict)) }}
{{- toYaml $prometheusLabels }}
{{- end }}


{{/*
Prometheus service monitor annotations
*/}}
Expand All @@ -206,16 +213,12 @@ Kubecost service monitor annotations
{{- end }}

{{/*
Prometheus operator service monitor labels
Prometheus Operator service monitor labels
*/}}
{{- define "prometheusOperator.labels" -}}
{{- if .Values.serviceMonitors.prometheusOperator.labels }}
{{- toYaml .Values.serviceMonitors.prometheusOperator.labels }}
{{- else if .Values.global.labels }}
{{- toYaml .Values.global.labels }}
{{- else }}
{{- toYaml (dict "release" "prometheus") }}
{{- end }}
{{- $base := include "serviceMonitors.labels" . | fromYaml }}
{{- $prometheusOperatorLabels := mergeOverwrite $base (.Values.serviceMonitors.prometheusOperator.labels | default (dict)) }}
{{- toYaml $prometheusOperatorLabels }}
{{- end }}

{{/*
Expand Down Expand Up @@ -314,80 +317,59 @@ Container rules annotations
Alert manager service monitor labels
*/}}
{{- define "alert-manager.labels" -}}
{{- if .Values.serviceMonitors.alertManager.labels }}
{{- toYaml .Values.serviceMonitors.alertManager.labels }}
{{- else if .Values.global.labels }}
{{- toYaml .Values.global.labels }}
{{- else }}
{{- toYaml (dict "release" "prometheus") }}
{{- end }}
{{- $base := include "serviceMonitors.labels" . | fromYaml }}
{{- $alertManagerLabels := mergeOverwrite $base .Values.serviceMonitors.alertManager.labels }}
{{- toYaml $alertManagerLabels }}
{{- end }}

{{/*
Kubelet service monitor labels
*/}}
{{- define "kubelet.labels" -}}
{{- if .Values.serviceMonitors.kubelet.labels }}
{{- toYaml .Values.serviceMonitors.kubelet.labels }}
{{- else if .Values.global.labels }}
{{- toYaml .Values.global.labels }}
{{- else }}
{{- toYaml (dict "release" "prometheus") }}
{{- end }}
{{- $base := include "serviceMonitors.labels" . | fromYaml }}
{{- $kubeletLabels := mergeOverwrite $base .Values.serviceMonitors.kubelet.labels }}
{{- toYaml $kubeletLabels }}
{{- end }}

{{/*
Node exporter service monitor labels
*/}}
{{- define "nodeExporter.labels" -}}
{{- if .Values.serviceMonitors.nodeExporter.labels }}
{{- toYaml .Values.serviceMonitors.nodeExporter.labels }}
{{- else if .Values.global.labels }}
{{- toYaml .Values.global.labels }}
{{- else }}
{{- toYaml (dict "release" "prometheus") }}
{{- end }}
{{- $base := include "serviceMonitors.labels" . | fromYaml }}
{{- $nodeExporterLabels := mergeOverwrite $base (.Values.serviceMonitors.nodeExporter.labels | default (dict)) }}
{{- toYaml $nodeExporterLabels }}
{{- end }}


{{/*
Kube state metrics service monitor labels
*/}}
{{- define "kubeStateMetrics.labels" -}}
{{- if .Values.serviceMonitors.kubeStateMetrics.labels }}
{{- toYaml .Values.serviceMonitors.kubeStateMetrics.labels }}
{{- else if .Values.global.labels }}
{{- toYaml .Values.global.labels }}
{{- else }}
{{- toYaml (dict "release" "prometheus") }}
{{- end }}
{{- $base := include "serviceMonitors.labels" . | fromYaml }}
{{- $kubeStateMetricsLabels := mergeOverwrite $base (.Values.serviceMonitors.kubeStateMetrics.labels | default (dict)) }}
{{- toYaml $kubeStateMetricsLabels }}
{{- end }}

{{/*
Karpenter service monitor labels
*/}}
{{- define "karpenter.labels" -}}
{{- if .Values.serviceMonitors.karpenter.labels }}
{{- toYaml .Values.serviceMonitors.karpenter.labels }}
{{- else if .Values.global.labels }}
{{- toYaml .Values.global.labels }}
{{- else }}
{{- toYaml (dict "release" "prometheus") }}
{{- end }}
{{- $base := include "serviceMonitors.labels" . | fromYaml }}
{{- $karpenterLabels := mergeOverwrite $base (.Values.serviceMonitors.karpenter.labels | default (dict)) }}
{{- toYaml $karpenterLabels }}
{{- end }}


{{/*
GPU service monitor labels
*/}}
{{- define "gpu.labels" -}}
{{- if .Values.serviceMonitors.gpu.labels }}
{{- toYaml .Values.serviceMonitors.gpu.labels }}
{{- else if .Values.global.labels }}
{{- toYaml .Values.global.labels }}
{{- else }}
{{- toYaml (dict "release" "prometheus") }}
{{- end }}
{{- $base := include "serviceMonitors.labels" . | fromYaml }}
{{- $gpuLabels := mergeOverwrite $base (.Values.serviceMonitors.gpu.labels | default (dict)) }}
{{- toYaml $gpuLabels }}
{{- end }}


{{/*
GPU service monitor annotations
*/}}
Expand Down Expand Up @@ -596,15 +578,13 @@ Container rules annotations
{{- end }}
{{- end }}

{{- /*
{{/*
SSH service monitor labels
*/ -}}
*/}}
{{- define "sshServer.labels" -}}
{{- if .Values.serviceMonitors.sshServer.labels }}
{{- toYaml .Values.serviceMonitors.sshServer.labels }}
{{- else }}
{{- toYaml (dict "release" "prometheus") }}
{{- end }}
{{- $base := include "serviceMonitors.labels" . | fromYaml }}
{{- $sshLabels := mergeOverwrite $base (.Values.serviceMonitors.sshServer.labels | default (dict)) }}
{{- toYaml $sshLabels }}
{{- end }}

{{/*
Expand Down
4 changes: 4 additions & 0 deletions charts/tfy-prometheus-config/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,8 @@ prometheusRules:
annotations: {}
## @param prometheusRules.envoyPortRules.portList [array] List of common ports
portList: ["80", "443", "3000", "5000", "5005", "8000", "8008", "8080", "8443", "6000", "9000", "9090", "10000"]
## @param prometheusRules.selectorLabels [object] Selector used by prometheus to find prometheus rules
selectorLabels: {}
## @section controlPlaneMonitors service monitors for control plane components
controlPlaneMonitors:
## @param controlPlaneMonitors.enabled Enable service monitors for control plane components
Expand Down Expand Up @@ -476,6 +478,8 @@ controlPlaneMonitors:
serviceMonitors:
## @param serviceMonitors.enabled Enable service monitors for prometheus
enabled: true
## @param serviceMonitors.labels [object] Labels for service monitors
labels: {}
# serviceMonitors.alertManager Service monitor for alert manager
alertManager:
## @param serviceMonitors.alertManager.enabled Enable service monitor for alert manager
Expand Down
Loading