---
# 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: dragonfly-mastodon
  namespace: fediverse
spec:
  interval: 30m
  chart:
    spec:
      chart: dragonfly
      version: v1.8.0
      interval: 30m
      sourceRef:
        kind: HelmRepository
        name: dragonflydb
        namespace: flux-system

  values:
    replicaCount: 1
    controller:
      annotations:
        reloader.stakater.com/auto: "true"

    podSecurityContext:
      runAsUser: 568
      runAsGroup: 568
      fsGroup: 568
      fsGroupChangePolicy: "OnRootMismatch"
      supplementalGroups:
        - 65539
    storage:
      enabled: true
      requests: 128Mi # Set as desired

    resources:
      requests:
        cpu: 2000m
        memory: 8Gi
      limits:
        cpu: 2000m
        memory: 8Gi
    extraArgs:
      - --dbfilename=dump
      - --save_schedule=*:* # HH:MM glob format

    serviceMonitor:
      enabled: true

    prometheusRule:
      enabled: true
      spec:
        - alert: DragonflyMissing
          expr: absent(dragonfly_uptime_in_seconds) == 1
          for: 0m
          labels:
            severity: critical
          annotations:
            summary: Dragonfly is missing
            description: "Dragonfly is missing"