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 and admin_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, and admin_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 the 0.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 OpenResty 1.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 and admin_listen supports off, 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 and metrics 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
    • ๐Ÿ›  Fix several issues with application/multipart MIME type parsing of payloads. #3318
    • ๐Ÿ›  Fix several issues with the parsing of health checks configuration values. #3306 #3321

    Back to TOC