External Dns

Gateway API Support

Gateways labeled with external-dns: enabled, creates DNS records for hostnames in HTTPRoutes.

provider:
  name: pihole
policy: sync

env:
  - name: EXTERNAL_DNS_PIHOLE_PASSWORD
    valueFrom:
      secretKeyRef:
        name: pihole-password
        key: EXTERNAL_DNS_PIHOLE_PASSWORD

extraArgs:
  - --pihole-server=http://pihole.pihole.svc.cluster.local
  - --pihole-api-version=6
  - --gateway-label-filter=external-dns==enabled

sources:
  - gateway-httproute

ingressClassFilters:
  - cilium

Gateway Example

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: blog
  namespace: blog
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-production # Specify the name of your issuer resource
  labels:
    external-dns: enabled
spec:
  gatewayClassName: cilium
  listeners:
    - hostname: blog.uclab8.net # Specify a valid domain to reach your application
      name: blog-uclab8-net-http
      port: 80
      protocol: HTTP
    - hostname: blog.uclab8.net # Specify a valid domain to reach your application
      name: blog-uclab8-net-https
      port: 443
      protocol: HTTPS
      tls:
        mode: Terminate
        certificateRefs:
          - kind: Secret
            name: blog-uclab8-tls # Specify the secret name to be used with your application
      allowedRoutes:
        namespaces:
          from: All

my DevOps Odyssey

“Σα βγεις στον πηγαιμό για την Ιθάκη, να εύχεσαι να ‘ναι μακρύς ο δρόμος, γεμάτος περιπέτειες, γεμάτος γνώσεις.” - Kavafis’ Ithaka.



External DNS - Gateway API

2025-10-28

Series:lab

Categories:Kubernetes

Tags:#k3s, #dns, #pihole, #gatway-api, #lab


External Dns: