{{- if .Values.alertmanager.enabled }} apiVersion: monitoring.coreos.com/v1 kind: Alertmanager metadata: name: {{ template "kube-prometheus-stack.fullname" . }}-alertmanager namespace: {{ template "kube-prometheus-stack.namespace" . }} labels: app: {{ template "kube-prometheus-stack.name" . }}-alertmanager {{ include "kube-prometheus-stack.labels" . | indent 4 }} {{- if .Values.alertmanager.annotations }} annotations: {{ toYaml .Values.alertmanager.annotations | indent 4 }} {{- end }} spec: {{- if .Values.alertmanager.alertmanagerSpec.image }} image: {{ .Values.alertmanager.alertmanagerSpec.image.repository }}:{{ .Values.alertmanager.alertmanagerSpec.image.tag }} version: {{ .Values.alertmanager.alertmanagerSpec.image.tag }} {{- if .Values.alertmanager.alertmanagerSpec.image.sha }} sha: {{ .Values.alertmanager.alertmanagerSpec.image.sha }} {{- end }} {{- end }} replicas: {{ .Values.alertmanager.alertmanagerSpec.replicas }} listenLocal: {{ .Values.alertmanager.alertmanagerSpec.listenLocal }} serviceAccountName: {{ template "kube-prometheus-stack.alertmanager.serviceAccountName" . }} {{- if .Values.alertmanager.alertmanagerSpec.externalUrl }} externalUrl: "{{ tpl .Values.alertmanager.alertmanagerSpec.externalUrl . }}" {{- else if and .Values.alertmanager.ingress.enabled .Values.alertmanager.ingress.hosts }} externalUrl: "http://{{ tpl (index .Values.alertmanager.ingress.hosts 0) . }}{{ .Values.alertmanager.alertmanagerSpec.routePrefix }}" {{- else }} externalUrl: http://{{ template "kube-prometheus-stack.fullname" . }}-alertmanager.{{ template "kube-prometheus-stack.namespace" . }}:{{ .Values.alertmanager.service.port }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.nodeSelector }} nodeSelector: {{ toYaml .Values.alertmanager.alertmanagerSpec.nodeSelector | indent 4 }} {{- end }} paused: {{ .Values.alertmanager.alertmanagerSpec.paused }} logFormat: {{ .Values.alertmanager.alertmanagerSpec.logFormat | quote }} logLevel: {{ .Values.alertmanager.alertmanagerSpec.logLevel | quote }} retention: {{ .Values.alertmanager.alertmanagerSpec.retention | quote }} {{- if .Values.alertmanager.alertmanagerSpec.secrets }} secrets: {{ toYaml .Values.alertmanager.alertmanagerSpec.secrets | indent 4 }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.configSecret }} configSecret: {{ .Values.alertmanager.alertmanagerSpec.configSecret }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.configMaps }} configMaps: {{ toYaml .Values.alertmanager.alertmanagerSpec.configMaps | indent 4 }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.alertmanagerConfigSelector }} alertmanagerConfigSelector: {{ toYaml .Values.alertmanager.alertmanagerSpec.alertmanagerConfigSelector | indent 4}} {{ else }} alertmanagerConfigSelector: {} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.alertmanagerConfigNamespaceSelector }} alertmanagerConfigNamespaceSelector: {{ toYaml .Values.alertmanager.alertmanagerSpec.alertmanagerConfigNamespaceSelector | indent 4}} {{ else }} alertmanagerConfigNamespaceSelector: {} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.resources }} resources: {{ toYaml .Values.alertmanager.alertmanagerSpec.resources | indent 4 }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.routePrefix }} routePrefix: "{{ .Values.alertmanager.alertmanagerSpec.routePrefix }}" {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.securityContext }} securityContext: {{ toYaml .Values.alertmanager.alertmanagerSpec.securityContext | indent 4 }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.storage }} storage: {{ toYaml .Values.alertmanager.alertmanagerSpec.storage | indent 4 }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.podMetadata }} podMetadata: {{ toYaml .Values.alertmanager.alertmanagerSpec.podMetadata | indent 4 }} {{- end }} {{- if or .Values.alertmanager.alertmanagerSpec.podAntiAffinity .Values.alertmanager.alertmanagerSpec.affinity }} affinity: {{- if .Values.alertmanager.alertmanagerSpec.affinity }} {{ toYaml .Values.alertmanager.alertmanagerSpec.affinity | indent 4 }} {{- end }} {{- if eq .Values.alertmanager.alertmanagerSpec.podAntiAffinity "hard" }} podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - topologyKey: {{ .Values.alertmanager.alertmanagerSpec.podAntiAffinityTopologyKey }} labelSelector: matchExpressions: - {key: app, operator: In, values: [alertmanager]} - {key: prometheus, operator: In, values: [{{ template "kube-prometheus-stack.fullname" . }}-alertmanager]} {{- else if eq .Values.alertmanager.alertmanagerSpec.podAntiAffinity "soft" }} podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: topologyKey: {{ .Values.alertmanager.alertmanagerSpec.podAntiAffinityTopologyKey }} labelSelector: matchExpressions: - {key: app, operator: In, values: [alertmanager]} - {key: prometheus, operator: In, values: [{{ template "kube-prometheus-stack.fullname" . }}-alertmanager]} {{- end }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.tolerations }} tolerations: {{ toYaml .Values.alertmanager.alertmanagerSpec.tolerations | indent 4 }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.topologySpreadConstraints }} topologySpreadConstraints: {{ toYaml .Values.alertmanager.alertmanagerSpec.topologySpreadConstraints | indent 4 }} {{- end }} {{- if .Values.global.imagePullSecrets }} imagePullSecrets: {{ toYaml .Values.global.imagePullSecrets | indent 4 }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.containers }} containers: {{ toYaml .Values.alertmanager.alertmanagerSpec.containers | indent 4 }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.initContainers }} initContainers: {{ toYaml .Values.alertmanager.alertmanagerSpec.initContainers | indent 4 }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.priorityClassName }} priorityClassName: {{.Values.alertmanager.alertmanagerSpec.priorityClassName }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.additionalPeers }} additionalPeers: {{ toYaml .Values.alertmanager.alertmanagerSpec.additionalPeers | indent 4 }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.volumes }} volumes: {{ toYaml .Values.alertmanager.alertmanagerSpec.volumes | indent 4 }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.volumeMounts }} volumeMounts: {{ toYaml .Values.alertmanager.alertmanagerSpec.volumeMounts | indent 4 }} {{- end }} portName: {{ .Values.alertmanager.alertmanagerSpec.portName }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.clusterAdvertiseAddress }} clusterAdvertiseAddress: {{ .Values.alertmanager.alertmanagerSpec.clusterAdvertiseAddress }} {{- end }} {{- if .Values.alertmanager.alertmanagerSpec.forceEnableClusterMode }} forceEnableClusterMode: {{ .Values.alertmanager.alertmanagerSpec.forceEnableClusterMode }} {{- end }}