blob: 731e3e0d2cb009eb50c134c78c28fdfab51f0b80 [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 */}}
61{{- define "kube-prometheus-stack.thanosRuler.crname" -}}
62{{- if .Values.cleanPrometheusOperatorObjectNames }}
63{{- include "kube-prometheus-stack.fullname" . }}
64{{- else }}
65{{- print (include "kube-prometheus-stack.fullname" .) "-thanos-ruler" -}}
66{{- end }}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050067{{- end }}
68
Mohammed Naser5b49cbb2023-08-30 16:16:37 -040069{{/* Shortened name suffixed with thanos-ruler */}}
70{{- define "kube-prometheus-stack.thanosRuler.name" -}}
71{{- default (printf "%s-thanos-ruler" (include "kube-prometheus-stack.name" .)) .Values.thanosRuler.name -}}
72{{- end }}
73
74
Mohammed Naser9ad0d462023-01-15 20:36:37 -050075{{/* Create chart name and version as used by the chart label. */}}
76{{- define "kube-prometheus-stack.chartref" -}}
77{{- replace "+" "_" .Chart.Version | printf "%s-%s" .Chart.Name -}}
78{{- end }}
79
80{{/* Generate basic labels */}}
81{{- define "kube-prometheus-stack.labels" }}
82app.kubernetes.io/managed-by: {{ .Release.Service }}
83app.kubernetes.io/instance: {{ .Release.Name }}
84app.kubernetes.io/version: "{{ replace "+" "_" .Chart.Version }}"
85app.kubernetes.io/part-of: {{ template "kube-prometheus-stack.name" . }}
86chart: {{ template "kube-prometheus-stack.chartref" . }}
87release: {{ $.Release.Name | quote }}
88heritage: {{ $.Release.Service | quote }}
89{{- if .Values.commonLabels}}
90{{ toYaml .Values.commonLabels }}
91{{- end }}
92{{- end }}
93
94{{/* Create the name of kube-prometheus-stack service account to use */}}
95{{- define "kube-prometheus-stack.operator.serviceAccountName" -}}
96{{- if .Values.prometheusOperator.serviceAccount.create -}}
97 {{ default (include "kube-prometheus-stack.operator.fullname" .) .Values.prometheusOperator.serviceAccount.name }}
98{{- else -}}
99 {{ default "default" .Values.prometheusOperator.serviceAccount.name }}
100{{- end -}}
101{{- end -}}
102
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500103{{/* Create the name of kube-prometheus-stack service account to use */}}
104{{- define "kube-prometheus-stack.operator.admissionWebhooks.serviceAccountName" -}}
105{{- if .Values.prometheusOperator.serviceAccount.create -}}
106 {{ default (printf "%s-webhook" (include "kube-prometheus-stack.operator.fullname" .)) .Values.prometheusOperator.admissionWebhooks.deployment.serviceAccount.name }}
107{{- else -}}
108 {{ default "default" .Values.prometheusOperator.admissionWebhooks.deployment.serviceAccount.name }}
109{{- end -}}
110{{- end -}}
111
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500112{{/* Create the name of prometheus service account to use */}}
113{{- define "kube-prometheus-stack.prometheus.serviceAccountName" -}}
114{{- if .Values.prometheus.serviceAccount.create -}}
115 {{ default (print (include "kube-prometheus-stack.fullname" .) "-prometheus") .Values.prometheus.serviceAccount.name }}
116{{- else -}}
117 {{ default "default" .Values.prometheus.serviceAccount.name }}
118{{- end -}}
119{{- end -}}
120
121{{/* Create the name of alertmanager service account to use */}}
122{{- define "kube-prometheus-stack.alertmanager.serviceAccountName" -}}
123{{- if .Values.alertmanager.serviceAccount.create -}}
124 {{ default (print (include "kube-prometheus-stack.fullname" .) "-alertmanager") .Values.alertmanager.serviceAccount.name }}
125{{- else -}}
126 {{ default "default" .Values.alertmanager.serviceAccount.name }}
127{{- end -}}
128{{- end -}}
129
130{{/* Create the name of thanosRuler service account to use */}}
131{{- define "kube-prometheus-stack.thanosRuler.serviceAccountName" -}}
132{{- if .Values.thanosRuler.serviceAccount.create -}}
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400133 {{ default (include "kube-prometheus-stack.thanosRuler.name" .) .Values.thanosRuler.serviceAccount.name }}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500134{{- else -}}
135 {{ default "default" .Values.thanosRuler.serviceAccount.name }}
136{{- end -}}
137{{- end -}}
138
139{{/*
140Allow the release namespace to be overridden for multi-namespace deployments in combined charts
141*/}}
142{{- define "kube-prometheus-stack.namespace" -}}
143 {{- if .Values.namespaceOverride -}}
144 {{- .Values.namespaceOverride -}}
145 {{- else -}}
146 {{- .Release.Namespace -}}
147 {{- end -}}
148{{- end -}}
149
150{{/*
151Use the grafana namespace override for multi-namespace deployments in combined charts
152*/}}
153{{- define "kube-prometheus-stack-grafana.namespace" -}}
154 {{- if .Values.grafana.namespaceOverride -}}
155 {{- .Values.grafana.namespaceOverride -}}
156 {{- else -}}
157 {{- .Release.Namespace -}}
158 {{- end -}}
159{{- end -}}
160
161{{/*
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500162Allow kube-state-metrics job name to be overridden
163*/}}
164{{- define "kube-prometheus-stack-kube-state-metrics.name" -}}
165 {{- if index .Values "kube-state-metrics" "nameOverride" -}}
166 {{- index .Values "kube-state-metrics" "nameOverride" -}}
167 {{- else -}}
168 {{- print "kube-state-metrics" -}}
169 {{- end -}}
170{{- end -}}
171
172{{/*
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500173Use the kube-state-metrics namespace override for multi-namespace deployments in combined charts
174*/}}
175{{- define "kube-prometheus-stack-kube-state-metrics.namespace" -}}
176 {{- if index .Values "kube-state-metrics" "namespaceOverride" -}}
177 {{- index .Values "kube-state-metrics" "namespaceOverride" -}}
178 {{- else -}}
179 {{- .Release.Namespace -}}
180 {{- end -}}
181{{- end -}}
182
183{{/*
184Use the prometheus-node-exporter namespace override for multi-namespace deployments in combined charts
185*/}}
186{{- define "kube-prometheus-stack-prometheus-node-exporter.namespace" -}}
187 {{- if index .Values "prometheus-node-exporter" "namespaceOverride" -}}
188 {{- index .Values "prometheus-node-exporter" "namespaceOverride" -}}
189 {{- else -}}
190 {{- .Release.Namespace -}}
191 {{- end -}}
192{{- end -}}
193
194{{/* Allow KubeVersion to be overridden. */}}
195{{- define "kube-prometheus-stack.kubeVersion" -}}
196 {{- default .Capabilities.KubeVersion.Version .Values.kubeVersionOverride -}}
197{{- end -}}
198
199{{/* Get Ingress API Version */}}
200{{- define "kube-prometheus-stack.ingress.apiVersion" -}}
201 {{- if and (.Capabilities.APIVersions.Has "networking.k8s.io/v1") (semverCompare ">= 1.19-0" (include "kube-prometheus-stack.kubeVersion" .)) -}}
202 {{- print "networking.k8s.io/v1" -}}
203 {{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" -}}
204 {{- print "networking.k8s.io/v1beta1" -}}
205 {{- else -}}
206 {{- print "extensions/v1beta1" -}}
207 {{- end -}}
208{{- end -}}
209
210{{/* Check Ingress stability */}}
211{{- define "kube-prometheus-stack.ingress.isStable" -}}
212 {{- eq (include "kube-prometheus-stack.ingress.apiVersion" .) "networking.k8s.io/v1" -}}
213{{- end -}}
214
215{{/* Check Ingress supports pathType */}}
216{{/* pathType was added to networking.k8s.io/v1beta1 in Kubernetes 1.18 */}}
217{{- define "kube-prometheus-stack.ingress.supportsPathType" -}}
218 {{- 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" .))) -}}
219{{- end -}}
220
221{{/* Get Policy API Version */}}
222{{- define "kube-prometheus-stack.pdb.apiVersion" -}}
223 {{- if and (.Capabilities.APIVersions.Has "policy/v1") (semverCompare ">= 1.21-0" (include "kube-prometheus-stack.kubeVersion" .)) -}}
224 {{- print "policy/v1" -}}
225 {{- else -}}
226 {{- print "policy/v1beta1" -}}
227 {{- end -}}
228 {{- end -}}
229
230{{/* Get value based on current Kubernetes version */}}
231{{- define "kube-prometheus-stack.kubeVersionDefaultValue" -}}
232 {{- $values := index . 0 -}}
233 {{- $kubeVersion := index . 1 -}}
234 {{- $old := index . 2 -}}
235 {{- $new := index . 3 -}}
236 {{- $default := index . 4 -}}
237 {{- if kindIs "invalid" $default -}}
238 {{- if semverCompare $kubeVersion (include "kube-prometheus-stack.kubeVersion" $values) -}}
239 {{- print $new -}}
240 {{- else -}}
241 {{- print $old -}}
242 {{- end -}}
243 {{- else -}}
244 {{- print $default }}
245 {{- end -}}
246{{- end -}}
247
248{{/* Get value for kube-controller-manager depending on insecure scraping availability */}}
249{{- define "kube-prometheus-stack.kubeControllerManager.insecureScrape" -}}
250 {{- $values := index . 0 -}}
251 {{- $insecure := index . 1 -}}
252 {{- $secure := index . 2 -}}
253 {{- $userValue := index . 3 -}}
254 {{- include "kube-prometheus-stack.kubeVersionDefaultValue" (list $values ">= 1.22-0" $insecure $secure $userValue) -}}
255{{- end -}}
256
257{{/* Get value for kube-scheduler depending on insecure scraping availability */}}
258{{- define "kube-prometheus-stack.kubeScheduler.insecureScrape" -}}
259 {{- $values := index . 0 -}}
260 {{- $insecure := index . 1 -}}
261 {{- $secure := index . 2 -}}
262 {{- $userValue := index . 3 -}}
263 {{- include "kube-prometheus-stack.kubeVersionDefaultValue" (list $values ">= 1.23-0" $insecure $secure $userValue) -}}
264{{- end -}}
265
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400266{{/* Sets default scrape limits for servicemonitor */}}
267{{- define "servicemonitor.scrapeLimits" -}}
268{{- with .sampleLimit }}
269sampleLimit: {{ . }}
270{{- end }}
271{{- with .targetLimit }}
272targetLimit: {{ . }}
273{{- end }}
274{{- with .labelLimit }}
275labelLimit: {{ . }}
276{{- end }}
277{{- with .labelNameLengthLimit }}
278labelNameLengthLimit: {{ . }}
279{{- end }}
280{{- with .labelValueLengthLimit }}
281labelValueLengthLimit: {{ . }}
282{{- end }}
283{{- end -}}
284
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500285{{/*
286To help compatibility with other charts which use global.imagePullSecrets.
287Allow either an array of {name: pullSecret} maps (k8s-style), or an array of strings (more common helm-style).
288global:
289 imagePullSecrets:
290 - name: pullSecret1
291 - name: pullSecret2
292
293or
294
295global:
296 imagePullSecrets:
297 - pullSecret1
298 - pullSecret2
299*/}}
300{{- define "kube-prometheus-stack.imagePullSecrets" -}}
301{{- range .Values.global.imagePullSecrets }}
302 {{- if eq (typeOf .) "map[string]interface {}" }}
303- {{ toYaml . | trim }}
304 {{- else }}
305- name: {{ . }}
306 {{- end }}
307{{- end }}
308{{- end -}}
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500309
310{{- define "kube-prometheus-stack.operator.admission-webhook.dnsNames" }}
311{{- $fullname := include "kube-prometheus-stack.operator.fullname" . }}
312{{- $namespace := include "kube-prometheus-stack.namespace" . }}
313{{- $fullname }}
314{{ $fullname }}.{{ $namespace }}.svc
315{{- if .Values.prometheusOperator.admissionWebhooks.deployment.enabled }}
316{{ $fullname }}-webhook
317{{ $fullname }}-webhook.{{ $namespace }}.svc
318{{- end }}
319{{- end }}