---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2beta2.json
apiVersion: helm.toolkit.fluxcd.io/v2beta2
kind: HelmRelease
metadata:
  name: &name externaldns-hsn-dev
  namespace: network
spec:
  interval: 30m
  chart:
    spec:
      chart: external-dns
      version: 1.14.1
      sourceRef:
        kind: HelmRepository
        name: kubernetes-sigs-external-dns
        namespace: flux-system
      interval: 30m

  values:
    fullnameOverride: *name

    env:
      - name: CF_API_TOKEN
        valueFrom:
          secretKeyRef:
            name: externaldns-hsn-dev-secrets
            key: cloudflare_api_token

    domainFilters:
      - hsn.dev
    policy: sync
    provider: cloudflare
    sources:
      - ingress
      - crd
    txtPrefix: "k8s."

    extraArgs:
      args:
        - --cloudflare-proxied
        - --crd-source-apiversion=externaldns.k8s.io/v1alpha1
        - --crd-source-kind=DNSEndpoint
        - --ingress-class=external
        - --interval=1m
        - --log-format=text
        - --log-level=info
        - --registry=txt
        - --txt-owner-id=default

    serviceMonitor:
      enabled: true

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

    resources:
      requests:
        cpu: 5m
        memory: 100Mi
      limits:
        memory: 100Mi

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