github.com/verrazzano/verrazzano@v1.7.0/platform-operator/thirdparty/charts/prometheus-community/kube-prometheus-stack/templates/_helpers.tpl (about)

     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  
    27  {{/* Fullname suffixed with operator */}}
    28  {{- define "kube-prometheus-stack.operator.fullname" -}}
    29  {{- printf "%s-operator" (include "kube-prometheus-stack.fullname" .) -}}
    30  {{- end }}
    31  
    32  {{/* Prometheus custom resource instance name */}}
    33  {{- define "kube-prometheus-stack.prometheus.crname" -}}
    34  {{- if .Values.cleanPrometheusOperatorObjectNames }}
    35  {{- include "kube-prometheus-stack.fullname" . }}
    36  {{- else }}
    37  {{- print (include "kube-prometheus-stack.fullname" .) "-prometheus" }}
    38  {{- end }}
    39  {{- end }}
    40  
    41  {{/* Prometheus apiVersion for networkpolicy */}}
    42  {{- define "kube-prometheus-stack.prometheus.networkPolicy.apiVersion" -}}
    43  {{- print "networking.k8s.io/v1" -}}
    44  {{- end }}
    45  
    46  {{/* Alertmanager custom resource instance name */}}
    47  {{- define "kube-prometheus-stack.alertmanager.crname" -}}
    48  {{- if .Values.cleanPrometheusOperatorObjectNames }}
    49  {{- include "kube-prometheus-stack.fullname" . }}
    50  {{- else }}
    51  {{- print (include "kube-prometheus-stack.fullname" .) "-alertmanager" -}}
    52  {{- end }}
    53  {{- end }}
    54  
    55  {{/* Fullname suffixed with thanos-ruler */}}
    56  {{- define "kube-prometheus-stack.thanosRuler.fullname" -}}
    57  {{- printf "%s-thanos-ruler" (include "kube-prometheus-stack.fullname" .) -}}
    58  {{- end }}
    59  
    60  {{/* Shortened name suffixed with thanos-ruler */}}
    61  {{- define "kube-prometheus-stack.thanosRuler.name" -}}
    62  {{- default (printf "%s-thanos-ruler" (include "kube-prometheus-stack.name" .)) .Values.thanosRuler.name -}}
    63  {{- end }}
    64  
    65  
    66  {{/* Create chart name and version as used by the chart label. */}}
    67  {{- define "kube-prometheus-stack.chartref" -}}
    68  {{- replace "+" "_" .Chart.Version | printf "%s-%s" .Chart.Name -}}
    69  {{- end }}
    70  
    71  {{/* Generate basic labels */}}
    72  {{- define "kube-prometheus-stack.labels" }}
    73  app.kubernetes.io/managed-by: {{ .Release.Service }}
    74  app.kubernetes.io/instance: {{ .Release.Name }}
    75  app.kubernetes.io/version: "{{ replace "+" "_" .Chart.Version }}"
    76  app.kubernetes.io/part-of: {{ template "kube-prometheus-stack.name" . }}
    77  chart: {{ template "kube-prometheus-stack.chartref" . }}
    78  release: {{ $.Release.Name | quote }}
    79  heritage: {{ $.Release.Service | quote }}
    80  {{- if .Values.commonLabels}}
    81  {{ toYaml .Values.commonLabels }}
    82  {{- end }}
    83  {{- end }}
    84  
    85  {{/* Create the name of kube-prometheus-stack service account to use */}}
    86  {{- define "kube-prometheus-stack.operator.serviceAccountName" -}}
    87  {{- if .Values.prometheusOperator.serviceAccount.create -}}
    88      {{ default (include "kube-prometheus-stack.operator.fullname" .) .Values.prometheusOperator.serviceAccount.name }}
    89  {{- else -}}
    90      {{ default "default" .Values.prometheusOperator.serviceAccount.name }}
    91  {{- end -}}
    92  {{- end -}}
    93  
    94  {{/* Create the name of prometheus service account to use */}}
    95  {{- define "kube-prometheus-stack.prometheus.serviceAccountName" -}}
    96  {{- if .Values.prometheus.serviceAccount.create -}}
    97      {{ default (print (include "kube-prometheus-stack.fullname" .) "-prometheus") .Values.prometheus.serviceAccount.name }}
    98  {{- else -}}
    99      {{ default "default" .Values.prometheus.serviceAccount.name }}
   100  {{- end -}}
   101  {{- end -}}
   102  
   103  {{/* Create the name of alertmanager service account to use */}}
   104  {{- define "kube-prometheus-stack.alertmanager.serviceAccountName" -}}
   105  {{- if .Values.alertmanager.serviceAccount.create -}}
   106      {{ default (print (include "kube-prometheus-stack.fullname" .) "-alertmanager") .Values.alertmanager.serviceAccount.name }}
   107  {{- else -}}
   108      {{ default "default" .Values.alertmanager.serviceAccount.name }}
   109  {{- end -}}
   110  {{- end -}}
   111  
   112  {{/* Create the name of thanosRuler service account to use */}}
   113  {{- define "kube-prometheus-stack.thanosRuler.serviceAccountName" -}}
   114  {{- if .Values.thanosRuler.serviceAccount.create -}}
   115      {{ default (include "kube-prometheus-stack.thanosRuler.name" .) .Values.thanosRuler.serviceAccount.name }}
   116  {{- else -}}
   117      {{ default "default" .Values.thanosRuler.serviceAccount.name }}
   118  {{- end -}}
   119  {{- end -}}
   120  
   121  {{/*
   122  Allow the release namespace to be overridden for multi-namespace deployments in combined charts
   123  */}}
   124  {{- define "kube-prometheus-stack.namespace" -}}
   125    {{- if .Values.namespaceOverride -}}
   126      {{- .Values.namespaceOverride -}}
   127    {{- else -}}
   128      {{- .Release.Namespace -}}
   129    {{- end -}}
   130  {{- end -}}
   131  
   132  {{/*
   133  Use the grafana namespace override for multi-namespace deployments in combined charts
   134  */}}
   135  {{- define "kube-prometheus-stack-grafana.namespace" -}}
   136    {{- if .Values.grafana.namespaceOverride -}}
   137      {{- .Values.grafana.namespaceOverride -}}
   138    {{- else -}}
   139      {{- .Release.Namespace -}}
   140    {{- end -}}
   141  {{- end -}}
   142  
   143  {{/*
   144  Use the kube-state-metrics namespace override for multi-namespace deployments in combined charts
   145  */}}
   146  {{- define "kube-prometheus-stack-kube-state-metrics.namespace" -}}
   147    {{- if index .Values "kube-state-metrics" "namespaceOverride" -}}
   148      {{- index .Values "kube-state-metrics" "namespaceOverride" -}}
   149    {{- else -}}
   150      {{- .Release.Namespace -}}
   151    {{- end -}}
   152  {{- end -}}
   153  
   154  {{/*
   155  Use the prometheus-node-exporter namespace override for multi-namespace deployments in combined charts
   156  */}}
   157  {{- define "kube-prometheus-stack-prometheus-node-exporter.namespace" -}}
   158    {{- if index .Values "prometheus-node-exporter" "namespaceOverride" -}}
   159      {{- index .Values "prometheus-node-exporter" "namespaceOverride" -}}
   160    {{- else -}}
   161      {{- .Release.Namespace -}}
   162    {{- end -}}
   163  {{- end -}}
   164  
   165  {{/* Allow KubeVersion to be overridden. */}}
   166  {{- define "kube-prometheus-stack.kubeVersion" -}}
   167    {{- default .Capabilities.KubeVersion.Version .Values.kubeVersionOverride -}}
   168  {{- end -}}
   169  
   170  {{/* Get Ingress API Version */}}
   171  {{- define "kube-prometheus-stack.ingress.apiVersion" -}}
   172    {{- if and (.Capabilities.APIVersions.Has "networking.k8s.io/v1") (semverCompare ">= 1.19-0" (include "kube-prometheus-stack.kubeVersion" .)) -}}
   173        {{- print "networking.k8s.io/v1" -}}
   174    {{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" -}}
   175      {{- print "networking.k8s.io/v1beta1" -}}
   176    {{- else -}}
   177      {{- print "extensions/v1beta1" -}}
   178    {{- end -}}
   179  {{- end -}}
   180  
   181  {{/* Check Ingress stability */}}
   182  {{- define "kube-prometheus-stack.ingress.isStable" -}}
   183    {{- eq (include "kube-prometheus-stack.ingress.apiVersion" .) "networking.k8s.io/v1" -}}
   184  {{- end -}}
   185  
   186  {{/* Check Ingress supports pathType */}}
   187  {{/* pathType was added to networking.k8s.io/v1beta1 in Kubernetes 1.18 */}}
   188  {{- define "kube-prometheus-stack.ingress.supportsPathType" -}}
   189    {{- 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" .))) -}}
   190  {{- end -}}
   191  
   192  {{/* Get Policy API Version */}}
   193  {{- define "kube-prometheus-stack.pdb.apiVersion" -}}
   194    {{- if and (.Capabilities.APIVersions.Has "policy/v1") (semverCompare ">= 1.21-0" (include "kube-prometheus-stack.kubeVersion" .)) -}}
   195        {{- print "policy/v1" -}}
   196    {{- else -}}
   197      {{- print "policy/v1beta1" -}}
   198    {{- end -}}
   199    {{- end -}}
   200  
   201  {{/* Get value based on current Kubernetes version */}}
   202  {{- define "kube-prometheus-stack.kubeVersionDefaultValue" -}}
   203    {{- $values := index . 0 -}}
   204    {{- $kubeVersion := index . 1 -}}
   205    {{- $old := index . 2 -}}
   206    {{- $new := index . 3 -}}
   207    {{- $default := index . 4 -}}
   208    {{- if kindIs "invalid" $default -}}
   209      {{- if semverCompare $kubeVersion (include "kube-prometheus-stack.kubeVersion" $values) -}}
   210        {{- print $new -}}
   211      {{- else -}}
   212        {{- print $old -}}
   213      {{- end -}}
   214    {{- else -}}
   215      {{- print $default }}
   216    {{- end -}}
   217  {{- end -}}
   218  
   219  {{/* Get value for kube-controller-manager depending on insecure scraping availability */}}
   220  {{- define "kube-prometheus-stack.kubeControllerManager.insecureScrape" -}}
   221    {{- $values := index . 0 -}}
   222    {{- $insecure := index . 1 -}}
   223    {{- $secure := index . 2 -}}
   224    {{- $userValue := index . 3 -}}
   225    {{- include "kube-prometheus-stack.kubeVersionDefaultValue" (list $values ">= 1.22-0" $insecure $secure $userValue) -}}
   226  {{- end -}}
   227  
   228  {{/* Get value for kube-scheduler depending on insecure scraping availability */}}
   229  {{- define "kube-prometheus-stack.kubeScheduler.insecureScrape" -}}
   230    {{- $values := index . 0 -}}
   231    {{- $insecure := index . 1 -}}
   232    {{- $secure := index . 2 -}}
   233    {{- $userValue := index . 3 -}}
   234    {{- include "kube-prometheus-stack.kubeVersionDefaultValue" (list $values ">= 1.23-0" $insecure $secure $userValue) -}}
   235  {{- end -}}
   236  
   237  {{/* Sets default scrape limits for servicemonitor */}}
   238  {{- define "servicemonitor.scrapeLimits" -}}
   239  {{- with .sampleLimit }}
   240  sampleLimit: {{ . }}
   241  {{- end }}
   242  {{- with .targetLimit }}
   243  targetLimit: {{ . }}
   244  {{- end }}
   245  {{- with .labelLimit }}
   246  labelLimit: {{ . }}
   247  {{- end }}
   248  {{- with .labelNameLengthLimit }}
   249  labelNameLengthLimit: {{ . }}
   250  {{- end }}
   251  {{- with .labelValueLengthLimit }}
   252  labelValueLengthLimit: {{ . }}
   253  {{- end }}
   254  {{- end -}}
   255  
   256  {{/*
   257  To help compatibility with other charts which use global.imagePullSecrets.
   258  Allow either an array of {name: pullSecret} maps (k8s-style), or an array of strings (more common helm-style).
   259  global:
   260    imagePullSecrets:
   261    - name: pullSecret1
   262    - name: pullSecret2
   263  
   264  or
   265  
   266  global:
   267    imagePullSecrets:
   268    - pullSecret1
   269    - pullSecret2
   270  */}}
   271  {{- define "kube-prometheus-stack.imagePullSecrets" -}}
   272  {{- range .Values.global.imagePullSecrets }}
   273    {{- if eq (typeOf .) "map[string]interface {}" }}
   274  - {{ toYaml . | trim }}
   275    {{- else }}
   276  - name: {{ . }}
   277    {{- end }}
   278  {{- end }}
   279  {{- end -}}