---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2beta1.json
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: alertmanager
  namespace: monitoring
spec:
  interval: 30m
  chart:
    spec:
      chart: app-template
      version: 2.0.3
      interval: 30m
      sourceRef:
        kind: HelmRepository
        name: bjw-s
        namespace: flux-system
  values:
    controller:
      type: statefulset
      annotations:
        reloader.stakater.com/auto: "true"
    controllers:
      main:
        containers:
          main:
            image:
              repository: quay.io/prometheus/alertmanager
              tag: main@sha256:7c060ae2a86177fbb4106fddcdd9f2cd494d4415b67ccda71a9fdf11f52e825b
              pullPolicy: IfNotPresent
    podAnnotations:
      reloader.stakater.com/auto: "true"

    service:
      main:
        ports:
          http:
            port: 9093

    ingress:
      main:
        classname: nginx
        hosts:
          - host: &host alertmanager.valinor.social
            paths:
              - path: /
                pathType: Prefix
                service:
                  name: main
                  port: http
        tls:
          - hosts:
              - *host

    persistence:
      config:
        enabled: true
        type: configMap
        name: alertmanager-configmap
        globalMounts:
          - path: /etc/alertmanager
      secrets:
        enabled: true
        type: secret
        name: alertmanager-secret
        globalMounts:
          - path: /etc/secrets

    resources:
      requests:
        cpu: 11m
        memory: 50M
      limits:
        memory: 99M

    volumeClaimTemplates:
      - name: storage
        mountPath: /alertmanager
        accessMode: ReadWriteOnce
        size: 50Mi