# yaml-language-server: $schema=./values.schema.json
image:
  repository: docker.io/binwiederhier/ntfy
  tag: v2.21.0@sha256:2b9e12d56a538f4402da51328eeca02696c4b207ab7fbe031c27e51a22ca9b86
  pullPolicy: IfNotPresent
service:
  main:
    ports:
      main:
        port: 10222
persistence:
  config:
    enabled: true
    mountPath: "/etc/ntfy"
  cache:
    enabled: true
    mountPath: "/var/cache/ntfy"
configmap:
  ntfy:
    enabled: true
    data:
      # If a path is set, it enables this options. To disable set to empty path
      NTFY_ATTACHMENT_CACHE_DIR: '{{ ternary "/var/cache/ntfy/attachments" "" .Values.workload.main.podSpec.containers.main.env.ENABLE_ATTACHMENT_CACHE_DIR }}'
      NTFY_CACHE_FILE: '{{ ternary "/var/cache/ntfy/cache.db" "" .Values.workload.main.podSpec.containers.main.env.ENABLE_CACHE_FILE }}'
      NTFY_AUTH_FILE: '{{ ternary "/etc/ntfy/user.db" "" .Values.workload.main.podSpec.containers.main.env.ENABLE_AUTH_FILE }}'
      NTFY_FIREBASE_KEY_FILE: '{{ ternary "/etc/ntfy/firebase-key.json" "" .Values.workload.main.podSpec.containers.main.env.ENABLE_FIREBASE_FILE }}'

workload:
  main:
    podSpec:
      containers:
        main:
          probes:
            liveness:
              type: tcp
            readiness:
              type: tcp
            startup:
              type: tcp
          args:
            - "serve"
          env:
            NTFY_LISTEN_HTTP: ":{{ .Values.service.main.ports.main.port }}"
            # User Defined
            NTFY_BASE_URL: "http://localhost:10222"
            NTFY_BEHIND_PROXY: false
            ENABLE_FIREBASE_FILE: false
            ENABLE_CACHE_FILE: false
            ENABLE_ATTACHMENT_CACHE_DIR: false
            ENABLE_AUTH_FILE: false
            NTFY_ENABLE_METRICS: "{{ .Values.metrics.main.enabled }}"
            NTFY_UPSTREAM_BASE_URL: "https://ntfy.sh"
            # NTFY_CACHE_DURATION: "12h"
            # NTFY_KEEPALIVE_INTERVAL: "45s"
            # NTFY_MANAGER_INTERVAL: "1m"
            # NTFY_GLOBAL_TOPIC_LIMIT: 15000
            # NTFY_VISITOR_SUBSCRIPTION_LIMIT: 30
            # NTFY_VISITOR_ATTACHMENT_TOTAL_SIZE_LIMIT: "100M"
            # NTFY_VISITOR_ATTACHMENT_DAILY_BANDWIDTH_LIMIT: "500M"
            # NTFY_VISITOR_REQUEST_LIMIT_BURST: 60
            # NTFY_VISITOR_REQUEST_LIMIT_REPLENISH: "5s"
            # NTFY_VISITOR_REQUEST_LIMIT_EXEMPT_HOSTS: ""
            # NTFY_VISITOR_EMAIL_LIMIT_BURST: 16
            # NTFY_VISITOR_EMAIL_LIMIT_REPLENISH: "1h"
            # NTFY_ATTACHMENT_TOTAL_SIZE_LIMIT: "5G"
            # NTFY_ATTACHMENT_FILE_SIZE_LIMIT: "15M"
            # NTFY_ATTACHMENT_EXPIRY_DURATION: "3h"
            # NTFY_AUTH_DEFAULT_ACCESS: "read-write"
            # NTFY_SMTP_SENDER_ADDR: ""
            # NTFY_SMTP_SENDER_USER: ""
            # NTFY_SMTP_SENDER_PASS: ""
            # NTFY_SMTP_SENDER_FROM: ""
            # NTFY_SMTP_SERVER_LISTEN: ""
            # NTFY_SMTP_SERVER_DOMAIN: ""
            # NTFY_SMTP_SERVER_ADDR_PREFIX: ""
          envFrom:
            - configMapRef:
                name: "ntfy"
metrics:
  main:
    # -- Enable and configure a Prometheus serviceMonitor for the chart under this key.
    # @default -- See values.yaml
    enabled: false
    type: "servicemonitor"
    endpoints:
      - port: main
        path: /metrics
    # -- Enable and configure Prometheus Rules for the chart under this key.
    # @default -- See values.yaml
    prometheusRule:
      enabled: false
      labels: {}
      # -- Configure additionial rules for the chart under this key.
      # @default -- See prometheusrules.yaml
      rules: []
      # - alert: UnifiPollerAbsent
      #   annotations:
      #     description: Unifi Poller has disappeared from Prometheus service discovery.
      #     summary: Unifi Poller is down.
      #   expr: |
      #     absent(up{job=~".*unifi-poller.*"} == 1)
      #   for: 5m
      #   labels:
      #     severity: critical
