Hello again, Kong people!
We are excited to announce the second release candidate for our next release, Kong 1.1.0rc2!
This comes with a bunch of stability fixes based on the feedback we got from 1.1.0rc1, plus one extra goodie we sneaked in as it almost made it to rc1: transparent proxying mode!
Download Kong 1.1.0rc2 today — we are eager for feedback!
What’s new since Kong 1.1.0rc1: 
Improvements
- Transparent proxying - the
service
attribute on Routes is now optional; a Route without an assigned Service will proxy transparently (#4286)
Fixes
- Core
- Resolve hostnames in Cassandra contact points (#4378)
- Fix health checks for Targets that need two-level DNS resolution (e.g. SRV → A → IP) (#4386)
- Fix serialization of map types in the Cassandra backend (#4368)
- Admin API
- Fix Admin API inferencing of map types using form-encoded (#4368)
- PDK
- PDK version identifier was bumped to 1.1.0
kong.client.get_subsystem
was moved tokong.nginx.get_subsystem
(#4358)
- DB-less / Declarative config
- fix the behavior of the
/tags
endpoint and?tags=
query string from the Admin API when usingdatabase=off
(#4380) - fix initial load of the declarative config file (#4342)
- reloading the declarative config via
/config
refreshes the Upstream balancers (#4372)
- fix the behavior of the
Dependencies
- Bump OpenSSL to 1.1.0b
- Bump lua-resty-dns-client to 3.0.2
And a recap of all the new stuff in the 1.1.0 series 
- Kong can now run without a database, using in-memory storage only:
- New option in
kong.conf
:database=off
to start Kong without a database - New option in
kong.conf
:declarative_config=kong.yml
to load a YAML file using
Kong’s new declarative config format - New command:
kong config init
to generate a templatekong.yml
file to get you started - New command:
kong config parse kong.yml
to verify the syntax of thekong.yml
file before using it - New Admin API endpoint:
/config
to replace the configuration of Kong entities entirely,
replacing it with the contents of a new declarative config file
- New option in
- Bulk database import, using the same declarative configuration format as the in-memory mode
- New command:
kong config db_import kong.yml
to upsert all entities specified in thekong.yml
file in bulk
- New command:
- Support for tags in entities:
- Every core entity now adds a
tags
field - Admin API endpoints now support searching by tag (for example,
/consumers?tags=example_tag
) - You can search by multiple tags:
/services?tags=serv1,mobile
to search for services matching tagsserv1
andmobile
/services?tags=serv1/serv2
to search for services matching tagsserv1
orserv2
- New Admin API endpoint
/tags/
for listing entities by tag:/tags/example_tag
- Every core entity now adds a
- Improvements for orchestration scenarios:
- The Kubernetes Sidecar Injection plugin is now bundled into Kong for a smoother K8s experience
- New option
--wait
inkong quit
to ease graceful termination when using orchestration tools
- Improvements for stream handling:
- The
stream_realip_module
is now bundled - The stream subsystem now supports Nginx directive injections
- New PDK functions:
kong.client.get_protocol
(returning “http”, “https”, “tcp” or “tls”)
andkong.client.get_subsystem
(returning “http” or “stream”)
- The
- Support for ACL authenticated groups
- Various bugfixes
Quick start for using Kong without a database
- To do a test run of Kong using database-less mode, start Kong as usual, adding the
KONG_DATABASE=off
environment variable (you can also setdatabase=off
inkong.conf
instead if you want to make the changes permanent):
$ export KONG_DATABASE=off
$ kong start -c kong.conf
- You can generate an example
kong.yml
file in the current directory:
$ kong config init -c kong.conf
-
Edit the
kong.yml
and add entities there — the generated file has instructions. -
Now you can load your declarative config using the
/config
endpoint and all entities in that file will be populated in Kong’s memory:
$ http :8001/config config=@kong.yml
Upgrade Path 
You can upgrade from 0.14.1 or any release in the 1.0 series (Note: upgrading from a pre-0.14 cluster is not supported). You can use a Blue/Green deployment method to update: “Blue” means your current version (0.14.1 or 1.0), “Green” means the new version 1.1.0rc2:
- Download 1.1.0rc2, and configure it to point to the same datastore as your Blue cluster. Run
kong migrations up
. - Both Blue and Green nodes can now run simultaneously on the same datastore. Start provisioning 1.1.0rc2 nodes, but do not use their Admin API yet. Prefer making Admin API requests to your Blue cluster instead.
- Gradually divert traffic away from your Blue nodes, and into your 1.1.0rc2 cluster. Monitor your traffic to make sure everything is going smoothly.
- When your traffic is fully migrated to the Green 1.1.0rc2 cluster, decommission your Blue nodes.
- From your 1.1.0rc2 cluster, run:
kong migrations finish
. From this point on, it will not be possible to start Blue nodes pointing to the same datastore anymore. Only run this command when you are confident that your migration was successful. From now on, you can safely make Admin API requests to your 1.1.0rc2 nodes.
Install 1.1.0rc2 on a fresh datastore 
Since version 1.0, Kong uses a new, improved migrations framework. The following commands can be run to prepare a new 1.1 cluster from a fresh datastore:
$ kong migrations bootstrap [-c kong.conf]
$ kong start [-c kong.conf]
What’s next 
Again, depending on the community feedback, we are going to either tag and release 1.1.0 final or make a new release candidate 1.1.0rc3.
As always, consider yourself encouraged to reach out to us here or via GitHub issues if you have any questions or feedback about this release! Your feedback is essential to make Kong better!