Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 1 | {{/* 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 | {{/* |
| 8 | Create a default fully qualified app name. |
| 9 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). |
| 10 | If release name contains chart name it will be used as a full name. |
| 11 | The components in this chart create additional resources that expand the longest created name strings. |
| 12 | The 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 Naser | 91e2fa0 | 2024-02-23 01:46:39 -0500 | [diff] [blame] | 27 | {{/* Fullname suffixed with -operator */}} |
| 28 | {{/* Adding 9 to 26 truncation of kube-prometheus-stack.fullname */}} |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 29 | {{- define "kube-prometheus-stack.operator.fullname" -}} |
Mohammed Naser | 91e2fa0 | 2024-02-23 01:46:39 -0500 | [diff] [blame] | 30 | {{- if .Values.prometheusOperator.fullnameOverride -}} |
| 31 | {{- .Values.prometheusOperator.fullnameOverride | trunc 35 | trimSuffix "-" -}} |
| 32 | {{- else -}} |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 33 | {{- printf "%s-operator" (include "kube-prometheus-stack.fullname" .) -}} |
| 34 | {{- end }} |
Mohammed Naser | 91e2fa0 | 2024-02-23 01:46:39 -0500 | [diff] [blame] | 35 | {{- end }} |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 36 | |
| 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 Tirloni | b9d9799 | 2024-04-24 01:32:56 -0300 | [diff] [blame] | 60 | {{/* ThanosRuler custom resource instance name */}} |
Mohammed Naser | 7d1623e | 2024-06-17 09:12:39 -0400 | [diff] [blame] | 61 | {{/* Subtracting 1 from 26 truncation of kube-prometheus-stack.fullname */}} |
Giovanni Tirloni | b9d9799 | 2024-04-24 01:32:56 -0300 | [diff] [blame] | 62 | {{- define "kube-prometheus-stack.thanosRuler.crname" -}} |
| 63 | {{- if .Values.cleanPrometheusOperatorObjectNames }} |
| 64 | {{- include "kube-prometheus-stack.fullname" . }} |
| 65 | {{- else }} |
Mohammed Naser | 7d1623e | 2024-06-17 09:12:39 -0400 | [diff] [blame] | 66 | {{- print (include "kube-prometheus-stack.fullname" . | trunc 25 | trimSuffix "-") "-thanos-ruler" -}} |
Giovanni Tirloni | b9d9799 | 2024-04-24 01:32:56 -0300 | [diff] [blame] | 67 | {{- end }} |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 68 | {{- end }} |
| 69 | |
Mohammed Naser | 5b49cbb | 2023-08-30 16:16:37 -0400 | [diff] [blame] | 70 | {{/* 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 Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 76 | {{/* 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" }} |
| 83 | app.kubernetes.io/managed-by: {{ .Release.Service }} |
| 84 | app.kubernetes.io/instance: {{ .Release.Name }} |
| 85 | app.kubernetes.io/version: "{{ replace "+" "_" .Chart.Version }}" |
| 86 | app.kubernetes.io/part-of: {{ template "kube-prometheus-stack.name" . }} |
| 87 | chart: {{ template "kube-prometheus-stack.chartref" . }} |
| 88 | release: {{ $.Release.Name | quote }} |
| 89 | heritage: {{ $.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 Naser | 91e2fa0 | 2024-02-23 01:46:39 -0500 | [diff] [blame] | 104 | {{/* 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 Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 113 | {{/* 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 Naser | 5b49cbb | 2023-08-30 16:16:37 -0400 | [diff] [blame] | 134 | {{ default (include "kube-prometheus-stack.thanosRuler.name" .) .Values.thanosRuler.serviceAccount.name }} |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 135 | {{- else -}} |
| 136 | {{ default "default" .Values.thanosRuler.serviceAccount.name }} |
| 137 | {{- end -}} |
| 138 | {{- end -}} |
| 139 | |
| 140 | {{/* |
| 141 | Allow 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 | {{/* |
| 152 | Use 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 Naser | 91e2fa0 | 2024-02-23 01:46:39 -0500 | [diff] [blame] | 163 | Allow 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 Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 174 | Use 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 | {{/* |
| 185 | Use 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 Naser | 5b49cbb | 2023-08-30 16:16:37 -0400 | [diff] [blame] | 267 | {{/* Sets default scrape limits for servicemonitor */}} |
| 268 | {{- define "servicemonitor.scrapeLimits" -}} |
| 269 | {{- with .sampleLimit }} |
| 270 | sampleLimit: {{ . }} |
| 271 | {{- end }} |
| 272 | {{- with .targetLimit }} |
| 273 | targetLimit: {{ . }} |
| 274 | {{- end }} |
| 275 | {{- with .labelLimit }} |
| 276 | labelLimit: {{ . }} |
| 277 | {{- end }} |
| 278 | {{- with .labelNameLengthLimit }} |
| 279 | labelNameLengthLimit: {{ . }} |
| 280 | {{- end }} |
| 281 | {{- with .labelValueLengthLimit }} |
| 282 | labelValueLengthLimit: {{ . }} |
| 283 | {{- end }} |
| 284 | {{- end -}} |
| 285 | |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 286 | {{/* |
| 287 | To help compatibility with other charts which use global.imagePullSecrets. |
| 288 | Allow either an array of {name: pullSecret} maps (k8s-style), or an array of strings (more common helm-style). |
| 289 | global: |
| 290 | imagePullSecrets: |
| 291 | - name: pullSecret1 |
| 292 | - name: pullSecret2 |
| 293 | |
| 294 | or |
| 295 | |
| 296 | global: |
| 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 Naser | 91e2fa0 | 2024-02-23 01:46:39 -0500 | [diff] [blame] | 310 | |
| 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 }} |