| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
tests(helpers): rename directory `details` to `internal` (#13665) https://konghq.atlassian.net/browse/KAG-5330 | 2 年前 | |
chore(patchs):`kong.request.enable_buffering` PDK function can now be used when downstream uses HTTP/2. (#13614) AG-108 FTI-5725 | 1 年前 | |
refactor(pluginservers): code refactor & testing (#12858) Context ------- The overall goal of this commit is to refactor the external plugins implementation, with the following goals in mind: - Make plugin server code more approachable to unfamiliar engineers and easier to evolve with confidence - Harden configuration; ensure configuration defects are caught before Kong is started - Extend testing coverage This is related to ongoing work on the Go PDK, with similar goals in mind. Summary ------- This commit implements the following overall changes to plugin server code: - Move configuration related code into conf loader, so that configuration loading and validation happens at startup time, rather than lazily, when plugin data is loaded or pluginservers are started. Add tests for current behavior. - Move process-management code - for starting up plugin servers as well as querying external plugins info - into the `process.lua` module. - Introduce a `kong.runloop.plugin_servers.rpc` module that encapsulates RPC initialization and protocol-specific implementations. This further simplifies the main plugin server main module. - Factor exposed API and phase handlers bridging code into a new `plugin` module, which encapsulates an external plugin representation, including the expected fields for any Kong plugin, plus external plugin-specific bits, such as the RPC instance. Part of this external plugin-specific part is the instance life cycle management. With this structure, the `kong.runloop.plugin_servers` main module contains only general external plugin code, including a list of loaded external plugins, and associated start/stop functions for plugin servers. Testing ------- This commit also implements the following improvements to tests: - Restructure fixtures to accommodate new external plugin servers -- namely, targeting for now in the existing Python and Javascript - Add new test cases for external plugins: * External plugin configuration: add test cases for current behavior; in particular: - Fail if no `query_cmd` is provided; - Warn if no `start_cmd` is provided - this is by design, as external plugins servers can be managed outside of Kong * Plugin server start / stop - for both Go and Python plugins * External plugin info querying for both Go and Python plugins * External plugin execution - for both Go and Python plugins Internal flow ------------- `.plugin_servers.init:` loads all external plugins, by calling .plugin_servers.process and `.plugin_servers.plugin` `.plugin_servers.process`: queries external plugins info with the command specified in `_query_cmd` proeprties `.plugin_servers.plugin`: with info obtained as described above, `.plugin:new` returns a kong-compatible representation of an external plugin, with phase handlers, PRIORITY, and wrappers to the PDK. Calls `.plugin_servers.rpc` to create an RPC through which Kong communicates with the plugin process `.plugin_servers.rpc`: based on info contained in the plugin (protocol field), creates the correct RPC for the given external plugin `.plugin_servers.rpc.pb_rpc`: protobuf rpc implementation - used by Golang `.plugin_servers.rpc.mp.rpc`: messagepack rpc implementation - used by JS and Python `.plugin_servers.init`: calls `.plugin_servers.process` to start external plugin servers `.plugin_servers.process`: optionally starts all external plugin servers (if a `_start_cmd` is found) uses the resty pipe API to manage the external plugin process | 1 年前 | |
tests(helpers): rename directory `details` to `internal` (#13665) https://konghq.atlassian.net/browse/KAG-5330 | 2 年前 | |
chore(ci): resolve redis port conflicts for redis-auth | 1 年前 | |
feat(clustering/sync): validate deltas when syncing (#14127) ### Summary 1. validate entity schema * call `kong.db[entity].validate(entity)` over all the entities from deltas 2. validate entity's references (foreign references) * re-implemented logic: traverse delta -> try to find delta's foreign entity in config & LMDB * TODO: decouple this logic completely from declarative config logic: https://konghq.atlassian.net/browse/KAG-6231 3. TODO: report error if deleting delta operation could not find its associated entity in LMDB and deltas: https://konghq.atlassian.net/browse/KAG-6238 KAG-5897 | 1 年前 | |
tests(helpers): rename directory `details` to `internal` (#13665) https://konghq.atlassian.net/browse/KAG-5330 | 2 年前 | |
tests(helpers): rename directory `details` to `internal` (#13665) https://konghq.atlassian.net/browse/KAG-5330 | 2 年前 | |
chore(spec): generate_keys supports EC key (#14184) | 1 年前 | |
tests(router): remove duplicated `reload_router()` (#13693) | 2 年前 | |
tests(helpers): rename directory `details` to `internal` (#13665) https://konghq.atlassian.net/browse/KAG-5330 | 2 年前 | |
tests(helpers): rename directory `details` to `internal` (#13665) https://konghq.atlassian.net/browse/KAG-5330 | 2 年前 | |
tests(helpers): rename directory `details` to `internal` (#13665) https://konghq.atlassian.net/browse/KAG-5330 | 2 年前 | |
fix(patches): add patches from upstream openresty (#13640) * chore(patches): add patches from upstream openresty Fixing the issue where a connection can't be setkeepalive successfully when using TLSv1.3. The issue was originally found in the tcp-log plugin. \### Summary \#### ngx_lua patches - https://github.com/openresty/lua-nginx-module/commit/bf4bdcd5b299fc5680eb7d6fd594d4a49983de21 - https://github.com/openresty/lua-nginx-module/commit/ea09d92adf835e30cab8d79343c7b8266e888128 - https://github.com/openresty/lua-nginx-module/commit/816483d6e66efa1b5a93571932d4e33f336b2d36 \#### ngx_stream_lua patches - https://github.com/openresty/stream-lua-nginx-module/commit/5954e22fa1e03125df7c0c55aa003c1076e02f7c - https://github.com/openresty/stream-lua-nginx-module/commit/69f0cd762112a6e0cddb07f2b5192e9a65034a93 - https://github.com/openresty/stream-lua-nginx-module/commit/1e1d93eac29a3d8ffe2183c0470c090ef4da700f https://konghq.atlassian.net/browse/FTI-6190 * chore(fixture): fix tcp_server, SSL_shutdown only does a half close, so the connection can still be reused. | 1 年前 | |
tests(router): remove duplicated `reload_router()` (#13693) | 2 年前 | |
tests(*): remove useless strategy arg from reload_kong helper function | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 年前 |