---
# 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.3
      sourceRef:
        kind: HelmRepository
        name: kubernetes-sigs-external-dns
        namespace: flux-system
  install:
    remediation:
      retries: 3
  upgrade:
    cleanupOnFail: true
    remediation:
      retries: 3
  uninstall:
    keepHistory: false
  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:
      - --cloudflare-proxied
      - --crd-source-apiversion=externaldns.k8s.io/v1alpha1
      - --crd-source-kind=DNSEndpoint
      - --ingress-class=external-nginx
      - --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