External-dns doesn't see the Istio gateways

7/5/2019

I am trying to automatically create records on Google Cloud DNS using External DNS and Istio Gateways. I see that there has been quite a few changes to the External DNS repo in the past few days, so I blame the fact that I used to be able to do this and not anymore on the changes!

Anyway, here are my gateway and values files:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: example-gateway
  namespace: default
  annotations:
    istio-type: internal
spec:
  selector:
    istio: internalgateway
  servers:
  - hosts:
    - '*.example.com'
    - example.com
    port:
      name: http
      number: 80
      protocol: HTTP
    tls:
      httpsRedirect: true
  - hosts:
    - '*.example.com'
    - example.com
    port:
      name: https
      number: 443
      protocol: HTTPS
    tls:
      mode: SIMPLE
      privateKey: /etc/istio/ingressgateway-certs/tls.key
      serverCertificate: /etc/istio/ingressgateway-certs/tls.crt

And here is what I have for values:

image:
  registry: registry.opensource.zalan.do
  repository: teapot/external-dns
  tag: latest
...
sources:
#  - service
#  - ingress
  - istio-gateway
#  - crd
...
provider: google

publishInternalServices: true

google:
  ## Google Project to use
  ##
  project: "XXX"
  serviceAccountSecret: "clouddns"
  serviceAccountKey: "credentials.json"

domainFilters:
  - example.com

annotationFilter: "type=internal"
...
rbac:
  create: true
...

Here is the logs I'm getting from my external-dns pod:

...
time="2019-07-05T16:09:11Z" level=info msg="Created Istio client"
time="2019-07-05T16:09:11Z" level=info msg="All records are already up to date"

Although quite clearly the records do not exist on my Cloud DNS zone.

Any idea on why external-dns is not seeing my gateway?

-- cookiedough
dns
external-dns
google-cloud-dns
istio
kubernetes

0 Answers