sts.yaml 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  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.retention }}
  90. - --storage.tsdb.retention.time={{ .Values.server.retention }}
  91. {{- end }}
  92. - --config.file={{ .Values.server.configPath }}
  93. - --storage.tsdb.path={{ .Values.server.persistentVolume.mountPath }}
  94. - --web.console.libraries=/etc/prometheus/console_libraries
  95. - --web.console.templates=/etc/prometheus/consoles
  96. {{- range .Values.server.extraFlags }}
  97. - --{{ . }}
  98. {{- end }}
  99. {{- range $key, $value := .Values.server.extraArgs }}
  100. - --{{ $key }}={{ $value }}
  101. {{- end }}
  102. {{- if .Values.server.baseURL }}
  103. - --web.external-url={{ .Values.server.baseURL }}
  104. {{- end }}
  105. ports:
  106. - containerPort: 9090
  107. readinessProbe:
  108. httpGet:
  109. path: {{ .Values.server.prefixURL }}/-/ready
  110. port: 9090
  111. initialDelaySeconds: {{ .Values.server.readinessProbeInitialDelay }}
  112. periodSeconds: {{ .Values.server.readinessProbePeriodSeconds }}
  113. timeoutSeconds: {{ .Values.server.readinessProbeTimeout }}
  114. failureThreshold: {{ .Values.server.readinessProbeFailureThreshold }}
  115. successThreshold: {{ .Values.server.readinessProbeSuccessThreshold }}
  116. livenessProbe:
  117. httpGet:
  118. path: {{ .Values.server.prefixURL }}/-/healthy
  119. port: 9090
  120. initialDelaySeconds: {{ .Values.server.livenessProbeInitialDelay }}
  121. periodSeconds: {{ .Values.server.livenessProbePeriodSeconds }}
  122. timeoutSeconds: {{ .Values.server.livenessProbeTimeout }}
  123. failureThreshold: {{ .Values.server.livenessProbeFailureThreshold }}
  124. successThreshold: {{ .Values.server.livenessProbeSuccessThreshold }}
  125. resources:
  126. {{ toYaml .Values.server.resources | indent 12 }}
  127. volumeMounts:
  128. - name: config-volume
  129. mountPath: /etc/config
  130. - name: storage-volume
  131. mountPath: {{ .Values.server.persistentVolume.mountPath }}
  132. subPath: "{{ .Values.server.persistentVolume.subPath }}"
  133. {{- range .Values.server.extraHostPathMounts }}
  134. - name: {{ .name }}
  135. mountPath: {{ .mountPath }}
  136. subPath: {{ .subPath }}
  137. readOnly: {{ .readOnly }}
  138. {{- end }}
  139. {{- range .Values.server.extraConfigmapMounts }}
  140. - name: {{ $.Values.server.name }}-{{ .name }}
  141. mountPath: {{ .mountPath }}
  142. subPath: {{ .subPath }}
  143. readOnly: {{ .readOnly }}
  144. {{- end }}
  145. {{- range .Values.server.extraSecretMounts }}
  146. - name: {{ .name }}
  147. mountPath: {{ .mountPath }}
  148. subPath: {{ .subPath }}
  149. readOnly: {{ .readOnly }}
  150. {{- end }}
  151. {{- if .Values.server.extraVolumeMounts }}
  152. {{ toYaml .Values.server.extraVolumeMounts | nindent 12 }}
  153. {{- end }}
  154. {{- if .Values.server.sidecarContainers }}
  155. {{- toYaml .Values.server.sidecarContainers | nindent 8 }}
  156. {{- end }}
  157. {{- if .Values.imagePullSecrets }}
  158. imagePullSecrets:
  159. {{ toYaml .Values.imagePullSecrets | indent 2 }}
  160. {{- end }}
  161. {{- if .Values.server.nodeSelector }}
  162. nodeSelector:
  163. {{ toYaml .Values.server.nodeSelector | indent 8 }}
  164. {{- end }}
  165. {{- if .Values.server.hostAliases }}
  166. hostAliases:
  167. {{ toYaml .Values.server.hostAliases | indent 8 }}
  168. {{- end }}
  169. {{- if .Values.server.securityContext }}
  170. securityContext:
  171. {{ toYaml .Values.server.securityContext | indent 8 }}
  172. {{- end }}
  173. {{- if .Values.server.tolerations }}
  174. tolerations:
  175. {{ toYaml .Values.server.tolerations | indent 8 }}
  176. {{- end }}
  177. {{- if .Values.server.affinity }}
  178. affinity:
  179. {{ toYaml .Values.server.affinity | indent 8 }}
  180. {{- end }}
  181. terminationGracePeriodSeconds: {{ .Values.server.terminationGracePeriodSeconds }}
  182. volumes:
  183. - name: config-volume
  184. configMap:
  185. name: {{ if .Values.server.configMapOverrideName }}{{ .Release.Name }}-{{ .Values.server.configMapOverrideName }}{{- else }}{{ template "prometheus.server.fullname" . }}{{- end }}
  186. {{- range .Values.server.extraHostPathMounts }}
  187. - name: {{ .name }}
  188. hostPath:
  189. path: {{ .hostPath }}
  190. {{- end }}
  191. {{- range .Values.configmapReload.prometheus.extraConfigmapMounts }}
  192. - name: {{ $.Values.configmapReload.prometheus.name }}-{{ .name }}
  193. configMap:
  194. name: {{ .configMap }}
  195. {{- end }}
  196. {{- range .Values.server.extraConfigmapMounts }}
  197. - name: {{ $.Values.server.name }}-{{ .name }}
  198. configMap:
  199. name: {{ .configMap }}
  200. {{- end }}
  201. {{- range .Values.server.extraSecretMounts }}
  202. - name: {{ .name }}
  203. secret:
  204. secretName: {{ .secretName }}
  205. {{- end }}
  206. {{- range .Values.configmapReload.prometheus.extraConfigmapMounts }}
  207. - name: {{ .name }}
  208. configMap:
  209. name: {{ .configMap }}
  210. {{- end }}
  211. {{- if .Values.server.extraVolumes }}
  212. {{ toYaml .Values.server.extraVolumes | indent 8}}
  213. {{- end }}
  214. {{- if .Values.server.persistentVolume.enabled }}
  215. volumeClaimTemplates:
  216. - metadata:
  217. name: storage-volume
  218. {{- if .Values.server.persistentVolume.annotations }}
  219. annotations:
  220. {{ toYaml .Values.server.persistentVolume.annotations | indent 10 }}
  221. {{- end }}
  222. spec:
  223. accessModes:
  224. {{ toYaml .Values.server.persistentVolume.accessModes | indent 10 }}
  225. resources:
  226. requests:
  227. storage: "{{ .Values.server.persistentVolume.size }}"
  228. {{- if .Values.server.persistentVolume.storageClass }}
  229. {{- if (eq "-" .Values.server.persistentVolume.storageClass) }}
  230. storageClassName: ""
  231. {{- else }}
  232. storageClassName: "{{ .Values.server.persistentVolume.storageClass }}"
  233. {{- end }}
  234. {{- end }}
  235. {{- else }}
  236. - name: storage-volume
  237. emptyDir:
  238. {{- if .Values.server.emptyDir.sizeLimit }}
  239. sizeLimit: {{ .Values.server.emptyDir.sizeLimit }}
  240. {{- else }}
  241. {}
  242. {{- end -}}
  243. {{- end }}
  244. {{- end }}
  245. {{- end }}