Kong API Gateway Config Manager
Kong API Gateway Config Manager
$ npm install -g konfig-manager
$ konfig COMMAND
running command...
$ konfig (-v|--version|version)
konfig-manager/1.5.0 darwin-x64 node-v12.13.0
$ konfig --help [COMMAND]
USAGE
$ konfig COMMAND
...
Here’s an example of how to use this library with docker multi stage:
FROM node:lts-alpine as konfig-manager
RUN npm install -g konfig-manager@1.4.4 --production
FROM kong:1.2.1-alpine as api-gateway
COPY --from=konfig-manager /usr/local/ /usr/local/
...
This library allows you to replace content based on the resource type (plugins
, routes
, …) when dumping and to perform substitutions based on environment variabled when running loading.
Here it follows a .konfigrc
example:
{
"load": {
"substitutions": {
"environment_variables": {
"enabled": true,
"white_list": ["SERVER_PROTOCOL", "SERVER_HOST", "SERVER_PORT"],
"types": {
"TRUSTED_ORIGINS": "list"
}
}
}
},
"sync": {
"substitutions": {
"environment_variables": {
"enabled": true,
"white_list": ["SERVER_PROTOCOL", "SERVER_HOST", "SERVER_PORT", "TRUSTED_ORIGINS"],
"types": {
"TRUSTED_ORIGINS": "list"
}
}
}
},
"dump": {
"substitutions": {
"plugins": {
"config": {
"introspection_endpoint": "${SERVER_PROTOCOL}://${SERVER_HOST}:${SERVER_PORT}/openid/introspect",
"discovery": "${SERVER_PROTOCOL}://${SERVER_HOST}:${SERVER_PORT}/openid/.well-known/openid-configuration",
"trusted_origins": "${TRUSTED_ORIGINS}"
}
},
"routes": {
"hosts": [
"${SERVER_HOST}"
]
}
},
"exceptions": {
"routes": [
{
"key": "name",
"value": "do-not-change-this-route"
}
]
}
}
}
You can run the command by passing the --file
several times to merge it.
konfig sync --file minimal-konfig.json --file konfig.json
NOTE: If duplicated id’s are found in a collection, the data from the last file passed will be kept.
konfig dump
Dump available Kong data in a file
USAGE
$ konfig dump
OPTIONS
--file=file [default: konfig.json] name of file to be created as output
--url=url [default: http://localhost:8001] URL of the Kong Admin API
DESCRIPTION
It requests data from Kong API endpoints and save the results in a file.
See code: src/commands/dump.js
konfig flush
Flush available Kong data
USAGE
$ konfig flush
OPTIONS
--url=url [default: http://localhost:8001] URL of the Kong Admin API
DESCRIPTION
It requests the endpoints getting the available data and calls the DELETE endpoints.
See code: src/commands/flush.js
konfig help [COMMAND]
display help for konfig
USAGE
$ konfig help [COMMAND]
ARGUMENTS
COMMAND command to show help for
OPTIONS
--all see all commands in CLI
See code: @oclif/plugin-help
konfig load
Load available Kong data from a file
USAGE
$ konfig load
OPTIONS
--file=file [default: konfig.json] name of file to be loaded
--url=url [default: http://localhost:8001] URL of the Kong Admin API
DESCRIPTION
It gets data from a file and loads in Kong Admin API endpoints.
See code: src/commands/load.js
konfig sync
Sync data from file with a Kong Admin API
USAGE
$ konfig sync
OPTIONS
--file=file [default: konfig.json] name of file to be loaded
--url=url [default: http://localhost:8001] URL of the Kong Admin API
DESCRIPTION
It gets data from a Kong Admin API and sync based on the files provided.
See code: src/commands/sync.js