apiVersion: monitoring.coreos.com/v1
kind: Alertmanager
metadata:
  name: alert-regional
  namespace: default
  labels:
    app: alert-regional
spec:
  replicas: {{ .Values.replicaCount }}
{{- if .Values.image }}
  image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
{{- end }}
  logLevel: debug
{{- if .Values.nodeSelector }}
  nodeSelector:
{{ toYaml .Values.nodeSelector | indent 4 }}
{{- end }}
{{- if .Values.securityContext }}
  securityContext:
{{ toYaml .Values.securityContext | indent 4 }}
{{- end }}
  containers:
    - name: alertmanager
      resources:
        requests:
          cpu: {{ .Values.resources.alertmanager.requests.cpu | quote }}
          memory: {{ .Values.resources.alertmanager.requests.memory | quote }}
        limits:
          cpu: {{ .Values.resources.alertmanager.limits.cpu | quote }}
          memory: {{ .Values.resources.alertmanager.limits.memory | quote }}
    - name: config-reloader
      resources:
        requests:
          cpu: {{ .Values.resources.configReloader.requests.cpu | quote }}
          memory: {{ .Values.resources.configReloader.requests.memory | quote }}
        limits:
          cpu: {{ .Values.resources.configReloader.limits.cpu | quote }}
          memory: {{ .Values.resources.configReloader.limits.memory | quote }}
  serviceAccountName: alertmanager-regional
  alertmanagerConfigSelector:
    matchExpressions:
      - key: observability.pingcap.com/tenantID
        operator: Exists
  alertmanagerConfiguration:
    name: observability-alertmanager-config
  topologySpreadConstraints:
    - maxSkew: 1
      topologyKey: topology.kubernetes.io/zone
      whenUnsatisfiable: ScheduleAnyway
      labelSelector:
        matchLabels:
          alertmanager: alert-regional
  storage:
    volumeClaimTemplate:
      spec:
        accessModes: ["ReadWriteOnce"]
        resources:
          requests:
            storage: {{.Values.storage.volumeClaimTemplate.spec.resources.requests.storage | default "1Gi"}}
  retention: 120h
