blob: 3bd3bc87690bb04d586325f3288ef17c7a44b9ee [file] [log] [blame]
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001{{/* vim: set filetype=mustache: */}}
2{{/* Expand the name of the chart. This is suffixed with -alertmanager, which means subtract 13 from longest 63 available */}}
3{{- define "kube-prometheus-stack.name" -}}
4{{- default .Chart.Name .Values.nameOverride | trunc 50 | trimSuffix "-" -}}
5{{- end }}
6
7{{/*
8Create a default fully qualified app name.
9We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
10If release name contains chart name it will be used as a full name.
11The components in this chart create additional resources that expand the longest created name strings.
12The longest name that gets created adds and extra 37 characters, so truncation should be 63-35=26.
13*/}}
14{{- define "kube-prometheus-stack.fullname" -}}
15{{- if .Values.fullnameOverride -}}
16{{- .Values.fullnameOverride | trunc 26 | trimSuffix "-" -}}
17{{- else -}}
18{{- $name := default .Chart.Name .Values.nameOverride -}}
19{{- if contains $name .Release.Name -}}
20{{- .Release.Name | trunc 26 | trimSuffix "-" -}}
21{{- else -}}
22{{- printf "%s-%s" .Release.Name $name | trunc 26 | trimSuffix "-" -}}
23{{- end -}}
24{{- end -}}
25{{- end -}}
26
Mohammed Naser91e2fa02024-02-23 01:46:39 -050027{{/* Fullname suffixed with -operator */}}
28{{/* Adding 9 to 26 truncation of kube-prometheus-stack.fullname */}}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050029{{- define "kube-prometheus-stack.operator.fullname" -}}
Mohammed Naser91e2fa02024-02-23 01:46:39 -050030{{- if .Values.prometheusOperator.fullnameOverride -}}
31{{- .Values.prometheusOperator.fullnameOverride | trunc 35 | trimSuffix "-" -}}
32{{- else -}}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050033{{- printf "%s-operator" (include "kube-prometheus-stack.fullname" .) -}}
34{{- end }}
Mohammed Naser91e2fa02024-02-23 01:46:39 -050035{{- end }}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050036
37{{/* Prometheus custom resource instance name */}}
38{{- define "kube-prometheus-stack.prometheus.crname" -}}
39{{- if .Values.cleanPrometheusOperatorObjectNames }}
40{{- include "kube-prometheus-stack.fullname" . }}
41{{- else }}
42{{- print (include "kube-prometheus-stack.fullname" .) "-prometheus" }}
43{{- end }}
44{{- end }}
45
46{{/* Prometheus apiVersion for networkpolicy */}}
47{{- define "kube-prometheus-stack.prometheus.networkPolicy.apiVersion" -}}
48{{- print "networking.k8s.io/v1" -}}
49{{- end }}
50
51{{/* Alertmanager custom resource instance name */}}
52{{- define "kube-prometheus-stack.alertmanager.crname" -}}
53{{- if .Values.cleanPrometheusOperatorObjectNames }}
54{{- include "kube-prometheus-stack.fullname" . }}
55{{- else }}
56{{- print (include "kube-prometheus-stack.fullname" .) "-alertmanager" -}}
57{{- end }}
58{{- end }}
59
Giovanni Tirlonib9d97992024-04-24 01:32:56 -030060{{/* ThanosRuler custom resource instance name */}}
Mohammed Naser7d1623e2024-06-17 09:12:39 -040061{{/* Subtracting 1 from 26 truncation of kube-prometheus-stack.fullname */}}
Giovanni Tirlonib9d97992024-04-24 01:32:56 -030062{{- define "kube-prometheus-stack.thanosRuler.crname" -}}
63{{- if .Values.cleanPrometheusOperatorObjectNames }}
64{{- include "kube-prometheus-stack.fullname" . }}
65{{- else }}
Mohammed Naser7d1623e2024-06-17 09:12:39 -040066{{- print (include "kube-prometheus-stack.fullname" . | trunc 25 | trimSuffix "-") "-thanos-ruler" -}}
Giovanni Tirlonib9d97992024-04-24 01:32:56 -030067{{- end }}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050068{{- end }}
69
Mohammed Naser5b49cbb2023-08-30 16:16:37 -040070{{/* Shortened name suffixed with thanos-ruler */}}
71{{- define "kube-prometheus-stack.thanosRuler.name" -}}
72{{- default (printf "%s-thanos-ruler" (include "kube-prometheus-stack.name" .)) .Values.thanosRuler.name -}}
73{{- end }}
74
75
Mohammed Naser9ad0d462023-01-15 20:36:37 -050076{{/* Create chart name and version as used by the chart label. */}}
77{{- define "kube-prometheus-stack.chartref" -}}
78{{- replace "+" "_" .Chart.Version | printf "%s-%s" .Chart.Name -}}
79{{- end }}
80
81{{/* Generate basic labels */}}
82{{- define "kube-prometheus-stack.labels" }}
83app.kubernetes.io/managed-by: {{ .Release.Service }}
84app.kubernetes.io/instance: {{ .Release.Name }}
85app.kubernetes.io/version: "{{ replace "+" "_" .Chart.Version }}"
86app.kubernetes.io/part-of: {{ template "kube-prometheus-stack.name" . }}
87chart: {{ template "kube-prometheus-stack.chartref" . }}
88release: {{ $.Release.Name | quote }}
89heritage: {{ $.Release.Service | quote }}
90{{- if .Values.commonLabels}}
91{{ toYaml .Values.commonLabels }}
92{{- end }}
93{{- end }}
94
95{{/* Create the name of kube-prometheus-stack service account to use */}}
96{{- define "kube-prometheus-stack.operator.serviceAccountName" -}}
97{{- if .Values.prometheusOperator.serviceAccount.create -}}
98 {{ default (include "kube-prometheus-stack.operator.fullname" .) .Values.prometheusOperator.serviceAccount.name }}
99{{- else -}}
100 {{ default "default" .Values.prometheusOperator.serviceAccount.name }}
101{{- end -}}
102{{- end -}}
103
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500104{{/* Create the name of kube-prometheus-stack service account to use */}}
105{{- define "kube-prometheus-stack.operator.admissionWebhooks.serviceAccountName" -}}
106{{- if .Values.prometheusOperator.serviceAccount.create -}}
107 {{ default (printf "%s-webhook" (include "kube-prometheus-stack.operator.fullname" .)) .Values.prometheusOperator.admissionWebhooks.deployment.serviceAccount.name }}
108{{- else -}}
109 {{ default "default" .Values.prometheusOperator.admissionWebhooks.deployment.serviceAccount.name }}
110{{- end -}}
111{{- end -}}
112
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500113{{/* Create the name of prometheus service account to use */}}
114{{- define "kube-prometheus-stack.prometheus.serviceAccountName" -}}
115{{- if .Values.prometheus.serviceAccount.create -}}
116 {{ default (print (include "kube-prometheus-stack.fullname" .) "-prometheus") .Values.prometheus.serviceAccount.name }}
117{{- else -}}
118 {{ default "default" .Values.prometheus.serviceAccount.name }}
119{{- end -}}
120{{- end -}}
121
122{{/* Create the name of alertmanager service account to use */}}
123{{- define "kube-prometheus-stack.alertmanager.serviceAccountName" -}}
124{{- if .Values.alertmanager.serviceAccount.create -}}
125 {{ default (print (include "kube-prometheus-stack.fullname" .) "-alertmanager") .Values.alertmanager.serviceAccount.name }}
126{{- else -}}
127 {{ default "default" .Values.alertmanager.serviceAccount.name }}
128{{- end -}}
129{{- end -}}
130
131{{/* Create the name of thanosRuler service account to use */}}
132{{- define "kube-prometheus-stack.thanosRuler.serviceAccountName" -}}
133{{- if .Values.thanosRuler.serviceAccount.create -}}
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400134 {{ default (include "kube-prometheus-stack.thanosRuler.name" .) .Values.thanosRuler.serviceAccount.name }}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500135{{- else -}}
136 {{ default "default" .Values.thanosRuler.serviceAccount.name }}
137{{- end -}}
138{{- end -}}
139
140{{/*
141Allow the release namespace to be overridden for multi-namespace deployments in combined charts
142*/}}
143{{- define "kube-prometheus-stack.namespace" -}}
144 {{- if .Values.namespaceOverride -}}
145 {{- .Values.namespaceOverride -}}
146 {{- else -}}
147 {{- .Release.Namespace -}}
148 {{- end -}}
149{{- end -}}
150
151{{/*
152Use the grafana namespace override for multi-namespace deployments in combined charts
153*/}}
154{{- define "kube-prometheus-stack-grafana.namespace" -}}
155 {{- if .Values.grafana.namespaceOverride -}}
156 {{- .Values.grafana.namespaceOverride -}}
157 {{- else -}}
158 {{- .Release.Namespace -}}
159 {{- end -}}
160{{- end -}}
161
162{{/*
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500163Allow kube-state-metrics job name to be overridden
164*/}}
165{{- define "kube-prometheus-stack-kube-state-metrics.name" -}}
166 {{- if index .Values "kube-state-metrics" "nameOverride" -}}
167 {{- index .Values "kube-state-metrics" "nameOverride" -}}
168 {{- else -}}
169 {{- print "kube-state-metrics" -}}
170 {{- end -}}
171{{- end -}}
172
173{{/*
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500174Use the kube-state-metrics namespace override for multi-namespace deployments in combined charts
175*/}}
176{{- define "kube-prometheus-stack-kube-state-metrics.namespace" -}}
177 {{- if index .Values "kube-state-metrics" "namespaceOverride" -}}
178 {{- index .Values "kube-state-metrics" "namespaceOverride" -}}
179 {{- else -}}
180 {{- .Release.Namespace -}}
181 {{- end -}}
182{{- end -}}
183
184{{/*
185Use the prometheus-node-exporter namespace override for multi-namespace deployments in combined charts
186*/}}
187{{- define "kube-prometheus-stack-prometheus-node-exporter.namespace" -}}
188 {{- if index .Values "prometheus-node-exporter" "namespaceOverride" -}}
189 {{- index .Values "prometheus-node-exporter" "namespaceOverride" -}}
190 {{- else -}}
191 {{- .Release.Namespace -}}
192 {{- end -}}
193{{- end -}}
194
195{{/* Allow KubeVersion to be overridden. */}}
196{{- define "kube-prometheus-stack.kubeVersion" -}}
197 {{- default .Capabilities.KubeVersion.Version .Values.kubeVersionOverride -}}
198{{- end -}}
199
200{{/* Get Ingress API Version */}}
201{{- define "kube-prometheus-stack.ingress.apiVersion" -}}
202 {{- if and (.Capabilities.APIVersions.Has "networking.k8s.io/v1") (semverCompare ">= 1.19-0" (include "kube-prometheus-stack.kubeVersion" .)) -}}
203 {{- print "networking.k8s.io/v1" -}}
204 {{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" -}}
205 {{- print "networking.k8s.io/v1beta1" -}}
206 {{- else -}}
207 {{- print "extensions/v1beta1" -}}
208 {{- end -}}
209{{- end -}}
210
211{{/* Check Ingress stability */}}
212{{- define "kube-prometheus-stack.ingress.isStable" -}}
213 {{- eq (include "kube-prometheus-stack.ingress.apiVersion" .) "networking.k8s.io/v1" -}}
214{{- end -}}
215
216{{/* Check Ingress supports pathType */}}
217{{/* pathType was added to networking.k8s.io/v1beta1 in Kubernetes 1.18 */}}
218{{- define "kube-prometheus-stack.ingress.supportsPathType" -}}
219 {{- or (eq (include "kube-prometheus-stack.ingress.isStable" .) "true") (and (eq (include "kube-prometheus-stack.ingress.apiVersion" .) "networking.k8s.io/v1beta1") (semverCompare ">= 1.18-0" (include "kube-prometheus-stack.kubeVersion" .))) -}}
220{{- end -}}
221
222{{/* Get Policy API Version */}}
223{{- define "kube-prometheus-stack.pdb.apiVersion" -}}
224 {{- if and (.Capabilities.APIVersions.Has "policy/v1") (semverCompare ">= 1.21-0" (include "kube-prometheus-stack.kubeVersion" .)) -}}
225 {{- print "policy/v1" -}}
226 {{- else -}}
227 {{- print "policy/v1beta1" -}}
228 {{- end -}}
229 {{- end -}}
230
231{{/* Get value based on current Kubernetes version */}}
232{{- define "kube-prometheus-stack.kubeVersionDefaultValue" -}}
233 {{- $values := index . 0 -}}
234 {{- $kubeVersion := index . 1 -}}
235 {{- $old := index . 2 -}}
236 {{- $new := index . 3 -}}
237 {{- $default := index . 4 -}}
238 {{- if kindIs "invalid" $default -}}
239 {{- if semverCompare $kubeVersion (include "kube-prometheus-stack.kubeVersion" $values) -}}
240 {{- print $new -}}
241 {{- else -}}
242 {{- print $old -}}
243 {{- end -}}
244 {{- else -}}
245 {{- print $default }}
246 {{- end -}}
247{{- end -}}
248
249{{/* Get value for kube-controller-manager depending on insecure scraping availability */}}
250{{- define "kube-prometheus-stack.kubeControllerManager.insecureScrape" -}}
251 {{- $values := index . 0 -}}
252 {{- $insecure := index . 1 -}}
253 {{- $secure := index . 2 -}}
254 {{- $userValue := index . 3 -}}
255 {{- include "kube-prometheus-stack.kubeVersionDefaultValue" (list $values ">= 1.22-0" $insecure $secure $userValue) -}}
256{{- end -}}
257
258{{/* Get value for kube-scheduler depending on insecure scraping availability */}}
259{{- define "kube-prometheus-stack.kubeScheduler.insecureScrape" -}}
260 {{- $values := index . 0 -}}
261 {{- $insecure := index . 1 -}}
262 {{- $secure := index . 2 -}}
263 {{- $userValue := index . 3 -}}
264 {{- include "kube-prometheus-stack.kubeVersionDefaultValue" (list $values ">= 1.23-0" $insecure $secure $userValue) -}}
265{{- end -}}
266
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400267{{/* Sets default scrape limits for servicemonitor */}}
268{{- define "servicemonitor.scrapeLimits" -}}
269{{- with .sampleLimit }}
270sampleLimit: {{ . }}
271{{- end }}
272{{- with .targetLimit }}
273targetLimit: {{ . }}
274{{- end }}
275{{- with .labelLimit }}
276labelLimit: {{ . }}
277{{- end }}
278{{- with .labelNameLengthLimit }}
279labelNameLengthLimit: {{ . }}
280{{- end }}
281{{- with .labelValueLengthLimit }}
282labelValueLengthLimit: {{ . }}
283{{- end }}
284{{- end -}}
285
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500286{{/*
287To help compatibility with other charts which use global.imagePullSecrets.
288Allow either an array of {name: pullSecret} maps (k8s-style), or an array of strings (more common helm-style).
289global:
290 imagePullSecrets:
291 - name: pullSecret1
292 - name: pullSecret2
293
294or
295
296global:
297 imagePullSecrets:
298 - pullSecret1
299 - pullSecret2
300*/}}
301{{- define "kube-prometheus-stack.imagePullSecrets" -}}
302{{- range .Values.global.imagePullSecrets }}
303 {{- if eq (typeOf .) "map[string]interface {}" }}
304- {{ toYaml . | trim }}
305 {{- else }}
306- name: {{ . }}
307 {{- end }}
308{{- end }}
309{{- end -}}
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500310
311{{- define "kube-prometheus-stack.operator.admission-webhook.dnsNames" }}
312{{- $fullname := include "kube-prometheus-stack.operator.fullname" . }}
313{{- $namespace := include "kube-prometheus-stack.namespace" . }}
314{{- $fullname }}
315{{ $fullname }}.{{ $namespace }}.svc
316{{- if .Values.prometheusOperator.admissionWebhooks.deployment.enabled }}
317{{ $fullname }}-webhook
318{{ $fullname }}-webhook.{{ $namespace }}.svc
319{{- end }}
320{{- end }}