---
# Source: alertmanager/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: alertmanager
  labels:
    helm.sh/chart: alertmanager-1.37.0
    app.kubernetes.io/name: alertmanager
    app.kubernetes.io/instance: alertmanager
    app.kubernetes.io/version: "v0.32.1"
    app.kubernetes.io/managed-by: Helm
  namespace: default
automountServiceAccountToken: true
---
# Source: alertmanager/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: alertmanager
  labels:
    helm.sh/chart: alertmanager-1.37.0
    app.kubernetes.io/name: alertmanager
    app.kubernetes.io/instance: alertmanager
    app.kubernetes.io/version: "v0.32.1"
    app.kubernetes.io/managed-by: Helm
  namespace: default
data:
  alertmanager.yml: |
    global: {}
    receivers:
    - name: default-receiver
    route:
      group_interval: 5m
      group_wait: 10s
      receiver: default-receiver
      repeat_interval: 3h
    templates:
    - /etc/alertmanager/*.tmpl
---
# Source: alertmanager/templates/services.yaml
apiVersion: v1
kind: Service
metadata:
  name: alertmanager
  labels:
    helm.sh/chart: alertmanager-1.37.0
    app.kubernetes.io/name: alertmanager
    app.kubernetes.io/instance: alertmanager
    app.kubernetes.io/version: "v0.32.1"
    app.kubernetes.io/managed-by: Helm
  namespace: default
spec:
  type: ClusterIP
  ports:
    - port: 9093
      targetPort: http
      protocol: TCP
      name: http
  selector:
    app.kubernetes.io/name: alertmanager
    app.kubernetes.io/instance: alertmanager
---
# Source: alertmanager/templates/services.yaml
apiVersion: v1
kind: Service
metadata:
  name: alertmanager-headless
  labels:
    helm.sh/chart: alertmanager-1.37.0
    app.kubernetes.io/name: alertmanager
    app.kubernetes.io/instance: alertmanager
    app.kubernetes.io/version: "v0.32.1"
    app.kubernetes.io/managed-by: Helm
  namespace: default
spec:
  clusterIP: None
  ports:
    - port: 9093
      targetPort: http
      protocol: TCP
      name: http
    - port: 9094
      targetPort: clusterpeer-tcp
      protocol: TCP
      name: cluster-tcp
    - port: 9094
      targetPort: clusterpeer-udp
      protocol: UDP
      name: cluster-udp
  selector:
    app.kubernetes.io/name: alertmanager
    app.kubernetes.io/instance: alertmanager
---
# Source: alertmanager/templates/statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: alertmanager
  labels:
    helm.sh/chart: alertmanager-1.37.0
    app.kubernetes.io/name: alertmanager
    app.kubernetes.io/instance: alertmanager
    app.kubernetes.io/version: "v0.32.1"
    app.kubernetes.io/managed-by: Helm
  namespace: default
spec:
  replicas: 3
  minReadySeconds: 0
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/name: alertmanager
      app.kubernetes.io/instance: alertmanager
  serviceName: alertmanager-headless
  template:
    metadata:
      labels:
        app.kubernetes.io/name: alertmanager
        app.kubernetes.io/instance: alertmanager
      annotations:
        checksum/config: e8e99b892770fd5bd8758df2faad150815bf8c02b024758a4f321f312d847cb3
    spec:
      automountServiceAccountToken: true
      serviceAccountName: alertmanager
      securityContext:
        fsGroup: 65534
      containers:
        - name: alertmanager
          securityContext:
            runAsGroup: 65534
            runAsNonRoot: true
            runAsUser: 65534
          image: "quay.io/prometheus/alertmanager:v0.32.1"
          imagePullPolicy: IfNotPresent
          env:
            - name: POD_IP
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: status.podIP
          args:
            - --storage.path=/alertmanager
            - --config.file=/etc/alertmanager/alertmanager.yml
            - --cluster.advertise-address=[$(POD_IP)]:9094
            - --cluster.listen-address=0.0.0.0:9094
            - --cluster.peer=alertmanager-0.alertmanager-headless:9094
            - --cluster.peer=alertmanager-1.alertmanager-headless:9094
            - --cluster.peer=alertmanager-2.alertmanager-headless:9094
          ports:
            - name: http
              containerPort: 9093
              protocol: TCP
            - name: clusterpeer-tcp
              containerPort: 9094
              protocol: TCP
            - name: clusterpeer-udp
              containerPort: 9094
              protocol: UDP
          livenessProbe:
            httpGet:
              path: /
              port: http
          readinessProbe:
            httpGet:
              path: /
              port: http
          resources:
            {}
          volumeMounts:
            - name: config
              mountPath: /etc/alertmanager
            - name: storage
              mountPath: /alertmanager
      volumes:
        - name: config
          configMap:
            name: alertmanager
  volumeClaimTemplates:
    - metadata:
        name: storage
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 50Mi
