APIcast
APIcast copied to clipboard
resolver.t
I think in two options here:
- add some logic inside
http.d/init.conf
orcli/environment.lua
; - a second
conf/nginx.conf.liquid
for tests;
First option can be a problem because it will change some almost static files to a more dynamic one, but this is better than a second file with a lot of duplicated content and another block
inside Blackbox.pm
The Problem
- There is two calls to
resty.resolver
- one insideenvironment.lua
and another insideinit.conf
. - These two calls related to
resty.resolver
initialization do not pass thepath
parameter, ignoring any attempt to configure a customresolv.conf
.
These are the code that APIcast execute:
-- http.d/init.conf
require('resty.resolver').init()
-- cli/environment.lua
local resolver = require('resty.resolver')
resolver.init_nameservers
- If these functions are called without the
path
parameter, the machine/container/etc/resolv.conf
and theRESOLVER
environment variable - if defined - will be added to the list of nameservers. - If one of the functions are called with the
path
parameter, the customresolv.conf
will be added together with/etc/resolv.conf
and theRESOLVER
environment variable.
Proposal
Remove one of the resty.resolver
calls and standardize the name of the variable that points to a custom resolv.conf
.
Calling both these functions with path
parameter will duplicate the nameservers.
Since this needs more modifications than a single file and a environment variable name, I will wait for suggestions.
This pull request https://github.com/3scale/APIcast/pull/1432 is working but since there is a commented line and a "strange" variable name, more discussion is desirable.