---
# 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: &name external-dns
  namespace: network
spec:
  interval: 30m
  chart:
    spec:
      chart: external-dns
      version: 1.13.1
      sourceRef:
        kind: HelmRepository
        name: kubernetes-sigs-external-dns
        namespace: flux-system
      interval: 30m

  values:
    fullnameOverride: *name

    domainFilters:
      - valinor.social

    env:
      - name: DNSIMPLE_OAUTH
        valueFrom:
          secretKeyRef:
            name: externaldns-secrets
            key: dnsimple_api_token

    serviceMonitor:
      enabled: true

    extraArgs:
      - --crd-source-apiversion=externaldns.k8s.io/v1alpha1
      - --crd-source-kind=DNSEndpoint
      - --annotation-filter=external-dns.alpha.kubernetes.io/target

    podAnnotations:
      secret.reloader.stakater.com/reload: externaldns-secrets

    policy: sync
    provider: dnsimple

    resources:
      requests:
        cpu: 5m
        memory: 24M
      limits:
        memory: 48M

    sources:
      - ingress
      - crd

    txtPrefix: "k8s."

  postRenderers:
    - kustomize:
        patches:
          - target:
              version: v1
              kind: Deployment
              name: *name
            patch: |
              - op: add
                path: /spec/template/spec/enableServiceLinks
                value: false