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.jsonNOTE: If duplicated id's are found in a collection, the data from the last file passed will be kept.
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
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
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
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
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