Announcing kong-env, a tool for creating localized Kong Enterprise development environments

This post is announcing the open sourcing of a project I’ve been using at FactSet, kong-env, a tool for downloading and installing, to a local directory, a completely self-contained development environment for a particular enterprise version of Kong. Usage is pretty simple:

$ ./kong-env.py -v 1.3
2020-01-14 10:05:49,397: initializing self-contained kong enterprise development environment: version=1.3
... <a bunch of output>
2020-01-14 10:14:30,251: done

This creates a directory under the current working direction, name kong-<version>, which contains everything you need to run a local Kong instance, including a compiled openresty with the lua-kong-nginx-module, a luarocks install pointing at all the right places, and the kong-community luarock installed at the right version. Attaching to said directory is straightforward:

$ source kong-1.3/bin/activate
(kong-1.3) $ 

Detaching being source’ing the deactivate script, ala python virtual environments. Creating a local plugin development environment, once the environment is sourced, is basically git clone’ing the kong repository, then creating your kong-plugin development directory next to the kong repository directory.

Open to feedback, issues and pull requests. If this seems useful to you, please give it a try. Thanks!

3 Likes

Interesting approach, will need to give this a spin.

Meanwhile; have you seen Pongo? if so, what features were you missing that caused you to develop kong-env?

1 Like

Pongo looks great, but unless I misunderstood the documentation, it supports only docker containers, they which I can not use from my environment. This project is closer to kong-build-tools and kong-ci in spirit, but if anything I’d use kong-build-tools in this project if I can aim it correctly, and kong-ci relies on sudo, which I don’t have in my environment.

Thx for the feedback. Indeed Pongo relies heavily on Docker and Docker images. If that is a limitation then Pongo won’t do.