deploy.yaml 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. {{- if and .Values.alertmanager.enabled (not .Values.alertmanager.statefulSet.enabled) -}}
  2. apiVersion: {{ template "prometheus.deployment.apiVersion" . }}
  3. kind: Deployment
  4. metadata:
  5. {{- if .Values.alertmanager.deploymentAnnotations }}
  6. annotations:
  7. {{ toYaml .Values.alertmanager.deploymentAnnotations | nindent 4 }}
  8. {{- end }}
  9. labels:
  10. {{- include "prometheus.alertmanager.labels" . | nindent 4 }}
  11. name: {{ template "prometheus.alertmanager.fullname" . }}
  12. {{ include "prometheus.namespace" . | indent 2 }}
  13. spec:
  14. selector:
  15. matchLabels:
  16. {{- include "prometheus.alertmanager.matchLabels" . | nindent 6 }}
  17. replicas: {{ .Values.alertmanager.replicaCount }}
  18. {{- if .Values.alertmanager.strategy }}
  19. strategy:
  20. {{ toYaml .Values.alertmanager.strategy | trim | indent 4 }}
  21. {{ if eq .Values.alertmanager.strategy.type "Recreate" }}rollingUpdate: null{{ end }}
  22. {{- end }}
  23. template:
  24. metadata:
  25. {{- if .Values.alertmanager.podAnnotations }}
  26. annotations:
  27. {{ toYaml .Values.alertmanager.podAnnotations | nindent 8 }}
  28. {{- end }}
  29. labels:
  30. {{- include "prometheus.alertmanager.labels" . | nindent 8 }}
  31. {{- if .Values.alertmanager.podLabels}}
  32. {{ toYaml .Values.alertmanager.podLabels | nindent 8 }}
  33. {{- end}}
  34. spec:
  35. {{- if .Values.alertmanager.schedulerName }}
  36. schedulerName: "{{ .Values.alertmanager.schedulerName }}"
  37. {{- end }}
  38. serviceAccountName: {{ template "prometheus.serviceAccountName.alertmanager" . }}
  39. {{- if .Values.alertmanager.extraInitContainers }}
  40. initContainers:
  41. {{ toYaml .Values.alertmanager.extraInitContainers | indent 8 }}
  42. {{- end }}
  43. {{- if .Values.alertmanager.priorityClassName }}
  44. priorityClassName: "{{ .Values.alertmanager.priorityClassName }}"
  45. {{- end }}
  46. containers:
  47. - name: {{ template "prometheus.name" . }}-{{ .Values.alertmanager.name }}
  48. image: "{{ .Values.alertmanager.image.repository }}:{{ .Values.alertmanager.image.tag }}"
  49. imagePullPolicy: "{{ .Values.alertmanager.image.pullPolicy }}"
  50. env:
  51. {{- range $key, $value := .Values.alertmanager.extraEnv }}
  52. - name: {{ $key }}
  53. value: {{ $value }}
  54. {{- end }}
  55. - name: POD_IP
  56. valueFrom:
  57. fieldRef:
  58. apiVersion: v1
  59. fieldPath: status.podIP
  60. args:
  61. - --config.file=/etc/config/{{ .Values.alertmanager.configFileName }}
  62. - --storage.path={{ .Values.alertmanager.persistentVolume.mountPath }}
  63. - --cluster.advertise-address=$(POD_IP):6783
  64. {{- range $key, $value := .Values.alertmanager.extraArgs }}
  65. - --{{ $key }}={{ $value }}
  66. {{- end }}
  67. {{- if .Values.alertmanager.baseURL }}
  68. - --web.external-url={{ .Values.alertmanager.baseURL }}
  69. {{- end }}
  70. ports:
  71. - containerPort: 9093
  72. readinessProbe:
  73. httpGet:
  74. path: {{ .Values.alertmanager.prefixURL }}/-/ready
  75. port: 9093
  76. initialDelaySeconds: 30
  77. timeoutSeconds: 30
  78. resources:
  79. {{ toYaml .Values.alertmanager.resources | indent 12 }}
  80. volumeMounts:
  81. - name: config-volume
  82. mountPath: /etc/config
  83. - name: storage-volume
  84. mountPath: "{{ .Values.alertmanager.persistentVolume.mountPath }}"
  85. subPath: "{{ .Values.alertmanager.persistentVolume.subPath }}"
  86. {{- range .Values.alertmanager.extraSecretMounts }}
  87. - name: {{ .name }}
  88. mountPath: {{ .mountPath }}
  89. subPath: {{ .subPath }}
  90. readOnly: {{ .readOnly }}
  91. {{- end }}
  92. {{- if .Values.configmapReload.alertmanager.enabled }}
  93. - name: {{ template "prometheus.name" . }}-{{ .Values.alertmanager.name }}-{{ .Values.configmapReload.alertmanager.name }}
  94. image: "{{ .Values.configmapReload.alertmanager.image.repository }}:{{ .Values.configmapReload.alertmanager.image.tag }}"
  95. imagePullPolicy: "{{ .Values.configmapReload.alertmanager.image.pullPolicy }}"
  96. args:
  97. - --volume-dir=/etc/config
  98. - --webhook-url=http://127.0.0.1:9093{{ .Values.alertmanager.prefixURL }}/-/reload
  99. resources:
  100. {{ toYaml .Values.configmapReload.alertmanager.resources | indent 12 }}
  101. volumeMounts:
  102. - name: config-volume
  103. mountPath: /etc/config
  104. readOnly: true
  105. {{- end }}
  106. {{- if .Values.imagePullSecrets }}
  107. imagePullSecrets:
  108. {{ toYaml .Values.imagePullSecrets | indent 2 }}
  109. {{- end }}
  110. {{- if .Values.alertmanager.nodeSelector }}
  111. nodeSelector:
  112. {{ toYaml .Values.alertmanager.nodeSelector | indent 8 }}
  113. {{- end }}
  114. {{- if .Values.alertmanager.securityContext }}
  115. securityContext:
  116. {{ toYaml .Values.alertmanager.securityContext | indent 8 }}
  117. {{- end }}
  118. {{- if .Values.alertmanager.tolerations }}
  119. tolerations:
  120. {{ toYaml .Values.alertmanager.tolerations | indent 8 }}
  121. {{- end }}
  122. {{- if .Values.alertmanager.affinity }}
  123. affinity:
  124. {{ toYaml .Values.alertmanager.affinity | indent 8 }}
  125. {{- end }}
  126. volumes:
  127. - name: config-volume
  128. {{- if empty .Values.alertmanager.configFromSecret }}
  129. configMap:
  130. name: {{ if .Values.alertmanager.configMapOverrideName }}{{ .Release.Name }}-{{ .Values.alertmanager.configMapOverrideName }}{{- else }}{{ template "prometheus.alertmanager.fullname" . }}{{- end }}
  131. {{- else }}
  132. secret:
  133. secretName: {{ .Values.alertmanager.configFromSecret }}
  134. {{- end }}
  135. {{- range .Values.alertmanager.extraSecretMounts }}
  136. - name: {{ .name }}
  137. secret:
  138. secretName: {{ .secretName }}
  139. {{- end }}
  140. - name: storage-volume
  141. {{- if .Values.alertmanager.persistentVolume.enabled }}
  142. persistentVolumeClaim:
  143. claimName: {{ if .Values.alertmanager.persistentVolume.existingClaim }}{{ .Values.alertmanager.persistentVolume.existingClaim }}{{- else }}{{ template "prometheus.alertmanager.fullname" . }}{{- end }}
  144. {{- else }}
  145. emptyDir:
  146. {{- if .Values.alertmanager.emptyDir.sizeLimit }}
  147. sizeLimit: {{ .Values.alertmanager.emptyDir.sizeLimit }}
  148. {{- else }}
  149. {}
  150. {{- end -}}
  151. {{- end -}}
  152. {{- end }}