external-dns: istio-virtualservice does not create entries in Infoblox

What happened: Started with a very basic setup of httpbin, as per https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/istio.md#using-a-virtualservice-as-a-source , added a VirtualService, tailing the logs in debug mode, on kubectl apply I see external-dns-6f7d8c6cc9-dgphl external-dns time="2020-08-12T17:50:11Z" level=debug msg="service added" and a few secs later (polling 1min) external-dns-6f7d8c6cc9-dgphl external-dns time="2020-08-12T17:50:57Z" level=debug msg="No endpoints could be generated from VirtualService test/httpbin" Other types of resources work, namely Service of type LoadBalancer creates A records fine

    spec:
      containers:
      - args:
        - --log-level=debug
        - --log-format=text
        - --domain-filter=k8s.local
        - --policy=sync
        - --provider=infoblox
        - --namespace=test
        - --registry=txt
        - --interval=1m
        - --source=service
        - --source=istio-virtualservice
        - --infoblox-grid-host=grid.local
        - --infoblox-wapi-version=2.3.1
        - --infoblox-view=internal

Service+Gateway:

---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: httpbin
  namespace: test
spec:
  hosts:
  - "test.k8s.local"
  gateways:
  - httpbin-gateway
  http:
  - match:
    - uri:
        prefix: /status
    - uri:
        prefix: /delay
    route:
    - destination:
        port:
          number: 8000
        host: httpbin
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: httpbin-gateway
  namespace: test
spec:
  selector:
    istio: ingressgateway # use Istio default gateway implementation
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - '*.k8s.local'

Any hints for further debugging are most welcome

Anything else we need to know?: https://github.com/bitnami/charts/pull/3216 recently merged passed, so I guess something related to the provider might be wrong?

Environment:

  • External-DNS version (use external-dns --version): 0.7.3
  • DNS provider: Infoblox
  • Others: running in k8s 1.15, chart from Bitnami external-dns-3.2.6

About this issue

  • Original URL
  • State: open
  • Created 4 years ago
  • Reactions: 1
  • Comments: 23 (8 by maintainers)

Most upvoted comments

@devstein: You can’t reopen an issue/PR unless you authored it or you are a collaborator.

In response to this:

/reopen

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/remove-lifecycle stale

Is there any update on this at all?

I’d really like to see this resolved as it’s starting to cause us problems! 😦

Can we have some info on this?

It looks like at the moment the targets (ip addresses) are only extracted from loadbalancer declarations of the gateways. The code responsible for that is here: https://github.com/kubernetes-sigs/external-dns/blob/9d2aaf0efeef00ec0633c4681b105bdd95f556ec/source/virtualservice.go#L475-L481

Maybe we could change the code to also retrieve the ExternalIP or InternalIP of the host where the service is running.

/reopen

For gateway the same situation - the current code only checks LoadBalancer case: https://github.com/kubernetes-sigs/external-dns/blob/f7e9e5c07ee9b8194c9400490e4d763af0dc58df/source/istio_gateway.go#L248-L254

Please support the case with ClusterIP and externalIPs:

spec:
  type: ClusterIP
  externalIPs:
    - 192.168.5.205