Add support for prometheus
[ric-plt/ric-dep.git] / helm / infrastructure / subcharts / prometheus / templates / _helpers.tpl
1 {{/* vim: set filetype=mustache: */}}
2 {{/*
3 Expand the name of the chart.
4 */}}
5 {{- define "prometheus.name" -}}
6 {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7 {{- end -}}
8
9 {{/*
10 Create chart name and version as used by the chart label.
11 */}}
12 {{- define "prometheus.chart" -}}
13 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
14 {{- end -}}
15
16 {{/*
17 Create unified labels for prometheus components
18 */}}
19 {{- define "prometheus.common.matchLabels" -}}
20 app: {{ template "prometheus.name" . }}
21 release: {{ .Release.Name }}
22 {{- end -}}
23
24 {{- define "prometheus.common.metaLabels" -}}
25 chart: {{ template "prometheus.chart" . }}
26 heritage: {{ .Release.Service }}
27 {{- end -}}
28
29 {{- define "prometheus.alertmanager.labels" -}}
30 {{ include "prometheus.alertmanager.matchLabels" . }}
31 {{ include "prometheus.common.metaLabels" . }}
32 {{- end -}}
33
34 {{- define "prometheus.alertmanager.matchLabels" -}}
35 component: {{ .Values.alertmanager.name | quote }}
36 {{ include "prometheus.common.matchLabels" . }}
37 {{- end -}}
38
39 {{- define "prometheus.nodeExporter.labels" -}}
40 {{ include "prometheus.nodeExporter.matchLabels" . }}
41 {{ include "prometheus.common.metaLabels" . }}
42 {{- end -}}
43
44 {{- define "prometheus.nodeExporter.matchLabels" -}}
45 component: {{ .Values.nodeExporter.name | quote }}
46 {{ include "prometheus.common.matchLabels" . }}
47 {{- end -}}
48
49 {{- define "prometheus.pushgateway.labels" -}}
50 {{ include "prometheus.pushgateway.matchLabels" . }}
51 {{ include "prometheus.common.metaLabels" . }}
52 {{- end -}}
53
54 {{- define "prometheus.pushgateway.matchLabels" -}}
55 component: {{ .Values.pushgateway.name | quote }}
56 {{ include "prometheus.common.matchLabels" . }}
57 {{- end -}}
58
59 {{- define "prometheus.server.labels" -}}
60 {{ include "prometheus.server.matchLabels" . }}
61 {{ include "prometheus.common.metaLabels" . }}
62 {{- end -}}
63
64 {{- define "prometheus.server.matchLabels" -}}
65 component: {{ .Values.server.name | quote }}
66 {{ include "prometheus.common.matchLabels" . }}
67 {{- end -}}
68
69 {{/*
70 Create a default fully qualified app name.
71 We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
72 */}}
73 {{- define "prometheus.fullname" -}}
74 {{- if .Values.fullnameOverride -}}
75 {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
76 {{- else -}}
77 {{- $name := default .Chart.Name .Values.nameOverride -}}
78 {{- if contains $name .Release.Name -}}
79 {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
80 {{- else -}}
81 {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
82 {{- end -}}
83 {{- end -}}
84 {{- end -}}
85
86 {{/*
87 Create a fully qualified alertmanager name.
88 We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
89 */}}
90
91 {{- define "prometheus.alertmanager.fullname" -}}
92 {{- if .Values.alertmanager.fullnameOverride -}}
93 {{- .Values.alertmanager.fullnameOverride | trunc 63 | trimSuffix "-" -}}
94 {{- else -}}
95 {{- $name := default .Chart.Name .Values.nameOverride -}}
96 {{- if contains $name .Release.Name -}}
97 {{- printf "%s-%s" .Release.Name .Values.alertmanager.name | trunc 63 | trimSuffix "-" -}}
98 {{- else -}}
99 {{- printf "%s-%s-%s" .Release.Name $name .Values.alertmanager.name | trunc 63 | trimSuffix "-" -}}
100 {{- end -}}
101 {{- end -}}
102 {{- end -}}
103
104 {{/*
105 Create a fully qualified node-exporter name.
106 We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
107 */}}
108 {{- define "prometheus.nodeExporter.fullname" -}}
109 {{- if .Values.nodeExporter.fullnameOverride -}}
110 {{- .Values.nodeExporter.fullnameOverride | trunc 63 | trimSuffix "-" -}}
111 {{- else -}}
112 {{- $name := default .Chart.Name .Values.nameOverride -}}
113 {{- if contains $name .Release.Name -}}
114 {{- printf "%s-%s" .Release.Name .Values.nodeExporter.name | trunc 63 | trimSuffix "-" -}}
115 {{- else -}}
116 {{- printf "%s-%s-%s" .Release.Name $name .Values.nodeExporter.name | trunc 63 | trimSuffix "-" -}}
117 {{- end -}}
118 {{- end -}}
119 {{- end -}}
120
121 {{/*
122 Create a fully qualified Prometheus server name.
123 We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
124 */}}
125 {{- define "prometheus.server.fullname" -}}
126 {{- if .Values.server.fullnameOverride -}}
127 {{- .Values.server.fullnameOverride | trunc 63 | trimSuffix "-" -}}
128 {{- else -}}
129 {{- $name := default .Chart.Name .Values.nameOverride -}}
130 {{- if contains $name .Release.Name -}}
131 {{- printf "%s-%s" .Release.Name .Values.server.name | trunc 63 | trimSuffix "-" -}}
132 {{- else -}}
133 {{- printf "%s-%s-%s" .Release.Name $name .Values.server.name | trunc 63 | trimSuffix "-" -}}
134 {{- end -}}
135 {{- end -}}
136 {{- end -}}
137
138 {{/*
139 Create a fully qualified pushgateway name.
140 We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
141 */}}
142 {{- define "prometheus.pushgateway.fullname" -}}
143 {{- if .Values.pushgateway.fullnameOverride -}}
144 {{- .Values.pushgateway.fullnameOverride | trunc 63 | trimSuffix "-" -}}
145 {{- else -}}
146 {{- $name := default .Chart.Name .Values.nameOverride -}}
147 {{- if contains $name .Release.Name -}}
148 {{- printf "%s-%s" .Release.Name .Values.pushgateway.name | trunc 63 | trimSuffix "-" -}}
149 {{- else -}}
150 {{- printf "%s-%s-%s" .Release.Name $name .Values.pushgateway.name | trunc 63 | trimSuffix "-" -}}
151 {{- end -}}
152 {{- end -}}
153 {{- end -}}
154
155 {{/*
156 Return the appropriate apiVersion for deployment.
157 */}}
158 {{- define "prometheus.deployment.apiVersion" -}}
159 {{- if semverCompare "<1.9-0" .Capabilities.KubeVersion.GitVersion -}}
160 {{- print "extensions/v1beta1" -}}
161 {{- else if semverCompare "^1.9-0" .Capabilities.KubeVersion.GitVersion -}}
162 {{- print "apps/v1" -}}
163 {{- end -}}
164 {{- end -}}
165 {{/*
166 Return the appropriate apiVersion for daemonset.
167 */}}
168 {{- define "prometheus.daemonset.apiVersion" -}}
169 {{- if semverCompare "<1.9-0" .Capabilities.KubeVersion.GitVersion -}}
170 {{- print "extensions/v1beta1" -}}
171 {{- else if semverCompare "^1.9-0" .Capabilities.KubeVersion.GitVersion -}}
172 {{- print "apps/v1" -}}
173 {{- end -}}
174 {{- end -}}
175 {{/*
176 Return the appropriate apiVersion for networkpolicy.
177 */}}
178 {{- define "prometheus.networkPolicy.apiVersion" -}}
179 {{- if semverCompare ">=1.4-0, <1.7-0" .Capabilities.KubeVersion.GitVersion -}}
180 {{- print "extensions/v1beta1" -}}
181 {{- else if semverCompare "^1.7-0" .Capabilities.KubeVersion.GitVersion -}}
182 {{- print "networking.k8s.io/v1" -}}
183 {{- end -}}
184 {{- end -}}
185 {{/*
186 Return the appropriate apiVersion for podsecuritypolicy.
187 */}}
188 {{- define "prometheus.podSecurityPolicy.apiVersion" -}}
189 {{- if semverCompare ">=1.3-0, <1.10-0" .Capabilities.KubeVersion.GitVersion -}}
190 {{- print "extensions/v1beta1" -}}
191 {{- else if semverCompare "^1.10-0" .Capabilities.KubeVersion.GitVersion -}}
192 {{- print "policy/v1beta1" -}}
193 {{- end -}}
194 {{- end -}}
195
196 {{/*
197 Create the name of the service account to use for the alertmanager component
198 */}}
199 {{- define "prometheus.serviceAccountName.alertmanager" -}}
200 {{- if .Values.serviceAccounts.alertmanager.create -}}
201     {{ default (include "prometheus.alertmanager.fullname" .) .Values.serviceAccounts.alertmanager.name }}
202 {{- else -}}
203     {{ default "default" .Values.serviceAccounts.alertmanager.name }}
204 {{- end -}}
205 {{- end -}}
206
207 {{/*
208 Create the name of the service account to use for the nodeExporter component
209 */}}
210 {{- define "prometheus.serviceAccountName.nodeExporter" -}}
211 {{- if .Values.serviceAccounts.nodeExporter.create -}}
212     {{ default (include "prometheus.nodeExporter.fullname" .) .Values.serviceAccounts.nodeExporter.name }}
213 {{- else -}}
214     {{ default "default" .Values.serviceAccounts.nodeExporter.name }}
215 {{- end -}}
216 {{- end -}}
217
218 {{/*
219 Create the name of the service account to use for the pushgateway component
220 */}}
221 {{- define "prometheus.serviceAccountName.pushgateway" -}}
222 {{- if .Values.serviceAccounts.pushgateway.create -}}
223     {{ default (include "prometheus.pushgateway.fullname" .) .Values.serviceAccounts.pushgateway.name }}
224 {{- else -}}
225     {{ default "default" .Values.serviceAccounts.pushgateway.name }}
226 {{- end -}}
227 {{- end -}}
228
229 {{/*
230 Create the name of the service account to use for the server component
231 */}}
232 {{- define "prometheus.serviceAccountName.server" -}}
233 {{- if .Values.serviceAccounts.server.create -}}
234     {{ default (include "prometheus.server.fullname" .) .Values.serviceAccounts.server.name }}
235 {{- else -}}
236     {{ default "default" .Values.serviceAccounts.server.name }}
237 {{- end -}}
238 {{- end -}}
239
240 {{/*
241 Define the prometheus.namespace template if set with forceNamespace or .Release.Namespace is set
242 */}}
243 {{- define "prometheus.namespace" -}}
244 {{- if .Values.forceNamespace -}}
245 {{ printf "namespace: %s" .Values.forceNamespace }}
246 {{- else -}}
247 {{ printf "namespace: %s" .Release.Namespace }}
248 {{- end -}}
249 {{- end -}}