This BOSH Release is the fastest way to get up and running with a cluster of Kong CE API Gateway when you're using BOSH.
You are provided here with all the necessary binaries, configuration templates, and startup scripts for converging Kong clusters (i.e. installing and updating over time) on Ubuntu Bionic nodes. Plus, we also provide here a standard deployment manifest to help you deploy your first Kong API Gateway easily.
This repository includes base manifests and operator files. They can be used for initial deployments and subsequently used for updating your deployments.
git clone https://github.com/gstackio/gk-kong-boshrelease.git
cd gk-kong-boshrelease/deploy
export BOSH_ENVIRONMENT=<bosh-alias>
export BOSH_DEPLOYMENT=kong
bosh deploy gk-kong.yml --vars-file=default-vars.yml
If your BOSH does not have Credhub/Config Server (but it should), then
remember to use --vars-store
to allow generation of passwords and
certificates into a local YAML file.
When new versions of gk-kong-boshrelease
are released, the
deploy/gk-kong.yml
file is updated. This means you can easily git pull
and
bosh deploy
to upgrade.
export BOSH_ENVIRONMENT=<bosh-alias>
export BOSH_DEPLOYMENT=kong
cd gk-kong-boshrelease/deploy
git pull
bosh deploy gk-kong.yml --vars-file=default-vars.yml
Horizontal scaling works out of the box, with a mere updating of the
instances:
property in the deployment manifest. Kong nodes
will synchronize their state on the shared PostgreSQL database, with
some caching implemented.
You can update the db_update_frequency_in_sec
value (default is 5 seconds) to suit your needs.
The customize-db-update-freqency.yml ops file
is provided here to help you in this.
Please note though, that the default deployment manifest doesn't provide you with any High Availability (HA) or horizontal scaling solution for the PostgreSQL database. If you stick to it, this will still be a single point of failure.
If you are concerned with HA design for Kong, we encourage you to have a look at the Cassandra BOSH Release that we're also contributing to.
We can also mention here the CockroachDB BOSH Release (CockroachDB is a PostgreSQL-compatible database that is designed to be clustered for High Availability), that has a working BOSH deployment in our Easy Foundry distribution.
This is a reboot verion of the Kong CE BOSH Release which in turn was a fork of the community's Kong release.
As explained in the fork, we have abandoned the non-hermetic, non-reproducible, and thus non-production-ready Docker design.
Pull requests are welcome! See in our open issues the possible improvements that you could contribute to. They are prioritized by milestones that each expose a specific goal.
Whenever you need to update the blobs, you'll find in the
scripts/add-blobs.sh
script the way we have been fetching them. This helps
in fetching any newer versions of the softwares, and brings more tracability
as to where the blobs hav been downloaded from.
Copyright © 2018-2019, Benjamin Gandon, Gstack
Like the rest of BOSH, this Gstack Kong BOSH Release is released under the terms of the Apache 2.0 license.