78 lines
2.2 KiB
Lua
78 lines
2.2 KiB
Lua
local prefix_handler = require "kong.cmd.utils.prefix_handler"
|
|
local nginx_signals = require "kong.cmd.utils.nginx_signals"
|
|
local conf_loader = require "kong.conf_loader"
|
|
local kong_global = require "kong.global"
|
|
local pl_path = require "pl.path"
|
|
local pl_file = require "pl.file"
|
|
local log = require "kong.cmd.utils.log"
|
|
local DB = require "kong.db"
|
|
|
|
|
|
local function execute(args)
|
|
log.disable()
|
|
-- retrieve prefix or use given one
|
|
local new_config = assert(conf_loader(args.conf, {
|
|
prefix = args.prefix
|
|
}))
|
|
log.enable()
|
|
assert(pl_path.exists(new_config.prefix),
|
|
"no such prefix: " .. new_config.prefix)
|
|
|
|
-- write a combined config file
|
|
if args.conf and pl_path.exists(args.conf) then
|
|
local kong_env = assert(pl_file.read(args.conf))
|
|
if pl_path.exists(new_config.kong_env) then
|
|
kong_env = assert(pl_file.read(new_config.kong_env)) .. "\n" .. kong_env
|
|
end
|
|
|
|
assert(prefix_handler.write_env_file(new_config.kong_env, kong_env))
|
|
end
|
|
|
|
local conf = assert(conf_loader(new_config.kong_env, {
|
|
prefix = args.prefix
|
|
}))
|
|
|
|
if not new_config.declarative_config then
|
|
conf.declarative_config = nil
|
|
end
|
|
|
|
assert(prefix_handler.prepare_prefix(conf, args.nginx_conf, nil, true,
|
|
args.nginx_conf_flags))
|
|
|
|
_G.kong = kong_global.new()
|
|
kong_global.init_pdk(_G.kong, conf)
|
|
|
|
local db = assert(DB.new(conf))
|
|
assert(db:init_connector())
|
|
|
|
assert(nginx_signals.reload(conf))
|
|
|
|
log("Kong reloaded")
|
|
end
|
|
|
|
|
|
local lapp = [[
|
|
Usage: kong reload [OPTIONS]
|
|
|
|
Reload a Kong node (and start other configured services
|
|
if necessary) in given prefix directory.
|
|
|
|
This command sends a HUP signal to Nginx, which will spawn
|
|
new workers (taking configuration changes into account),
|
|
and stop the old ones when they have finished processing
|
|
current requests.
|
|
|
|
Options:
|
|
-c,--conf (optional string) configuration file
|
|
-p,--prefix (optional string) prefix Kong is running at
|
|
--nginx-conf (optional string) custom Nginx configuration template
|
|
--nginx-conf-flags (optional string) flags that can be used to control
|
|
how Nginx configuration templates are rendered
|
|
]]
|
|
|
|
|
|
return {
|
|
lapp = lapp,
|
|
execute = execute
|
|
}
|