sts.yaml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. {{- if .Values.server.enabled -}}
  2. {{- if .Values.server.statefulSet.enabled -}}
  3. apiVersion: apps/v1
  4. kind: StatefulSet
  5. metadata:
  6. {{- if .Values.server.statefulSet.annotations }}
  7. annotations:
  8. {{ toYaml .Values.server.statefulSet.annotations | nindent 4 }}
  9. {{- end }}
  10. labels:
  11. {{- include "prometheus.server.labels" . | nindent 4 }}
  12. {{- if .Values.server.statefulSet.labels}}
  13. {{ toYaml .Values.server.statefulSet.labels | nindent 4 }}
  14. {{- end}}
  15. name: {{ template "prometheus.server.fullname" . }}
  16. {{ include "prometheus.namespace" . | indent 2 }}
  17. spec:
  18. serviceName: {{ template "prometheus.server.fullname" . }}-headless
  19. selector:
  20. matchLabels:
  21. {{- include "prometheus.server.matchLabels" . | nindent 6 }}
  22. replicas: {{ .Values.server.replicaCount }}
  23. podManagementPolicy: {{ .Values.server.statefulSet.podManagementPolicy }}
  24. template:
  25. metadata:
  26. {{- if .Values.server.podAnnotations }}
  27. annotations:
  28. {{ toYaml .Values.server.podAnnotations | nindent 8 }}
  29. {{- end }}
  30. labels:
  31. {{- include "prometheus.server.labels" . | nindent 8 }}
  32. {{- if .Values.server.podLabels}}
  33. {{ toYaml .Values.server.podLabels | nindent 8 }}
  34. {{- end}}
  35. spec:
  36. {{- if .Values.server.priorityClassName }}
  37. priorityClassName: "{{ .Values.server.priorityClassName }}"
  38. {{- end }}
  39. {{- if .Values.server.schedulerName }}
  40. schedulerName: "{{ .Values.server.schedulerName }}"
  41. {{- end }}
  42. {{- if semverCompare ">=1.13-0" .Capabilities.KubeVersion.GitVersion }}
  43. {{- if or (.Values.server.enableServiceLinks) (eq (.Values.server.enableServiceLinks | toString) "<nil>") }}
  44. enableServiceLinks: true
  45. {{- else }}
  46. enableServiceLinks: false
  47. {{- end }}
  48. {{- end }}
  49. serviceAccountName: {{ template "prometheus.serviceAccountName.server" . }}
  50. {{- if .Values.server.extraInitContainers }}
  51. initContainers:
  52. {{ toYaml .Values.server.extraInitContainers | indent 8 }}
  53. {{- end }}
  54. containers:
  55. {{- if .Values.configmapReload.prometheus.enabled }}
  56. - name: {{ template "prometheus.name" . }}-{{ .Values.server.name }}-{{ .Values.configmapReload.prometheus.name }}
  57. image: "{{ .Values.configmapReload.prometheus.image.repository }}:{{ .Values.configmapReload.prometheus.image.tag }}"
  58. imagePullPolicy: "{{ .Values.configmapReload.prometheus.image.pullPolicy }}"
  59. args:
  60. - --volume-dir=/etc/config
  61. - --webhook-url=http://127.0.0.1:9090{{ .Values.server.prefixURL }}/-/reload
  62. {{- range $key, $value := .Values.configmapReload.prometheus.extraArgs }}
  63. - --{{ $key }}={{ $value }}
  64. {{- end }}
  65. {{- range .Values.configmapReload.prometheus.extraVolumeDirs }}
  66. - --volume-dir={{ . }}
  67. {{- end }}
  68. resources:
  69. {{ toYaml .Values.configmapReload.prometheus.resources | indent 12 }}
  70. volumeMounts:
  71. - name: config-volume
  72. mountPath: /etc/config
  73. readOnly: true
  74. {{- range .Values.configmapReload.prometheus.extraConfigmapMounts }}
  75. - name: {{ $.Values.configmapReload.prometheus.name }}-{{ .name }}
  76. mountPath: {{ .mountPath }}
  77. subPath: {{ .subPath }}
  78. readOnly: {{ .readOnly }}
  79. {{- end }}
  80. {{- end }}
  81. - name: {{ template "prometheus.name" . }}-{{ .Values.server.name }}
  82. image: "{{ .Values.server.image.repository }}:{{ .Values.server.image.tag }}"
  83. imagePullPolicy: "{{ .Values.server.image.pullPolicy }}"
  84. {{- if .Values.server.env }}
  85. env:
  86. {{ toYaml .Values.server.env | indent 12}}
  87. {{- end }}
  88. args:
  89. {{- if .Values.server.defaultFlagsOverride }}
  90. {{ toYaml .Values.server.defaultFlagsOverride | nindent 12}}
  91. {{- else }}
  92. {{- if .Values.server.prefixURL }}
  93. - --web.route-prefix={{ .Values.server.prefixURL }}
  94. {{- end }}
  95. {{- if .Values.server.retention }}
  96. - --storage.tsdb.retention.time={{ .Values.server.retention }}
  97. {{- end }}
  98. - --config.file={{ .Values.server.configPath }}
  99. {{- if .Values.server.storagePath }}
  100. - --storage.tsdb.path={{ .Values.server.storagePath }}
  101. {{- else }}
  102. - --storage.tsdb.path={{ .Values.server.persistentVolume.mountPath }}
  103. {{- end }}
  104. - --web.console.libraries=/etc/prometheus/console_libraries
  105. - --web.console.templates=/etc/prometheus/consoles
  106. {{- range .Values.server.extraFlags }}
  107. - --{{ . }}
  108. {{- end }}
  109. {{- range $key, $value := .Values.server.extraArgs }}
  110. - --{{ $key }}={{ $value }}
  111. {{- end }}
  112. {{- if .Values.server.baseURL }}
  113. - --web.external-url={{ .Values.server.baseURL }}
  114. {{- end }}
  115. {{- end }}
  116. ports:
  117. - containerPort: 9090
  118. {{- if .Values.server.hostPort }}
  119. hostPort: {{ .Values.server.hostPort }}
  120. {{- end }}
  121. readinessProbe:
  122. {{- if not .Values.server.tcpSocketProbeEnabled }}
  123. httpGet:
  124. path: {{ .Values.server.prefixURL }}/-/ready
  125. port: 9090
  126. scheme: {{ .Values.server.probeScheme }}
  127. {{- else }}
  128. tcpSocket:
  129. port: 9090
  130. {{- end }}
  131. initialDelaySeconds: {{ .Values.server.readinessProbeInitialDelay }}
  132. periodSeconds: {{ .Values.server.readinessProbePeriodSeconds }}
  133. timeoutSeconds: {{ .Values.server.readinessProbeTimeout }}
  134. failureThreshold: {{ .Values.server.readinessProbeFailureThreshold }}
  135. successThreshold: {{ .Values.server.readinessProbeSuccessThreshold }}
  136. livenessProbe:
  137. {{- if not .Values.server.tcpSocketProbeEnabled }}
  138. httpGet:
  139. path: {{ .Values.server.prefixURL }}/-/healthy
  140. port: 9090
  141. scheme: {{ .Values.server.probeScheme }}
  142. {{- else }}
  143. tcpSocket:
  144. port: 9090
  145. {{- end }}
  146. initialDelaySeconds: {{ .Values.server.livenessProbeInitialDelay }}
  147. periodSeconds: {{ .Values.server.livenessProbePeriodSeconds }}
  148. timeoutSeconds: {{ .Values.server.livenessProbeTimeout }}
  149. failureThreshold: {{ .Values.server.livenessProbeFailureThreshold }}
  150. successThreshold: {{ .Values.server.livenessProbeSuccessThreshold }}
  151. resources:
  152. {{ toYaml .Values.server.resources | indent 12 }}
  153. volumeMounts:
  154. - name: config-volume
  155. mountPath: /etc/config
  156. - name: storage-volume
  157. mountPath: {{ .Values.server.persistentVolume.mountPath }}
  158. subPath: "{{ .Values.server.persistentVolume.subPath }}"
  159. {{- range .Values.server.extraHostPathMounts }}
  160. - name: {{ .name }}
  161. mountPath: {{ .mountPath }}
  162. subPath: {{ .subPath }}
  163. readOnly: {{ .readOnly }}
  164. {{- end }}
  165. {{- range .Values.server.extraConfigmapMounts }}
  166. - name: {{ $.Values.server.name }}-{{ .name }}
  167. mountPath: {{ .mountPath }}
  168. subPath: {{ .subPath }}
  169. readOnly: {{ .readOnly }}
  170. {{- end }}
  171. {{- range .Values.server.extraSecretMounts }}
  172. - name: {{ .name }}
  173. mountPath: {{ .mountPath }}
  174. subPath: {{ .subPath }}
  175. readOnly: {{ .readOnly }}
  176. {{- end }}
  177. {{- if .Values.server.extraVolumeMounts }}
  178. {{ toYaml .Values.server.extraVolumeMounts | nindent 12 }}
  179. {{- end }}
  180. {{- if .Values.server.sidecarContainers }}
  181. {{- range $name, $spec := .Values.server.sidecarContainers }}
  182. - name: {{ $name }}
  183. {{- if kindIs "string" $spec }}
  184. {{- tpl $spec $ | nindent 10 }}
  185. {{- else }}
  186. {{- toYaml $spec | nindent 10 }}
  187. {{- end }}
  188. {{- end }}
  189. {{- end }}
  190. hostNetwork: {{ .Values.server.hostNetwork }}
  191. {{- if .Values.server.dnsPolicy }}
  192. dnsPolicy: {{ .Values.server.dnsPolicy }}
  193. {{- end }}
  194. {{- if .Values.imagePullSecrets }}
  195. imagePullSecrets:
  196. {{ toYaml .Values.imagePullSecrets | indent 8 }}
  197. {{- end }}
  198. {{- if .Values.server.nodeSelector }}
  199. nodeSelector:
  200. {{ toYaml .Values.server.nodeSelector | indent 8 }}
  201. {{- end }}
  202. {{- if .Values.server.hostAliases }}
  203. hostAliases:
  204. {{ toYaml .Values.server.hostAliases | indent 8 }}
  205. {{- end }}
  206. {{- if .Values.server.dnsConfig }}
  207. dnsConfig:
  208. {{ toYaml .Values.server.dnsConfig | indent 8 }}
  209. {{- end }}
  210. {{- if .Values.server.securityContext }}
  211. securityContext:
  212. {{ toYaml .Values.server.securityContext | indent 8 }}
  213. {{- end }}
  214. {{- if .Values.server.tolerations }}
  215. tolerations:
  216. {{ toYaml .Values.server.tolerations | indent 8 }}
  217. {{- end }}
  218. {{- if .Values.server.affinity }}
  219. affinity:
  220. {{ toYaml .Values.server.affinity | indent 8 }}
  221. {{- end }}
  222. terminationGracePeriodSeconds: {{ .Values.server.terminationGracePeriodSeconds }}
  223. volumes:
  224. - name: config-volume
  225. {{- if empty .Values.server.configFromSecret }}
  226. configMap:
  227. name: {{ if .Values.server.configMapOverrideName }}{{ .Release.Name }}-{{ .Values.server.configMapOverrideName }}{{- else }}{{ template "prometheus.server.fullname" . }}{{- end }}
  228. {{- else }}
  229. secret:
  230. secretName: {{ .Values.server.configFromSecret }}
  231. {{- end }}
  232. {{- range .Values.server.extraHostPathMounts }}
  233. - name: {{ .name }}
  234. hostPath:
  235. path: {{ .hostPath }}
  236. {{- end }}
  237. {{- range .Values.configmapReload.prometheus.extraConfigmapMounts }}
  238. - name: {{ $.Values.configmapReload.prometheus.name }}-{{ .name }}
  239. configMap:
  240. name: {{ .configMap }}
  241. {{- end }}
  242. {{- range .Values.server.extraConfigmapMounts }}
  243. - name: {{ $.Values.server.name }}-{{ .name }}
  244. configMap:
  245. name: {{ .configMap }}
  246. {{- end }}
  247. {{- range .Values.server.extraSecretMounts }}
  248. - name: {{ .name }}
  249. secret:
  250. secretName: {{ .secretName }}
  251. {{- with .optional }}
  252. optional: {{ . }}
  253. {{- end }}
  254. {{- end }}
  255. {{- range .Values.configmapReload.prometheus.extraConfigmapMounts }}
  256. - name: {{ .name }}
  257. configMap:
  258. name: {{ .configMap }}
  259. {{- with .optional }}
  260. optional: {{ . }}
  261. {{- end }}
  262. {{- end }}
  263. {{- if .Values.server.extraVolumes }}
  264. {{ toYaml .Values.server.extraVolumes | indent 8}}
  265. {{- end }}
  266. {{- if .Values.server.persistentVolume.enabled }}
  267. volumeClaimTemplates:
  268. - metadata:
  269. name: storage-volume
  270. {{- if .Values.server.persistentVolume.annotations }}
  271. annotations:
  272. {{ toYaml .Values.server.persistentVolume.annotations | indent 10 }}
  273. {{- end }}
  274. spec:
  275. accessModes:
  276. {{ toYaml .Values.server.persistentVolume.accessModes | indent 10 }}
  277. resources:
  278. requests:
  279. storage: "{{ .Values.server.persistentVolume.size }}"
  280. {{- if .Values.server.persistentVolume.storageClass }}
  281. {{- if (eq "-" .Values.server.persistentVolume.storageClass) }}
  282. storageClassName: ""
  283. {{- else }}
  284. storageClassName: "{{ .Values.server.persistentVolume.storageClass }}"
  285. {{- end }}
  286. {{- end }}
  287. {{- else }}
  288. - name: storage-volume
  289. emptyDir:
  290. {{- if .Values.server.emptyDir.sizeLimit }}
  291. sizeLimit: {{ .Values.server.emptyDir.sizeLimit }}
  292. {{- else }}
  293. {}
  294. {{- end -}}
  295. {{- end }}
  296. {{- end }}
  297. {{- end }}