Uploaded image for project: 'Red Hat 3scale API Management'
  1. Red Hat 3scale API Management
  2. THREESCALE-4752

Fully Qualified Domain Name in the Private Base URL

XMLWordPrintable

    • Not Started
    • Not Started
    • Not Started
    • Not Started
    • Not Started
    • Not Started
    • -
    • Hide

      Using the Zync's service /status/ready endpoint as an example:

      1. set Private Base Url to:

      http://zync.<project>.svc.cluster.local.:8080/status/ready
      

      2. send request to APIcast
      3. logs from APIcast, which show that an additional dot is added at the end:

      2020/03/18 10:56:23 [debug] 18#18: *565 [lua] resolver.lua:326: lookup(): resolver query: zync.amp271.svc.cluster.local.
      2020/03/18 10:56:23 [debug] 18#18: *565 [lua] cache.lua:122: fetch_answers(): resolver cache miss zync.amp271.svc.cluster.local.
      2020/03/18 10:56:23 [debug] 18#18: *565 [lua] cache.lua:188: get(): resolver cache miss: zync.amp271.svc.cluster.local.
      2020/03/18 10:56:23 [debug] 18#18: *565 [lua] resolver.lua:292: search_dns(): resolver query: zync.amp271.svc.cluster.local. search:  query: zync.amp271.svc.cluster.local..
      2020/03/18 10:56:23 [debug] 18#18: *565 [lua] cache.lua:122: fetch_answers(): resolver cache miss zync.amp271.svc.cluster.local..
      2020/03/18 10:56:23 [debug] 18#18: *565 [lua] cache.lua:188: get(): resolver cache miss: zync.amp271.svc.cluster.local..
      2020/03/18 10:56:23 [debug] 18#18: *565 [lua] dns_client.lua:68: query(): resolver query: zync.amp271.svc.cluster.local.. nameserver: 172.30.0.2:53
      2020/03/18 10:56:23 [debug] 18#18: *565 [lua] dns_client.lua:68: query(): resolver query: zync.amp271.svc.cluster.local.. nameserver: 172.30.0.2:53
      2020/03/18 10:56:23 [debug] 18#18: *565 [lua] resolver.lua:292: search_dns(): resolver query: zync.amp271.svc.cluster.local. search: amp271.svc.cluster.local query: zync.amp271.svc.cluster.local..amp271.svc.cluster.local
      2020/03/18 10:56:23 [debug] 18#18: *565 [lua] cache.lua:122: fetch_answers(): resolver cache miss zync.amp271.svc.cluster.local..amp271.svc.cluster.local
      2020/03/18 10:56:23 [debug] 18#18: *565 [lua] cache.lua:188: get(): resolver cache miss: zync.amp271.svc.cluster.local..amp271.svc.cluster.local
      
      Show
      Using the Zync's service /status/ready endpoint as an example: 1. set Private Base Url to: http: //zync.<project>.svc.cluster.local.:8080/status/ready 2. send request to APIcast 3. logs from APIcast, which show that an additional dot is added at the end: 2020/03/18 10:56:23 [debug] 18#18: *565 [lua] resolver.lua:326: lookup(): resolver query: zync.amp271.svc.cluster.local. 2020/03/18 10:56:23 [debug] 18#18: *565 [lua] cache.lua:122: fetch_answers(): resolver cache miss zync.amp271.svc.cluster.local. 2020/03/18 10:56:23 [debug] 18#18: *565 [lua] cache.lua:188: get(): resolver cache miss: zync.amp271.svc.cluster.local. 2020/03/18 10:56:23 [debug] 18#18: *565 [lua] resolver.lua:292: search_dns(): resolver query: zync.amp271.svc.cluster.local. search: query: zync.amp271.svc.cluster.local.. 2020/03/18 10:56:23 [debug] 18#18: *565 [lua] cache.lua:122: fetch_answers(): resolver cache miss zync.amp271.svc.cluster.local.. 2020/03/18 10:56:23 [debug] 18#18: *565 [lua] cache.lua:188: get(): resolver cache miss: zync.amp271.svc.cluster.local.. 2020/03/18 10:56:23 [debug] 18#18: *565 [lua] dns_client.lua:68: query(): resolver query: zync.amp271.svc.cluster.local.. nameserver: 172.30.0.2:53 2020/03/18 10:56:23 [debug] 18#18: *565 [lua] dns_client.lua:68: query(): resolver query: zync.amp271.svc.cluster.local.. nameserver: 172.30.0.2:53 2020/03/18 10:56:23 [debug] 18#18: *565 [lua] resolver.lua:292: search_dns(): resolver query: zync.amp271.svc.cluster.local. search: amp271.svc.cluster.local query: zync.amp271.svc.cluster.local..amp271.svc.cluster.local 2020/03/18 10:56:23 [debug] 18#18: *565 [lua] cache.lua:122: fetch_answers(): resolver cache miss zync.amp271.svc.cluster.local..amp271.svc.cluster.local 2020/03/18 10:56:23 [debug] 18#18: *565 [lua] cache.lua:188: get(): resolver cache miss: zync.amp271.svc.cluster.local..amp271.svc.cluster.local

      When the upstream API is a service running in the same OpenShift Cluster, the complete domain of the service in the cluster can be put in the Private Base URL to make the name resolution faster.

      It is possible, for example to use:

      http://<service>.<namespace>.svc.cluster.local:<port>

      But if we attempt to use a FQDN by adding a trailing dot to the domain like so:

      http://<service>.<namespace>.svc.cluster.local.:<port>
      

      The name resolution fails in APIcast and from the logs it appears that the lua resolver is trying to match the domain by appending the search domains, although it's a FQDN.

              Unassigned Unassigned
              rhn-support-sillumin Samuele Illuminati (Inactive)
              Michael Coelho Michael Coelho (Inactive)
              Eloy Coto Eloy Coto
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: