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 */}} |
| 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 Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 67 | {{- end }} |
| 68 | |
Mohammed Naser | 5b49cbb | 2023-08-30 16:16:37 -0400 | [diff] [blame] | 69 | {{/* 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 Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 75 | {{/* 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" }} |
| 82 | app.kubernetes.io/managed-by: {{ .Release.Service }} |
| 83 | app.kubernetes.io/instance: {{ .Release.Name }} |
| 84 | app.kubernetes.io/version: "{{ replace "+" "_" .Chart.Version }}" |
| 85 | app.kubernetes.io/part-of: {{ template "kube-prometheus-stack.name" . }} |
| 86 | chart: {{ template "kube-prometheus-stack.chartref" . }} |
| 87 | release: {{ $.Release.Name | quote }} |
| 88 | heritage: {{ $.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 Naser | 91e2fa0 | 2024-02-23 01:46:39 -0500 | [diff] [blame] | 103 | {{/* 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 Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 112 | {{/* 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 Naser | 5b49cbb | 2023-08-30 16:16:37 -0400 | [diff] [blame] | 133 | {{ default (include "kube-prometheus-stack.thanosRuler.name" .) .Values.thanosRuler.serviceAccount.name }} |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 134 | {{- else -}} |
| 135 | {{ default "default" .Values.thanosRuler.serviceAccount.name }} |
| 136 | {{- end -}} |
| 137 | {{- end -}} |
| 138 | |
| 139 | {{/* |
| 140 | Allow 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 | {{/* |
| 151 | Use 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 Naser | 91e2fa0 | 2024-02-23 01:46:39 -0500 | [diff] [blame] | 162 | Allow 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 Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 173 | Use 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 | {{/* |
| 184 | Use 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 Naser | 5b49cbb | 2023-08-30 16:16:37 -0400 | [diff] [blame] | 266 | {{/* Sets default scrape limits for servicemonitor */}} |
| 267 | {{- define "servicemonitor.scrapeLimits" -}} |
| 268 | {{- with .sampleLimit }} |
| 269 | sampleLimit: {{ . }} |
| 270 | {{- end }} |
| 271 | {{- with .targetLimit }} |
| 272 | targetLimit: {{ . }} |
| 273 | {{- end }} |
| 274 | {{- with .labelLimit }} |
| 275 | labelLimit: {{ . }} |
| 276 | {{- end }} |
| 277 | {{- with .labelNameLengthLimit }} |
| 278 | labelNameLengthLimit: {{ . }} |
| 279 | {{- end }} |
| 280 | {{- with .labelValueLengthLimit }} |
| 281 | labelValueLengthLimit: {{ . }} |
| 282 | {{- end }} |
| 283 | {{- end -}} |
| 284 | |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 285 | {{/* |
| 286 | To help compatibility with other charts which use global.imagePullSecrets. |
| 287 | Allow either an array of {name: pullSecret} maps (k8s-style), or an array of strings (more common helm-style). |
| 288 | global: |
| 289 | imagePullSecrets: |
| 290 | - name: pullSecret1 |
| 291 | - name: pullSecret2 |
| 292 | |
| 293 | or |
| 294 | |
| 295 | global: |
| 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 Naser | 91e2fa0 | 2024-02-23 01:46:39 -0500 | [diff] [blame] | 309 | |
| 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 }} |