decK helps manage Kong’s configuration in a declarative fashion.
It can sync configuration to a running Kong cluster, diff configuration
to detect any drift or manual changes and backup your Kong’s configuration.
It also can manage Kong’s configuration in a distributed way using tags,
helping you split Kong’s configuration across various teams.
decK: Declarative configuration for Kong
decK is a CLI tool to configure Kong declaratively using a single config file.
Exisitng Kong configuration to a YAML configuration file
This can be used to backup Kong’s configuration.
Kong’s database can be populated using the exported or a hand written config
- Diff and sync capabilities
decK can diff the configuration in the config file and
the configuration in Kong’s DB and then sync it as well.
This can be used to detect config drifts or manual interventions.
- Reverse sync:
decK supports a sync the other way as well, meaning if an
entity is created in Kong and doesn’t add it to the config file,
decK will detect the change.
This can be used to drops all entities in Kong’s DB.
- Parallel operations
All Admin API calls to Kong are executed in parallel using threads to
speed up the sync.
- Supported entities
- Routes and services
- Upstreams and targets
- Certificates and SNIs
- Plugins (Global, per route, per service and per consumer)
- Authentication with Kong
Custom HTTP headers can be injected in requests to Kong’s Admin API
for authentication/authorization purposes.
- Manage Kong’s config with multiple config file
Split your Kong’s configuration into multiple logical files based on a shared
set of tags amongst entities.
decK is compatible with Kong 1.x.
If you are on macOS, install decK using brew:
$ brew tap hbagdi/deck
$ brew install deck
If you are Linux, you can either use the Debian or RPM archive from
the Github release page
or install by downloading the binary:
$ curl -sL https://github.com/hbagdi/deck/releases/download/v0.4.0/deck_0.4.0_linux_amd64.tar.gz -o deck.tar.gz
$ tar -xf deck.tar.gz -C /tmp
$ cp /tmp/deck /usr/local/bin/
Once installed, please use the following command to get help:
You can find more docs at the docs website