Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
1 contributor

Users who have contributed to this file

354 lines (283 sloc) 15.8 KB

Table of Contents

0.4.0 - 2019/04/24

Summary

This release introduces support to run Kong as an Ingress Controller without a database! This release comes with major under the hood rewrites to fix numerous bugs and design issues in the codebase. Most of the syncing logic has now been ported over to decK.

This release comes with a number of breaking changes. Please read the changelog and test in your environment.

Breaking Changes

  • ⚠️ Annotation <plugin-name>.plugin.konghq.com (deprecatd in 0.2.0) is no longer supported.
  • ⚠️ --default-backend-service CLI flag is now removed. The default service will now be picked up from the default backend in the Ingress rules.
  • ⚠️ Service and Upstream entity overrides via KongIngress CRD are now supported only with configuration.konghq.com annotation on Kubernetes services. Route level overrides work same as before, using the configuration.konghq.com annotation on Ingress resources.
  • ⚠️ strip_path property of Routes in Kong is set to true by default.
  • ⚠️ preserve_host property of Routes in Kong is set to true by default.
  • Plugins created for a combination of Route and Consumer using consumerRef property in KongPlugin CRD are not supported anymore. This functionality will be added back in future via #250.
  • Service and upstream Host name have changed from namespace.service-name.port to service-name.namespace.svc.

Added

  • Ingress Controller now supports a DB-less deployment mode using Kong 1.1. #244
  • New run_on and protocols properties are added to KongPlugin CRD. These can be used to further tune behaviors of plugins in Service Mesh deployments.
  • New fields are added to KongIngress CRD to support HTTPS Active healthchecks.
  • Ingress Controller is now built using Go 1.12.
  • Default service, which handles all traffic that is not matched against any of the Ingress rules, is now configured using the default backend defined via the Ingress resources.

Fixed

  • Logs to stdout and stderr will be much more quieter and helpful and won't be as verbose as before.
  • Routes with same path but different methods can now be created. #202
  • Removing a value in KongPlugin config will now correctly sync it to Kong. #117
  • Setting --update-state=false no longer causes a panic and performs leader election correctly. #232 Thanks to @lijiaocn for the fix!!
  • KongIngress will now correctly override properites of Upstream object in Kong. #252
  • Removing a value from KongPlugin config will now correctly unset it in Kong's datastore. #117

Under the hood

  • Translation of Ingress rules and CRDs to Kong entities is completey re-written. #241
  • For database deployments, an external tool, decK is used to sync resources to Kong, fixing numerous bugs and making Ingress Controller code saner and easier to maintain.

0.3.0 - 2019/01/08

Breaking Changes

  • ⚠️ Default Ingress class is now kong. If you were relying on the previous default of nginx, you will need to explicitly set the class using --ingress-class CLI flag.

Added

  • Support for Kong 1.0.x Kong 1.0 introduces a number of breaking changes in the Admin API. Ingress controller is updated to make correct calls and parse responses correctly. #213
  • ingress.class annotation-based filtering on CRD Multiple Kong clusters can be deployed and configured individually on the same Kubernetes Cluster. This feature allows configuring global Plugins, Consumers & credentials using a different ingress.class annotation for each Kong cluster. #220
  • TLS support for Ingress Controller <-> Kong communication The ingress controller can now talk to Kong's Control-Plane using TLS with custom certificates. Following new CLI flags are introduces:
    • --admin-tls-skip-verify: to skip validation of a certificate; it shouldn't be used in production environments.
    • --admin-tls-server-name: use this if the FQDN of Kong's Control Plane doesn't match the CN in the certificate.
    • --admin-ca-cert-file: use this to specify a custom CA cert which is not part of the bundled CA certs. #212

Fixed

  • Retries for services in Kong can be set to zero. #211

0.2.2 - 2018/11/09

Fixed

  • Fix plugin config comparison logic to avoid unnecessary PATCH requests to Kong #196
  • Fix strip_path in Routes in Kong. It is now set to false by default as in all other versions of Ingress controller except 0.2.1. #194
  • Fix path-only based Ingress rule parsing and configuration where only a path based rule for a Kubernetes Service would not setup Routes and Service in Kong. #190
  • Fix a nil pointer reference when overiding Ingress resource with KongIngress #188

0.1.3 - 2018/11/09

Fixed

  • Fix path-only based Ingress rule parsing and configuration where only a path based rule for a Kubernetes Service would not setup Routes and Service in Kong. #190
  • Fix plugin config comparison logic to avoid unnecessary PATCH requests to Kong #196

0.2.1 - 2018/10/26

Added

  • Header Injection in requests to Kong's Admin API HTTP Headers can be set via CLI which will be injected in every request sent to Kong's Admin API, enabling the use of Ingress Controller when Kong's Control Plane is protected by Authentication/Authorization. #172
  • Path only based routing Path only Ingress rules (without a host) are now parsed and served correctly. #142
  • Under the hood, an external library is now used to talk to Kong's Admin API. Several other packages and dead code has been dropped. These changes don't have any user facing changes but are steps in direction to simplify code and make it more testable. #150 #154 #179

Fixed

  • Fixed KongIngress overrides to enable overriding hashing attributes in Upstream object in Kong. Thanks @jdevalk2 for the patch! #139
  • Remove and sync certificates correctly when TLS secret reference changes for a hostname in Ingress spec. #169
  • Migrations for Kong are run using 'Job' in Kubernetes to avoid any issues that might arise due to multiple Kong nodes running migrations. #161
  • Kong and Ingress controller now wait for Postgres to start and migrations to finish before attempting to start. #168

0.1.2 - 2018/10/26

Deprecated

  • ⚠️ Configuring plugins in Kong using <plugin-name>.plugin.konghq.com annotation is now deprecated and will be removed in a future release. Please use plugins.konghq.com annotation instead.

Added

  • Header Injection in requests to Kong's Admin API HTTP Headers can be set via CLI which will be injected in every request sent to Kong's Admin API, enabling the use of Ingress Controller when Kong's Control Plane is protected by Authentication/Authorization. #172
  • Path only based routing Path only Ingress rules (without a host) are now parsed and served correctly. #142
  • Global Plugins Plugins can be configured to run globally in Kong using a "global" label on KongPlugin resource. #112
  • A new property plugin has been introduced in KongPlugin resource which ties the configuration to be used and the type of the plugin. #122
  • Multiple plugins can be configured for an Ingress or a Service in k8s using plugins.konghq.com annotation. #124
  • KongPlugin resources do not need to be duplicated any more. The same KongPlugin resource can be used across multiple Ingress/Service resources. #121

Fixed

  • Avoid issuing unnecessary PATCH requests on Services in Kong during the reconcillation loop, which lead to unnecessary Router rebuilds inside Kong. #107
  • Fixed the diffing logic for plugin configuration between KongPlugin resource in k8s and plugin config in Kong to avoid false positives. #106
  • Correctly format IPv6 address for Targets in Kong. Thanks @NixM0nk3y for the patch! #118
  • Fixed KongIngress overrides to enable overriding hashing attributes in Upstream object in Kong. Thanks @jdevalk2 for the patch! #139
  • Remove and sync certificates correctly when TLS secret reference changes for a hostname in Ingress spec. #169

0.1.1 - 2018/09/26

Fixed

  • Fix version parsing for minor releases of Kong Enterprise (like 0.33-1). The dash(-) didn't go well with the semver parsing #141

0.2.0 - 2018/09/21

Breaking Changes

  • ⚠️ Support for Kong 0.13.x has been dropped in favor of 0.14.x

Deprecated

  • ⚠️ Configuring plugins in Kong using <plugin-name>.plugin.konghq.com annotation is now deprecated and will be removed in a future release. Please use plugins.konghq.com annotation instead.

Added

  • Support for Kong 0.14.x The supported version of Kong 0.14.x has been introduced. Kong 0.14.x introduced breaking changes to a few Admin API endpoints which have been updated in the Ingress Controller. #101
  • Global Plugins Plugins can be configured to run globally in Kong using a "global" label on KongPlugin resource. #112
  • A new property plugin has been introduced in KongPlugin resource which ties the configuration to be used and the type of the plugin. #122
  • Multiple plugins can be configured for an Ingress or a Service in k8s using plugins.konghq.com annotation. #124
  • KongPlugin resources do not need to be duplicated any more. The same KongPlugin resource can be used across multiple Ingress/Service resources. #121
  • The custom resource definitions now have a shortname for all the CRDs, making it easy to interract with kubectl. #120

Fixed

  • Avoid issuing unnecessary PATCH requests on Services in Kong during the reconcillation loop, which lead to unnecessary Router rebuilds inside Kong. #107
  • Fixed the diffing logic for plugin configuration between KongPlugin resource in k8s and plugin config in Kong to avoid false positives. #106
  • Correctly format IPv6 address for Targets in Kong. Thanks @NixM0nk3y for the patch! #118

0.1.0 - 2018/08/17

Breaking Changes

  • ⚠️ Declarative Consumers in Kong Kong consumers can be declaritively configured via KongConsumer custom resources. Any consumers created directly in Kong without a corresponding KongConsumer custom resource will be deleted by the ingress controller. #81

Added

  • Support Upstream TLS Service in Kong can be configured to use HTTPS via KongIngress custom resource. #79
  • Support for control over protocol(HTTP/HTTPS) to use for ingress traffic via KongIngress custom resource. #64

Fixed

  • Multiple SNIs are created in Kong if multiple hosts are specified in TLS section of an Ingress resource. #76
  • Updates to KongIngress resource associated with an Ingress now updates the corresponding routing properties in Kong. #92

v0.0.5 - 2018/06/02

Added

  • Add support for Kong Enterprise Edition 0.32 and above

v0.0.4 and prior

  • The initial versions rapidly were iterated delivering a working ingress controller.
You can’t perform that action at this time.