_,-}}-._
/\ } /\
_|(O\_ _/O)
_|/ (__''__)
_|\/ WVVVVW tasty vagrant!
\ _\ \MMMM/_
_|\_\ _ '---; \_
/\ \ _\/ \_ / \
/ ( _\/ \ \ |'VVV
( '-,._\_.( 'VVV /
\ / _) / _)
'....--''\__vvv)\__vvv) ldb
Gojira (Godzilla)
Gojira is a multi-purpose tool to ease development and testing of Kong by using Docker containers. Very similar to a Vagrant environment, but completely unlike it.
It comes from far away to put an end to vagrant up
, vagrant destroy
and
vagrant wait ten hours
.
Spin up as many Kong instances as you want. On different commits at the same time. With different OpenSSL, OpenResty and LuaRocks versions. Run a shell inside of the containers, make Kong roar. Make Kong fail, cd into the repo, fix it. Make Kong start again. Commit it. Push it, ship it!
Usage: gojira action [options...]
Options:
-t, --tag git tag to mount kong on (default: master)
-p, --prefix prefix to use for namespacing
-k, --kong PATH for a kong folder, will ignore tag
-n, --network use network with provided name
-r, --repo repo to clone kong from
-pp, --port expose a port for a kong container
-v, --volume add a volume to kong container
--image image to use for kong
--cassandra use cassandra
--alone do not spin up any db
--redis-cluster run redis in cluster mode
--host specify hostname for kong container
--git-https use https to clone repos
-V, --verbose echo every command that gets executed
-h, --help display this help
Commands:
up start a kong. if no -k path is specified, it will download
kong on $GOJIRA_KONGS folder and checkouts the -t tag.
also fires up a postgres database .with it. for free.
down bring down the docker-compose thingie running in -t tag.
remove it, nuke it from space. something went wrong, and you
want a clear start or a less buggy tool to use.
build build a docker image with the specified VERSIONS
run run a command on a running kong container.
Use with --cluster to run the command across all kong nodes.
Use with --index 4 to run the command on node #4.
run@[serv] run a command on a specified service.
example: 'gojira run@db psql -U kong'
shell get a shell on a running kong container.
shell@[serv] get a shell on a specified service.
cd cd into a kong prefix repo
image show current gojira image
images list gojira images
ps list running prefixes
ls list stored prefixes in $GOJIRA_KONGS
lay make gojira lay an egg
snapshot make a snapshot of a running gojira
compose alias for docker-compose, try: gojira compose help
roar make gojira go all gawo wowo
logs follow container logs
nuke [-f] remove all running gojiras. -f for removing all files
gojira depends on docker (18.09.02) and docker-compose (1.23.2). As usual, the most recent, the better.
Note you need
~/.local/bin
on your$PATH
.
PATH=$PATH:~/.local/bin
git clone git@github.com:Kong/kong-gojira.git
mkdir -p ~/.local/bin
ln -s $(realpath kong-gojira/gojira.sh) ~/.local/bin/gojira
brew install coreutils
For the time being, we have a guide. Also, a vagrant to gojira guide.
Certain behaviours of gojira can be tamed by using the following environment variables.
default:
kong
Default repository to clone from.
default:
master
Default tag to clone from GOJIRA_REPO
when no -t
has been provided
default:
~/.gojira/kongs
Path where prefixes are stored
default:
~/.gojira/home
Path to the shared home between gojiras
Instead of building a development image, force this image to be used. Docs
default:
0
(off)
Use https instead of ssh for cloning GOJIRA_REPO
default:
1
(on)
Detects if the current path is a kong repository, providing an automatic -k
flag. Docs
default:
1
(on)
When using a local path (-k or auto), it will always generate the same gojira prefix based on the md5 of the path. Docs
default:
1
(on)
Try to use an automatic snapshot when available. Docs
default:
0
(off)
Runs make dev
on up when the environment needs it.
Together with GOJIRA_USE_SNAPSHOT
, it will record a snapshot after so the
next up can re-use that snapshot. On luarocks change, it will bring up a
compatible base, and run 'make dev' again, which should be faster since it
will be incremental, but will not record a snapshot to reduce disk usage.
Read more about GOJIRA_MAGIC_DEV
on the manual section.
Set this to a full kong path so gojira always references it no matter what
This efectively hardcodes all the gojira magic to always, always use this path,
without having to reference it by -k
. ie
export GOJIRA_KONG_PATH=full/path/to/some/kong
- gojira artwork by ascii artist ldb.