Kong v0.13.0 Release Notes
Release Date: 2018-03-22 // about 6 years ago-
๐ This release introduces two new core entities that will improve the way you configure Kong: Routes & Services. Those entities replace the "API" ๐ entity and simplify the setup of non-naive use-cases by providing better ๐ separation of concerns and allowing for plugins to be applied to specific endpoints.
โฌ๏ธ As usual, major version upgrades require database migrations and changes to ๐ง the Nginx configuration file (if you customized the default template). โฌ๏ธ Please take a few minutes to read the 0.13 Upgrade โฌ๏ธ Path for more details regarding breaking changes and migrations before planning to โฌ๏ธ upgrade your Kong cluster.
๐ฅ Breaking Changes
๐ง Configuration
- :warning: The
proxy_listen
andadmin_listen
configuration values have a new syntax. This syntax is more aligned with that of NGINX and is more powerful while also simpler. As a result, the following configuration values have been removed because superfluous:ssl
,admin_ssl
,http2
,admin_http2
,proxy_listen_ssl
, andadmin_listen_ssl
. #3147
๐ Plugins
- ๐ :warning: galileo: As part of the Galileo deprecation path, the galileo
plugin is not enabled by default anymore, although still bundled with 0.13.
Users are advised to stop using the plugin, but for the time being can keep
enabling it by adding it to the
custom_plugin
configuration value. #3233 - โ :warning: rate-limiting (Cassandra): The default migration for including Routes and Services in plugins will remove and re-create the Cassandra rate-limiting counters table. This means that users that were rate-limited because of excessive API consumption will be able to consume the API until they reach their limit again. There is no such data deletion in PostgreSQL. def201f
๐ Changes
Dependencies
- ๐ณ Note to Docker users: The
latest
tag on Docker Hub now points to the alpine image instead of CentOS. This also applies to the0.13.0
tag. - ๐ฆ The OpenResty version shipped with our default packages has been bumped to
1.13.6.1
. The 0.13.0 release should still be compatible with the OpenResty1.11.2.x
series for the time being. - โฌ๏ธ Bumped lua-resty-dns-client
to
2.0.0
. #3220 - โฌ๏ธ Bumped lua-resty-http to
0.12
. #3196 - โฌ๏ธ Bumped lua-multipart to
0.5.5
. #3318 - โฌ๏ธ Bumped lua-resty-healthcheck
to
0.4.0
. #3321
โ Additions
๐ง Configuration
- :fireworks: Support for control-plane and data-plane modes. The new
syntax of
proxy_listen
andadmin_listen
supportsoff
, which disables either one of those interfaces. It is now simpler than ever to make a Kong node "Proxy only" (data-plane) or "Admin only" (control-plane). #3147
Core
- :fireworks: This release introduces two new entities: Routes and Services. Those entities will provide a better separation of concerns than the "API" entity offers. Routes will define rules for matching a client's request (e.g., method, host, path...), and Services will represent upstream services (or backends) that Kong should proxy those requests to. Plugins can also be added to both Routes and Services, enabling use-cases to apply plugins more granularly (e.g., per endpoint). Following this addition, the API entity and related Admin API endpoints are now deprecated. This release is backwards-compatible with the previous model and all of your currently defined APIs and matching rules are still supported, although we advise users to migrate to Routes and Services as soon as possible. #3224
Admin API
- :fireworks: New endpoints:
/routes
and/services
to interact with the new core entities. More specific endpoints are also available such as/services/{service id or name}/routes
,/services/{service id or name}/plugins
, and/routes/{route id}/plugins
. #3224 - ๐ :fireworks: Our new endpoints (listed above) provide much better responses with regards to producing responses for incomplete entities, errors, etc... In the future, existing endpoints will gradually be moved to using this new Admin API content producer. #3224
- ๐ :fireworks: Improved argument parsing in form-urlencoded requests to the new
endpoints as well.
Kong now expects the following syntaxes for representing
arrays:
hosts[]=a.com&hosts[]=b.com
,hosts[1]=a.com&hosts[2]=b.com
, which avoid comma-separated arrays and related issues that can arise. In the future, existing endpoints will gradually be moved to using this new Admin API content parser. #3224
๐ Plugins
- jwt:
ngx.ctx.authenticated_jwt_token
is available for other plugins to use. #2988 - statsd: The fields
host
,port
andmetrics
are no longer marked as "required", since they have a default value. #3209
๐ Fixes
Core
- ๐ Fix an issue causing nodes in a cluster to use the default health checks configuration when the user configured them from another node (event propagated via the cluster). #3319
- 0๏ธโฃ Increase the default load balancer wheel size from 100 to 10.000. This allows for a better distribution of the load between Targets in general. #3296
Admin API
- :warning: The