Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AAAA record updates seem to be unsupported with pihole #4654

Open
fahadysf opened this issue Aug 3, 2024 · 1 comment
Open

AAAA record updates seem to be unsupported with pihole #4654

fahadysf opened this issue Aug 3, 2024 · 1 comment
Labels
kind/bug Categorizes issue or PR as related to a bug. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.

Comments

@fahadysf
Copy link

fahadysf commented Aug 3, 2024

external-dns-5787776dc7-fm8w5_external-dns.log

What happened:
Updating AAAA records with the pihole provider seems to fail. CNAMES get created fine.

Relevant bits of the container logs below:

time="2024-08-03T22:22:05Z" level=debug msg="Listing A records from http://pihole.f9.je/admin/scripts/pi-hole/php/customdns.php"
time="2024-08-03T22:22:06Z" level=debug msg="Listing CNAME records from http://pihole.f9.je/admin/scripts/pi-hole/php/customcname.php"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service external-services/panorama"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service external-services/portainer"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service external-services/tpot-kibana"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service metallb-system/metallb-webhook-service"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service default/whoami"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service external-services/fw1"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service external-services/guacamole"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service external-services/kuma"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service kube-system/rke2-coredns-rke2-coredns"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service traefik/traefik"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service default/kubernetes"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service external-services/flood"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service external-services/fw2"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service external-services/splunk"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service kube-system/rke2-metrics-server"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service kube-system/rke2-snapshot-validation-webhook"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from service: traefik/traefik-v6: [k.fyl.lol 120 IN AAAA  2001:470:ca0e:1010:a1:: [] k.f9.je 120 IN AAAA  2001:470:ca0e:1010:a1:: []]"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service cattle-system/rancher-webhook"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service external-dns/external-dns"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service external-services/pve"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service cattle-system/cattle-cluster-agent"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service external-services/pbs"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from service kube-system/cilium-agent"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/splunk: [splunk.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="No endpoints could be generated from Host traefik/traefik-dashboard"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/flood: [flood.k.fyl.lol 0 IN CNAME  k.fyl.lol;k.f9.je [] flood.k.f9.je 0 IN CNAME  k.fyl.lol;k.f9.je []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/pbs: [pbs.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/pbs-redirect-https: [pbs.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/fw1: [fw1.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/guacamole-redirect-https: [guacamole.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/panorama: [panorama.k.fyl.lol 0 IN CNAME  k.fyl.lol;k.f9.je [] panorama.k.f9.je 0 IN CNAME  k.fyl.lol;k.f9.je []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/portainer: [portainer.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/tpot-kibana: [tpot-kibana.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/fw1-redirect-https: [fw1.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/fw2: [fw2.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/kuma: [kuma.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/panorama-redirect-https: [panorama.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/pve: [pve.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/pve-redirect-https: [pve.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/splunk-redirect-https: [splunk.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: default/whoami-ingressroute: [whoami.k.fyl.lol 0 IN CNAME  k.fyl.lol;k.f9.je [] whoami.k.fyl.lol 0 IN CNAME  k.fyl.lol;k.f9.je []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/guacamole: [guacamole.k.fyl.lol 0 IN CNAME  k.fyl.lol;k.f9.je []]"
time="2024-08-03T22:22:07Z" level=debug msg="Endpoints generated from IngressRoute: external-services/kuma-redirect-https: [kuma.k.fyl.lol 0 IN CNAME  k.fyl.lol []]"
time="2024-08-03T22:22:07Z" level=debug msg="Removing duplicate endpoint pbs.k.fyl.lol 0 IN CNAME  k.fyl.lol []"
time="2024-08-03T22:22:07Z" level=debug msg="Removing duplicate endpoint fw1.k.fyl.lol 0 IN CNAME  k.fyl.lol []"
time="2024-08-03T22:22:07Z" level=debug msg="Removing duplicate endpoint pve.k.fyl.lol 0 IN CNAME  k.fyl.lol []"
time="2024-08-03T22:22:07Z" level=debug msg="Removing duplicate endpoint splunk.k.fyl.lol 0 IN CNAME  k.fyl.lol []"
time="2024-08-03T22:22:07Z" level=debug msg="Removing duplicate endpoint whoami.k.fyl.lol 0 IN CNAME  k.f9.je;k.fyl.lol []"
time="2024-08-03T22:22:07Z" level=debug msg="Removing duplicate endpoint kuma.k.fyl.lol 0 IN CNAME  k.fyl.lol []"
time="2024-08-03T22:22:07Z" level=warning msg="Skipping unsupported endpoint k.f9.je AAAA 2001:470:ca0e:1010:a1::"
time="2024-08-03T22:22:07Z" level=warning msg="Skipping unsupported endpoint k.fyl.lol AAAA 2001:470:ca0e:1010:a1::"

(Full log is attached)

What you expected to happen:
AAAA records should be created the same way as CNAME records are.

How to reproduce it (as minimally and precisely as possible):
It's a simple setup with external-dns monitoring ingressroutes from Traefik (deployment manifest below) and trying to update CNAMEs and AAAA (IPv6) records into pihole. This same setup works fine with the provider being cloudflare.

Anything else we need to know?:
External-DNS Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: '9'
    meta.helm.sh/release-name: external-dns
    meta.helm.sh/release-namespace: external-dns
  creationTimestamp: '2024-07-30T00:32:31Z'
  generation: 9
  labels:
    app.kubernetes.io/instance: external-dns
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: external-dns
    app.kubernetes.io/version: 0.14.1
    helm.sh/chart: external-dns-1.14.4
  managedFields:
    - apiVersion: apps/v1
      fieldsType: FieldsV1
      fieldsV1:
        f:metadata:
          f:annotations:
            .: {}
            f:meta.helm.sh/release-name: {}
            f:meta.helm.sh/release-namespace: {}
          f:labels:
            .: {}
            f:app.kubernetes.io/instance: {}
            f:app.kubernetes.io/managed-by: {}
            f:app.kubernetes.io/name: {}
            f:app.kubernetes.io/version: {}
            f:helm.sh/chart: {}
        f:spec:
          f:progressDeadlineSeconds: {}
          f:replicas: {}
          f:revisionHistoryLimit: {}
          f:selector: {}
          f:strategy:
            f:type: {}
          f:template:
            f:metadata:
              f:labels:
                .: {}
                f:app.kubernetes.io/instance: {}
                f:app.kubernetes.io/name: {}
            f:spec:
              f:containers:
                k:{"name":"external-dns"}:
                  .: {}
                  f:image: {}
                  f:imagePullPolicy: {}
                  f:livenessProbe:
                    .: {}
                    f:failureThreshold: {}
                    f:httpGet:
                      .: {}
                      f:path: {}
                      f:port: {}
                      f:scheme: {}
                    f:initialDelaySeconds: {}
                    f:periodSeconds: {}
                    f:successThreshold: {}
                    f:timeoutSeconds: {}
                  f:name: {}
                  f:ports:
                    .: {}
                    k:{"containerPort":7979,"protocol":"TCP"}:
                      .: {}
                      f:containerPort: {}
                      f:name: {}
                      f:protocol: {}
                  f:readinessProbe:
                    .: {}
                    f:failureThreshold: {}
                    f:httpGet:
                      .: {}
                      f:path: {}
                      f:port: {}
                      f:scheme: {}
                    f:initialDelaySeconds: {}
                    f:periodSeconds: {}
                    f:successThreshold: {}
                    f:timeoutSeconds: {}
                  f:resources: {}
                  f:securityContext:
                    .: {}
                    f:allowPrivilegeEscalation: {}
                    f:capabilities:
                      .: {}
                      f:drop: {}
                    f:privileged: {}
                    f:readOnlyRootFilesystem: {}
                    f:runAsGroup: {}
                    f:runAsNonRoot: {}
                    f:runAsUser: {}
                  f:terminationMessagePath: {}
                  f:terminationMessagePolicy: {}
              f:dnsPolicy: {}
              f:restartPolicy: {}
              f:schedulerName: {}
              f:securityContext:
                .: {}
                f:fsGroup: {}
                f:runAsNonRoot: {}
                f:seccompProfile:
                  .: {}
                  f:type: {}
              f:serviceAccount: {}
              f:serviceAccountName: {}
              f:terminationGracePeriodSeconds: {}
      manager: helm
      operation: Update
      time: '2024-07-30T00:32:31Z'
    - apiVersion: apps/v1
      fieldsType: FieldsV1
      fieldsV1:
        f:spec:
          f:template:
            f:metadata:
              f:annotations:
                .: {}
                f:cattle.io/timestamp: {}
            f:spec:
              f:containers:
                k:{"name":"external-dns"}:
                  f:args: {}
                  f:envFrom: {}
      manager: agent
      operation: Update
      time: '2024-08-03T22:15:59Z'
    - apiVersion: apps/v1
      fieldsType: FieldsV1
      fieldsV1:
        f:metadata:
          f:annotations:
            f:deployment.kubernetes.io/revision: {}
        f:status:
          f:availableReplicas: {}
          f:conditions:
            .: {}
            k:{"type":"Available"}:
              .: {}
              f:lastTransitionTime: {}
              f:lastUpdateTime: {}
              f:message: {}
              f:reason: {}
              f:status: {}
              f:type: {}
            k:{"type":"Progressing"}:
              .: {}
              f:lastTransitionTime: {}
              f:lastUpdateTime: {}
              f:message: {}
              f:reason: {}
              f:status: {}
              f:type: {}
          f:observedGeneration: {}
          f:readyReplicas: {}
          f:replicas: {}
          f:updatedReplicas: {}
      manager: kube-controller-manager
      operation: Update
      subresource: status
      time: '2024-08-03T22:16:11Z'
  name: external-dns
  namespace: external-dns
  resourceVersion: '3062601'
  uid: 9342b161-7dbb-425c-b081-55371f29ee5b
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/instance: external-dns
      app.kubernetes.io/name: external-dns
  strategy:
    type: Recreate
  template:
    metadata:
      annotations:
        cattle.io/timestamp: '2024-08-03T22:14:14Z'
      creationTimestamp: null
      labels:
        app.kubernetes.io/instance: external-dns
        app.kubernetes.io/name: external-dns
    spec:
      containers:
        - args:
            - '--source=service'
            - '--source=traefik-proxy'
            - '--registry=noop'
            - '--provider=pihole'
            - '--pihole-server=http://pihole.f9.je'
            - '--log-level=debug'
          envFrom:
            - secretRef:
                name: pihole-password
          image: registry.k8s.io/external-dns/external-dns:v0.14.1
          imagePullPolicy: IfNotPresent
          livenessProbe:
            failureThreshold: 2
            httpGet:
              path: /healthz
              port: http
              scheme: HTTP
            initialDelaySeconds: 10
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 5
          name: external-dns
          ports:
            - containerPort: 7979
              name: http
              protocol: TCP
          readinessProbe:
            failureThreshold: 6
            httpGet:
              path: /healthz
              port: http
              scheme: HTTP
            initialDelaySeconds: 5
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 5
          resources: {}
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop:
                - ALL
            privileged: false
            readOnlyRootFilesystem: true
            runAsGroup: 65532
            runAsNonRoot: true
            runAsUser: 65532
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext:
        fsGroup: 65534
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
      serviceAccount: external-dns
      serviceAccountName: external-dns
      terminationGracePeriodSeconds: 30
  observedGeneration: 9
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1

Environment:

  • External-DNS version 0.14.1
  • DNS provider: pihole
  • Others:
@fahadysf fahadysf added the kind/bug Categorizes issue or PR as related to a bug. label Aug 3, 2024
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.
Projects
None yet
Development

No branches or pull requests

3 participants