github.com/nginxinc/kubernetes-ingress@v1.12.5/docs-web/releases.md (about)

     1  # Releases
     2  
     3  ## NGINX Ingress Controller 1.12.5
     4  
     5  19 October 2022
     6  
     7  CHANGES:
     8  * Update NGINX version to 1.23.2.
     9  * Update NGINX Plus version to R27.
    10  * Update Alpine to 3.16.
    11  * Update Go to 1.19 and Go dependencies.
    12  
    13  HELM CHART:
    14  * The version of the Helm chart is now 0.10.5.
    15  
    16  UPGRADE:
    17  * For NGINX, use the 1.12.5 image from our DockerHub: `nginx/nginx-ingress:1.12.5`, `nginx/nginx-ingress:1.12.5-alpine` or `nginx/nginx-ingress:1.12.5-ubi`
    18  * For NGINX Plus, please build your own image using the 1.12.5 source code.
    19  * For Helm, use version 0.10.5 of the chart.
    20  
    21  ## NGINX Ingress Controller 1.12.4
    22  
    23  23 March 2022
    24  
    25  CHANGES:
    26  * Update NGINX version to 1.21.6.
    27  * Update NGINX Plus version to R26.
    28  * Update Debian to Bullseye.
    29  * Update Alpine to 3.15.
    30  * Update UBI to 8.
    31  * Update Go to 1.17 and Go dependencies.
    32  
    33  FIXES:
    34  * Fix OpenTracing not working with NGINX Plus.
    35  
    36  HELM CHART:
    37  * The version of the Helm chart is now 0.10.4.
    38  
    39  UPGRADE:
    40  * For NGINX, use the 1.12.4 image from our DockerHub: `nginx/nginx-ingress:1.12.4`, `nginx/nginx-ingress:1.12.4-alpine` or `nginx/nginx-ingress:1.12.4-ubi`
    41  * For NGINX Plus, please build your own image using the 1.12.4 source code.
    42  * For Helm, use version 0.10.4 of the chart.
    43  
    44  ## NGINX Ingress Controller 1.12.3
    45  
    46  28 October 2021
    47  
    48  FIXES:
    49  * [2133](https://github.com/nginxinc/kubernetes-ingress/pull/2133) Use release specific repo for the App Protect packages on Debian. This fixes an error when building Debian-based images with NGINX Plus with App Protect: previously, building an image would fail with the error `nginx-plus-module-appprotect : Depends: app-protect-plugin (= 3.639.0-1~buster) but 3.671.0-1~buster is to be installed`. The bug first appeared when NGINX App Protect version 3.6 was released on 13 October 2021.
    50  * [2134](https://github.com/nginxinc/kubernetes-ingress/pull/2134) Apply -enable-snippets cli arg to Ingresses. This PR extends the existing -enable-snippets cli argument to apply to Ingress resources. If snippets are not enabled, the Ingress Controller will reject any Ingress resources with snippets annotations. Previously, the argument only applied to VirtualServer, VirtualServerRoute and TransportServer resources. Please Note: this is a breaking change. See the `UPGRADE` instructions below.
    51  
    52  HELM CHART:
    53  * The version of the Helm chart is now 0.10.3.
    54  
    55  UPGRADE:
    56  * For NGINX, use the 1.12.3 image from our DockerHub: `nginx/nginx-ingress:1.12.3`, `nginx/nginx-ingress:1.12.3-alpine` or `nginx/nginx-ingress:1.12.3-ubi`
    57  * For NGINX Plus, please build your own image using the 1.12.3 source code.
    58  * For Helm, use version 0.10.3 of the chart.
    59  * We changed the behaviour of snippets in Ingress resources by extending the existing -enable-snippets cli argument to apply to Ingress resources as well as VirtualServer, VirtualServerRoute and TransportServer resources. Because the default value of -enable-snippets is false, if you are using snippets in Ingress resources, you must explicitly set the -enable-snippets to true before upgrading the Ingress Controller, so that the new version of the Ingress Controller doesn't reject Ingresses with snippets annotations.
    60  
    61  ## NGINX Ingress Controller 1.12.2
    62  
    63  7 October 2021
    64  
    65  FIXES:
    66  * [2048](https://github.com/nginxinc/kubernetes-ingress/pull/2048) Use release specific repo for NGINX Plus on Debian. This fixes an error when building Debian-based images with NGINX Plus: previously, building an image would fail with the error `Package 'nginx-plus-r24' has no installation candidate`. The bug first appeared when NGINX Plus R25 was released on 28 September 2021.
    67  
    68  HELM CHART:
    69  * The version of the Helm chart is now 0.10.2.
    70  
    71  UPGRADE:
    72  * For NGINX, use the 1.12.2 image from our DockerHub: `nginx/nginx-ingress:1.12.2`, `nginx/nginx-ingress:1.12.2-alpine` or `nginx/nginx-ingress:1.12.2-ubi`
    73  * For NGINX Plus, please build your own image using the 1.12.2 source code.
    74  * For Helm, use version 0.10.2 of the chart.
    75  
    76  ## NGINX Ingress Controller 1.12.1
    77  
    78  8 September 2021
    79  
    80  CHANGES:
    81  * Update NGINX App Protect version to 3.5.
    82  
    83  HELM CHART:
    84  * The version of the Helm chart is now 0.10.1.
    85  
    86  UPGRADE:
    87  * For NGINX, use the 1.12.1 image from our DockerHub: `nginx/nginx-ingress:1.12.1`, `nginx/nginx-ingress:1.12.1-alpine` or `nginx/nginx-ingress:1.12.1-ubi`
    88  * For NGINX Plus, use the 1.12.1 image from the F5 Container Registry - see [the documentation here](https://docs.nginx.com/nginx-ingress-controller/installation/pulling-ingress-controller-image/)
    89  * Alternatively, you can also build your own image using the 1.12.1 source code.
    90  * For Helm, use version 0.10.1 of the chart.
    91  
    92  ## NGINX Ingress Controller 1.12.0
    93  
    94  30 June 2021
    95  
    96  OVERVIEW:
    97  
    98  Release 1.12.0 includes:
    99  * The introduction of pre-built containers for advanced capabilities with NGINX Plus through the F5 Container Registry.
   100  * TransportServer supports TCP/UDP connections through the NGINX streams module adding support for matching specific health check response patterns for granular availability testing of your application, maximum connections to protect your applications from overload, supporting fine tuning of load balancing behavior, and snippets for advanced capability support as soon as you are ready to implement.
   101  * Availability through the AWS Container marketplace supporting Elastic Kubernetes Service.
   102  * NGINX App Protect capabilities have been extended to support the latest version and its capabilities.
   103  
   104  You will find the complete changelog for release 1.12.0, including bug fixes, improvements, and changes below.
   105  
   106  FEATURES:
   107  * [1633](https://github.com/nginxinc/kubernetes-ingress/pull/1633) Support match in TransportServer health checks.
   108  * [1619](https://github.com/nginxinc/kubernetes-ingress/pull/1619) Add AWS Marketplace Entitlement verification.
   109  * [1480](https://github.com/nginxinc/kubernetes-ingress/pull/1480) Add max connections to TransportServer.
   110  * [1479](https://github.com/nginxinc/kubernetes-ingress/pull/1479) Add load balancing method to TransportServer.
   111  * [1466](https://github.com/nginxinc/kubernetes-ingress/pull/1466) Support snippets in TransportServer.
   112  
   113  FEATURES FOR NGINX APP PROTECT:
   114  * [1578](https://github.com/nginxinc/kubernetes-ingress/pull/1578) Add support for CRSF protection in APPolicy.
   115  * [1513](https://github.com/nginxinc/kubernetes-ingress/pull/1513) Support multiple log security configs in Ingresses.
   116  * [1481](https://github.com/nginxinc/kubernetes-ingress/pull/1481) Add support for user defined browsers in APPolicy.
   117  * [1411](https://github.com/nginxinc/kubernetes-ingress/pull/1411) Add unary gRPC support in APPolicy.
   118  
   119  IMPROVEMENTS:
   120  * [1671](https://github.com/nginxinc/kubernetes-ingress/pull/1671) Simplify Dockerfile stages for Debian.
   121  * [1652](https://github.com/nginxinc/kubernetes-ingress/pull/1652) Add HTTPS option to Prometheus endpoint.
   122  * [1646](https://github.com/nginxinc/kubernetes-ingress/pull/1646) Improve Dockerfile.
   123  * [1574](https://github.com/nginxinc/kubernetes-ingress/pull/1574) Add Docker image for Alpine with NGINX Plus.
   124  * [1512](https://github.com/nginxinc/kubernetes-ingress/pull/1512) Don't require default server TLS secret.
   125  * [1500](https://github.com/nginxinc/kubernetes-ingress/pull/1500) Support ssl_reject_handshake in Ingress and VS.
   126  * [1494](https://github.com/nginxinc/kubernetes-ingress/pull/1494) Add logs around NGINX Plus binary/flag mismatch.
   127  * [1492](https://github.com/nginxinc/kubernetes-ingress/pull/1492) Update the IC so that GlobalConfiguration is not mandatory when configured.
   128  * Documentation improvements: [1649](https://github.com/nginxinc/kubernetes-ingress/pull/1649).
   129  
   130  FIXES:
   131  * [1658](https://github.com/nginxinc/kubernetes-ingress/pull/1658) Add missing njs module to the openshift-image-nap-plus image.
   132  * [1654](https://github.com/nginxinc/kubernetes-ingress/pull/1654) Fix incorrect configuration and unexpected warnings about Secrets at the IC start.
   133  * [1501](https://github.com/nginxinc/kubernetes-ingress/pull/1501) Fix ungraceful shutdown of NGINX.
   134  * Documentation fixes: [1668](https://github.com/nginxinc/kubernetes-ingress/pull/1668), [1594](https://github.com/nginxinc/kubernetes-ingress/pull/1594) thanks to [shaggy245](https://github.com/shaggy245), [1563](https://github.com/nginxinc/kubernetes-ingress/pull/1563), [1551](https://github.com/nginxinc/kubernetes-ingress/pull/1551).
   135  
   136  HELM CHART:
   137  * The version of the helm chart is now 0.10.0.
   138  * Add new parameters to the Chart: `prometheus.scheme`, `prometheus.secret`. Added in [1652](https://github.com/nginxinc/kubernetes-ingress/pull/1652).
   139  
   140  CHANGES:
   141  * [1604](https://github.com/nginxinc/kubernetes-ingress/pull/1604) Update NGINX Plus to R24. Previously, the Dockerfile had a fixed NGINX Plus version. Now the Dockerfile has a floating version that corresponds to the latest major NGINX Plus version. In the event of a patch version of NGINX Plus being released, make sure to rebuild your image to get the latest version (previously, we released a new Ingress Controller release in that case). Additionally, the AppProtect related packages are no longer fixed -- the Dockerfile will always install the latest version of the packages that work with the latest NGINX Plus version.
   142  * [1500](https://github.com/nginxinc/kubernetes-ingress/pull/1500) Support ssl_reject_handshake in Ingress and VS. Previously, to handle missing or invalid TLS Secrets in Ingress and VirtualServer resources, the Ingress Controller would configure NGINX to break any attempts for clients to establish TLS connections to the affected hosts using `ssl_ciphers NULL;` in the NGINX configuration. The method didn't work for TLS v1.3. Now the Ingress Controller uses `ssl_reject_handshake on;`, which works for TLS v1.3.
   143  * Update NGINX Plus version to R24.
   144  * Update NGINX version to 1.21.0.
   145  
   146  UPGRADE:
   147  * For NGINX, use the 1.12.0 image from our DockerHub: `nginx/nginx-ingress:1.12.0`, `nginx/nginx-ingress:1.12.0-alpine` or `nginx-ingress:1.12.0-ubi`
   148  * For NGINX Plus, please build your own image using the 1.12.0 source code.
   149  * For Helm, use version 0.10.0 of the chart.
   150  
   151  SUPPORTED PLATFORMS:
   152  
   153  We will provide technical support for the NGINX Ingress Controller on any Kubernetes platform that is currently supported by its provider and which passes the Kubernetes conformance tests.  This release was fully tested on the following Kubernetes versions: 1.16-1.20.
   154  
   155  ## NGINX Ingress Controller 1.11.3
   156  
   157  25 May 2021
   158  
   159  CHANGES:
   160  * Update NGINX version to 1.21.0.
   161  
   162  HELM CHART:
   163  * The version of the Helm chart is now 0.9.3.
   164  
   165  UPGRADE:
   166  * For NGINX, use the 1.11.3 image from our DockerHub: `nginx/nginx-ingress:1.11.3`, `nginx/nginx-ingress:1.11.3-alpine` or `nginx/nginx-ingress:1.11.3-ubi`
   167  * For NGINX Plus, please build your own image using the 1.11.3 source code.
   168  * For Helm, use version 0.9.3 of the chart.
   169  
   170  ## NGINX Ingress Controller 1.11.2
   171  
   172  19 May 2021
   173  
   174  CHANGES:
   175  * Update NGINX Plus version to R23 P1.
   176  
   177  HELM CHART:
   178  * The version of the Helm chart is now 0.9.2.
   179  
   180  UPGRADE:
   181  * For NGINX, use the 1.11.2 image from our DockerHub: `nginx/nginx-ingress:1.11.2`, `nginx/nginx-ingress:1.11.2-alpine` or `nginx/nginx-ingress:1.11.2-ubi`
   182  * For NGINX Plus, please build your own image using the 1.11.2 source code.
   183  * For Helm, use version 0.9.2 of the chart.
   184  
   185  ## NGINX Ingress Controller 1.11.1
   186  
   187  7 April 2021
   188  
   189  CHANGES:
   190  * Update NGINX version to 1.19.9.
   191  * Update the OpenSSL libraries used in the UBI images
   192  * Fixed documentation in the Helm README
   193  
   194  HELM CHART:
   195  * The version of the Helm chart is now 0.9.1.
   196  
   197  UPGRADE:
   198  * For NGINX, use the 1.11.1 image from our DockerHub: `nginx/nginx-ingress:1.11.1`, `nginx/nginx-ingress:1.11.1-alpine` or `nginx/nginx-ingress:1.11.1-ubi`
   199  * For NGINX Plus, please build your own image using the 1.11.1 source code.
   200  * For Helm, use version 0.9.1 of the chart.
   201  
   202  ## NGINX Ingress Controller 1.11.0
   203  
   204  31 March 2021
   205  
   206  OVERVIEW:
   207  
   208  Release 1.11.0 includes:
   209  * Native NGINX Ingress Controller App Protect (WAF) policy
   210  * TransportServer improvements in terms of reliability, added features and operational aspects
   211  * Integration of NGINX Ingress Controller with Istio service mesh
   212  
   213  You will find the complete changelog for release 1.11.0, including bug fixes, improvements, and changes below.
   214  
   215  FEATURES:
   216  * [1317](https://github.com/nginxinc/kubernetes-ingress/pull/1317) Add status field to Policy resource.
   217  * [1449](https://github.com/nginxinc/kubernetes-ingress/pull/1449) Add support for ClusterIP in upstreams in VirtualServers/VirtualServerRoutes.
   218  * [1413](https://github.com/nginxinc/kubernetes-ingress/pull/1413) Add serverSnippets to TransportServer.
   219  * [1425](https://github.com/nginxinc/kubernetes-ingress/pull/1425) Add status field to TransportServer resource.
   220  * [1384](https://github.com/nginxinc/kubernetes-ingress/pull/1384) Add active health checks to TransportServer.
   221  * [1382](https://github.com/nginxinc/kubernetes-ingress/pull/1382) Add passive health checks to TransportServer.
   222  * [1346](https://github.com/nginxinc/kubernetes-ingress/pull/1346) Add configurable timeouts to TransportServer.
   223  * [1297](https://github.com/nginxinc/kubernetes-ingress/pull/1297) Support custom return in the default server. Thanks to [030](https://github.com/030).
   224  
   225  FEATURES FOR NGINX APP PROTECT:
   226  * [1378](https://github.com/nginxinc/kubernetes-ingress/pull/1378) Add WAF Policy.
   227  
   228  IMPROVEMENTS:
   229  * [1420](https://github.com/nginxinc/kubernetes-ingress/pull/1420) Support IngressClassName in TransportServer.
   230  * [1415](https://github.com/nginxinc/kubernetes-ingress/pull/1415) Handle host and listener collisions for TransportServer resource.
   231  * [1322](https://github.com/nginxinc/kubernetes-ingress/pull/1322) Improve VirtualServer/VirtualServerRoute warnings for Policies.
   232  * [1288](https://github.com/nginxinc/kubernetes-ingress/pull/1288) Add stricter validation for some ingress annotations.
   233  * [1241](https://github.com/nginxinc/kubernetes-ingress/pull/1241) Refactor Dockerfile and Makefile.
   234  * Documentation improvements: [1320](https://github.com/nginxinc/kubernetes-ingress/pull/1320), [1326](https://github.com/nginxinc/kubernetes-ingress/pull/1326), and [1377](https://github.com/nginxinc/kubernetes-ingress/pull/1377).
   235  
   236  FIXES:
   237  * [1457](https://github.com/nginxinc/kubernetes-ingress/pull/1457) Wait for caches to sync when the Ingress Controller starts.
   238  * [1444](https://github.com/nginxinc/kubernetes-ingress/pull/1444) Fix setting host header in action proxy in VirtualServer/VirtualServerRoute.
   239  * [1396](https://github.com/nginxinc/kubernetes-ingress/pull/1396) Fix reload timeout calculation for verifying NGINX reloads.
   240  
   241  HELM CHART:
   242  * The version of the helm chart is now 0.9.0.
   243  
   244  CHANGES:
   245  * [1455](https://github.com/nginxinc/kubernetes-ingress/pull/1455) Update NGINX version to 1.19.8.
   246  * [1428](https://github.com/nginxinc/kubernetes-ingress/pull/1428) Update Nginx App Protect version to 3.0. **Note**:  [The Advanced gRPC Protection for Unary Traffic](/nginx-app-protect/configuration/#advanced-grpc-protection-for-unary-traffic) is not currently supported.
   247  
   248  KNOWN ISSUES:
   249  * [1448](https://github.com/nginxinc/kubernetes-ingress/issues/1448) When an Ingress Controller pod starts, it can report warnings about missing secrets for Ingress and other resources that reference secrets. Those warnings are intermittent - once the Ingress Controller fully processes the resources of the cluster, it will clear the warnings. Only after that, the Ingress Controller will become ready to accept client traffic - its readiness probe will succeed.
   250  
   251  UPGRADE:
   252  * For NGINX, use the 1.11.0 image from our DockerHub: `nginx/nginx-ingress:1.11.0`, `nginx/nginx-ingress:1.11.0-alpine` or `nginx-ingress:1.11.0-ubi`
   253  * For NGINX Plus, please build your own image using the 1.11.0 source code.
   254  * For Helm, use version 0.9.0 of the chart.
   255  * [1241](https://github.com/nginxinc/kubernetes-ingress/pull/1241) improved the Makefile. As a result, the commands for building the Ingress Controller image were changed. See the updated commands [here](https://docs.nginx.com/nginx-ingress-controller/installation/building-ingress-controller-image/#building-the-image-and-pushing-it-to-the-private-registry).
   256  * [1241](https://github.com/nginxinc/kubernetes-ingress/pull/1241) also consolidated all Dockerfiles into a singe Dockerfile. If you customized any of the Dockerfiles, make sure to port the changes to the new Dockerfile.
   257  * [1288](https://github.com/nginxinc/kubernetes-ingress/pull/1288) further improved validation of Ingress annotations. See this [document](https://docs.nginx.com/nginx-ingress-controller/configuration/ingress-resources/advanced-configuration-with-annotations/#validation) to learn more about which annotations are validated. Note that the Ingress Controller will reject resources with invalid annotations, which means clients will see `404` responses from NGINX.  Before upgrading, ensure the Ingress resources don't have annotations with invalid values. Otherwise, after the upgrade, the Ingress Controller will reject such resources.
   258  * [1457](https://github.com/nginxinc/kubernetes-ingress/pull/1457) fixed the bug when an Ingress Controller pod could become ready before it generated the configuration for all relevant resources in the cluster. The fix also requires that the Ingress Controller can successfully list the relevant resources from the Kubernetes API. For example, if the `-enable-custom-resources` cli argument is `true` (which is the default), the VirtualServer, VirtualServerRoute, TransportServer, and Policy CRDs must be created in the cluster, so that the Ingress Controller can list them. This is similar to other custom resources -- see the list [here](https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-manifests/#create-custom-resources). Thus, before upgrading, make sure that the CRDs are created in the cluster. Otherwise, the Ingress Controller pods will not become ready.
   259  
   260  SUPPORTED PLATFORMS:
   261  
   262  We will provide technical support for the NGINX Ingress Controller on any Kubernetes platform that is currently supported by its provider and which passes the Kubernetes conformance tests.  This release was fully tested on the following Kubernetes versions: 1.16-1.20.
   263  
   264  ## NGINX Ingress Controller 1.10.1
   265  
   266  16 March 2021
   267  
   268  CHANGES:
   269  * Update NGINX version to 1.19.8.
   270  * Add Kubernetes 1.20 support.
   271  * [1373](https://github.com/nginxinc/kubernetes-ingress/pull/1373), [1439](https://github.com/nginxinc/kubernetes-ingress/pull/1439), [1440](https://github.com/nginxinc/kubernetes-ingress/pull/1440): Fix various issues in the Makefile. In 1.10.0, a bug was introduced that prevented building Ingress Controller images on versions of make < 4.1.
   272  
   273  HELM CHART:
   274  * The version of the Helm chart is now 0.8.1.
   275  
   276  UPGRADE:
   277  * For NGINX, use the 1.10.1 image from our DockerHub: `nginx/nginx-ingress:1.10.1`, `nginx/nginx-ingress:1.10.1-alpine` or `nginx/nginx-ingress:1.10.1-ubi`
   278  * For NGINX Plus, please build your own image using the 1.10.1 source code.
   279  * For Helm, use version 0.8.1 of the chart.
   280  
   281  ## NGINX Ingress Controller 1.10.0
   282  
   283  26 January 2021
   284  
   285  OVERVIEW:
   286  
   287  Release 1.10.0 includes:
   288  * Open ID Connect authentication policy.
   289  * Improved handling of Secret resources with extended validation and error reporting.
   290  * Improved visibility with Prometheus metrics for the configuration workqueue and the ability to annotate NGINX logs with the metadata of Kubernetes resources.
   291  * NGINX App Protect User-Defined signatures support.
   292  * Improved validation of Ingress annotations.
   293  
   294  You will find the complete changelog for release 1.10.0, including bug fixes, improvements, and changes below.
   295  
   296  FEATURES FOR POLICY RESOURCE:
   297  * [1304](https://github.com/nginxinc/kubernetes-ingress/pull/1304) Add Open ID Connect policy.
   298  
   299  FEATURES FOR NGINX APP PROTECT:
   300  * [1281](https://github.com/nginxinc/kubernetes-ingress/pull/1281) Add support for App Protect User Defined Signatures.
   301  
   302  FEATURES:
   303  * [1266](https://github.com/nginxinc/kubernetes-ingress/pull/1266) Add workqueue metrics to Prometheus metrics.
   304  * [1233](https://github.com/nginxinc/kubernetes-ingress/pull/1233) Annotate tcp metrics with k8s object labels.
   305  * [1231](https://github.com/nginxinc/kubernetes-ingress/pull/1231) Support k8s objects variables in log format.
   306  
   307  IMPROVEMENTS:
   308  * [1270](https://github.com/nginxinc/kubernetes-ingress/pull/1270) and [1277](https://github.com/nginxinc/kubernetes-ingress/pull/1277) Improve validation of Ingress annotations.
   309  * [1265](https://github.com/nginxinc/kubernetes-ingress/pull/1265) Report warnings for misconfigured TLS and JWK secrets.
   310  * [1262](https://github.com/nginxinc/kubernetes-ingress/pull/1262) Use setcap(8) only once. [1263](https://github.com/nginxinc/kubernetes-ingress/pull/1263) Use chown(8) only once. [1264](https://github.com/nginxinc/kubernetes-ingress/pull/1264) Use mkdir(1) only once. Thanks to [Sergey A. Osokin](https://github.com/osokin).
   311  * [1256](https://github.com/nginxinc/kubernetes-ingress/pull/1256) and [1260](https://github.com/nginxinc/kubernetes-ingress/pull/1260) Improve handling of secret resources.
   312  * [1240](https://github.com/nginxinc/kubernetes-ingress/pull/1240) Validate TLS and CA secrets.
   313  * [1235](https://github.com/nginxinc/kubernetes-ingress/pull/1235) Use buildkit secret flag for NGINX plus images.
   314  * Documentation improvements: [1282](https://github.com/nginxinc/kubernetes-ingress/pull/1282), [1293](https://github.com/nginxinc/kubernetes-ingress/pull/1293), [1303](https://github.com/nginxinc/kubernetes-ingress/pull/1303), [1315](https://github.com/nginxinc/kubernetes-ingress/pull/1315).
   315  
   316  HELM CHART:
   317  * The version of the helm chart is now 0.8.0.
   318  * [1290](https://github.com/nginxinc/kubernetes-ingress/pull/1290) Add new preview policies parameter to chart. `controller.enablePreviewPolicies` was added.
   319  * [1232](https://github.com/nginxinc/kubernetes-ingress/pull/1232) Replace deprecated imagePullSecrets helm setting. `controller.serviceAccount.imagePullSecrets` was removed. `controller.serviceAccount.imagePullSecretName` was added.
   320  * [1228](https://github.com/nginxinc/kubernetes-ingress/pull/1228) Fix installation of ingressclass on Kubernetes versions `v1.18.x-*`
   321  
   322  CHANGES:
   323  * [1299](https://github.com/nginxinc/kubernetes-ingress/pull/1299) Update NGINX App Protect version to 2.3 and debian distribution to `debian:buster-slim`.
   324  * [1291](https://github.com/nginxinc/kubernetes-ingress/pull/1291) Update NGINX OSS to `1.19.6`. Update NGINX Plus to `R23`.
   325  * [1290](https://github.com/nginxinc/kubernetes-ingress/pull/1290) Graduate policy resource and accessControl policy to generally available.
   326  * [1225](https://github.com/nginxinc/kubernetes-ingress/pull/1225) Require secrets to have types.
   327  * [1237](https://github.com/nginxinc/kubernetes-ingress/pull/1237) Deprecate support for helm2 clients.
   328  
   329  UPGRADE:
   330  * For NGINX, use the 1.10.0 image from our DockerHub: `nginx/nginx-ingress:1.10.0`, `nginx/nginx-ingress:1.10.0-alpine` or `nginx-ingress:1.10.0-ubi`
   331  * For NGINX Plus, please build your own image using the 1.10.0 source code.
   332  * For Helm, use version 0.8.0 of the chart.
   333  * As a result of [1270](https://github.com/nginxinc/kubernetes-ingress/pull/1270) and [1277](https://github.com/nginxinc/kubernetes-ingress/pull/1277), the Ingress Controller improved validation of Ingress annotations: more annotations are validated and validation errors are reported via events for Ingress resources. Additionally, the default behavior for invalid annotation values was changed: instead of using the default values, the Ingress Controller will reject a resource with an invalid annotation value, which will make clients see `404` responses from NGINX. See this [document](https://docs.nginx.com/nginx-ingress-controller/configuration/ingress-resources/advanced-configuration-with-annotations/#validation) to learn more. Before upgrading, ensure the Ingress resources don't have annotations with invalid values. Otherwise, after the upgrade, the Ingress Controller will reject such resources.
   334  * In [1232](https://github.com/nginxinc/kubernetes-ingress/pull/1232) `controller.serviceAccount.imagePullSecrets` was removed. Use the new `controller.serviceAccount.imagePullSecretName` instead.
   335  * The Policy resource was promoted to `v1`. If you used the `alpha1` version, the policies are needed to be recreated with the `v1` version. Before upgrading the Ingress Controller, run the following command to remove the `alpha1` policies CRD (that will also remove all existing `alpha1` policies):
   336      ```
   337       kubectl delete crd policies.k8s.nginx.org
   338      ```
   339    As part of the upgrade, make sure to create the `v1` policies CRD. See the corresponding instructions for the [manifests](https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-manifests/#create-custom-resources) and [Helm](https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-helm/#upgrading-the-crds) installations.
   340  
   341    Also note that all policies except for `accessControl` are still in preview. To enable them, run the Ingress Controller with `- -enable-preview-policies` command-line argument (`controller.enablePreviewPolicies` Helm parameter).
   342  * It is necessary to update secret resources. See the section UPDATING SECRETS below.
   343  
   344  UPDATING SECRETS:
   345  
   346  In [1225](https://github.com/nginxinc/kubernetes-ingress/pull/1225), as part of improving how the Ingress Controller handles secret resources, we added a requirement for secrets to be of one of the following types:
   347  - `kubernetes.io/tls` for TLS secrets.
   348  - `nginx.org/jwk` for JWK secrets.
   349  - `nginx.org/ca` for CA secrets.
   350  
   351  The Ingress Controller now ignores secrets that are not of a supported type. As a consequence, special upgrade steps are required.
   352  
   353  Before upgrading, ensure that the secrets referenced in Ingress, VirtualServer or Policies resources are of a supported type, which is configured via the `type` field. Because that field is immutable, it is necessary to either:
   354  * Recreate the secrets. Note that in this case, the client traffic for the affected resources will be rejected for the period during which a secret doesn't exist in the cluster.
   355  * Create copies of the secrets and update the affected resources to reference the copies. The copies need to be of a supported type. In contrast with the previous options, this will not make NGINX reject the client traffic.
   356  
   357  It is also necessary to update the default server secret and the wildcard secret (if it was configured) in case their type is not `kubernetes.io/tls`. The steps depend on how you installed the Ingress Controller: via manifests or Helm. Performing the steps will not lead to a disruption of the client traffic, as the Ingress Controller retains the default and wildcard secrets if they are removed.
   358  
   359  For *manifests installation*:
   360  1. Recreate the default server secret and the wildcard secret with the type `kubernetes.io/tls`.
   361  1. Upgrade the Ingress Controller.
   362  
   363  For *Helm installation*, there two cases:
   364  1. If Helm created the secrets (you configured `controller.defaultTLS.cert` and `controller.defaultTLS.key` for the default secret and `controller.wildcardTLS.cert` and `controller.wildcardTLS.key` for the wildcard secret), then no special upgrade steps are required: during the upgrade, the Helm will remove the existing default and wildcard secrets and create new ones with different names with the type `kubernetes.io/tls`.
   365  1.  If you created the secrets separately from Helm (you configured `controller.defaultTLS.secret` for the default secret and `controller.wildcardTLS.secret` for the wildcard secret):
   366      1. Recreate the secrets with the type `kubernetes.io/tls`.
   367      1. Upgrade to the new Helm release.
   368  
   369  NOTES:
   370  * Helm 2 clients are no longer supported due to reaching End of Life: https://helm.sh/blog/helm-2-becomes-unsupported/
   371  
   372  ## NGINX Ingress Controller 1.9.1
   373  
   374  23 November 2020
   375  
   376  CHANGES:
   377  * Fix deployment of ingressclass resource via helm on some versions of Kubernetes.
   378  * Update the base ubi images to 8.3.
   379  * Renew CA cert for egress-mtls example.
   380  * Add imagePullSecretName support to helm chart.
   381  
   382  HELM CHART:
   383  * The version of the Helm chart is now 0.7.1.
   384  
   385  UPGRADE:
   386  * For NGINX, use the 1.9.1 image from our DockerHub: `nginx/nginx-ingress:1.9.1`, `nginx/nginx-ingress:1.9.1-alpine` or `nginx/nginx-ingress:1.9.1-ubi`
   387  * For NGINX Plus, please build your own image using the 1.9.1 source code.
   388  * For Helm, use version 0.7.1 of the chart.
   389  
   390  ## NGINX Ingress Controller 1.9.0
   391  
   392  20 October 2020
   393  
   394  OVERVIEW:
   395  
   396  Release 1.9.0 includes:
   397  * Support for new Prometheus metrics and enhancements of the existing ones, including configuration reload reason, NGINX worker processes count, upstream latency, and more.
   398  * Support for rate limiting, JWT authentication, ingress(client) and egress(upstream) mutual TLS via the Policy resource.
   399  * Support for the latest Ingress resource features and the IngressClass resource.
   400  * Support for NGINX Service Mesh.
   401  
   402  You will find the complete changelog for release 1.9.0, including bug fixes, improvements, and changes below.
   403  
   404  FEATURES FOR POLICY RESOURCE:
   405  * [1180](https://github.com/nginxinc/kubernetes-ingress/pull/1180) Add support for EgressMTLS.
   406  * [1166](https://github.com/nginxinc/kubernetes-ingress/pull/1166) Add IngressMTLS policy support.
   407  * [1154](https://github.com/nginxinc/kubernetes-ingress/pull/1154) Add JWT policy support.
   408  * [1120](https://github.com/nginxinc/kubernetes-ingress/pull/1120) Add RateLimit policy support.
   409  * [1058](https://github.com/nginxinc/kubernetes-ingress/pull/1058) Support policies in VS routes and VSR subroutes.
   410  
   411  FEATURES FOR NGINX APP PROTECT:
   412  * [1147](https://github.com/nginxinc/kubernetes-ingress/pull/1147) Add option to specify other log destinations in AppProtect.
   413  * [1131](https://github.com/nginxinc/kubernetes-ingress/pull/1131) Update packages and CRDs to AppProtect 2.0. This update includes features such as: [JSON Schema Validation](https://docs.nginx.com/nginx-app-protect/configuration#applying-a-json-schema), [User-Defined URLs](https://docs.nginx.com/nginx-app-protect/configuration/#user-defined-urls) and [User-Defined Parameters](https://docs.nginx.com/nginx-app-protect/configuration/#user-defined-parameters). See the [release notes](https://docs.nginx.com/nginx-app-protect/releases/#release-2-0) for a complete feature list.
   414  * [1100](https://github.com/nginxinc/kubernetes-ingress/pull/1100) Add external references to AppProtect.
   415  * [1085](https://github.com/nginxinc/kubernetes-ingress/pull/1085) Add installation of threat campaigns package.
   416  
   417  FEATURES:
   418  * [1133](https://github.com/nginxinc/kubernetes-ingress/pull/1133) Add support for IngressClass resources.
   419  * [1130](https://github.com/nginxinc/kubernetes-ingress/pull/1130) Add prometheus latency collector.
   420  * [1076](https://github.com/nginxinc/kubernetes-ingress/pull/1076) Add prometheus worker process metrics.
   421  * [1075](https://github.com/nginxinc/kubernetes-ingress/pull/1075) Add support for NGINX Service Mesh internal routes.
   422  
   423  IMPROVEMENTS:
   424  * [1178](https://github.com/nginxinc/kubernetes-ingress/pull/1178) Resolve host collisions in VirtualServer and Ingresses.
   425  * [1158](https://github.com/nginxinc/kubernetes-ingress/pull/1158) Support variables in action proxy headers.
   426  * [1137](https://github.com/nginxinc/kubernetes-ingress/pull/1137) Add pod_owner label to metrics when -spire-agent-address is set.
   427  * [1107](https://github.com/nginxinc/kubernetes-ingress/pull/1107) Extend Upstream Servers with pod_name label.
   428  * [1099](https://github.com/nginxinc/kubernetes-ingress/pull/1099) Add reason label to total_reload metrics.
   429  * [1088](https://github.com/nginxinc/kubernetes-ingress/pull/1088) Extend Upstream Servers and Server Zones metrics, thanks to [Raúl](https://github.com/Rulox).
   430  * [1080](https://github.com/nginxinc/kubernetes-ingress/pull/1080) Support pathType field in the Ingress resource.
   431  * [1078](https://github.com/nginxinc/kubernetes-ingress/pull/1078) Remove trailing blank lines in vs/vsr snippets.
   432  * Documentation improvements: [1083](https://github.com/nginxinc/kubernetes-ingress/pull/1083), [1092](https://github.com/nginxinc/kubernetes-ingress/pull/1092), [1089](https://github.com/nginxinc/kubernetes-ingress/pull/1089), [1174](https://github.com/nginxinc/kubernetes-ingress/pull/1174), [1175](https://github.com/nginxinc/kubernetes-ingress/pull/1175), [1171](https://github.com/nginxinc/kubernetes-ingress/pull/1171).
   433  
   434  BUGFIXES:
   435  * [1179](https://github.com/nginxinc/kubernetes-ingress/pull/1179) Fix TransportServers in debian AppProtect image.
   436  * [1129](https://github.com/nginxinc/kubernetes-ingress/pull/1129) Support real-ip in default server.
   437  * [1110](https://github.com/nginxinc/kubernetes-ingress/pull/1110) Add missing threat campaigns key to AppProtect CRD.
   438  
   439  HELM CHART:
   440  * The version of the helm chart is now 0.7.0
   441  * [1105](https://github.com/nginxinc/kubernetes-ingress/pull/1105) Fix GlobalConfiguration support in helm chart.
   442  * Add new parameters to the Chart: `controller.setAsDefaultIngress`, `controller.enableLatencyMetrics`. Added in [1133](https://github.com/nginxinc/kubernetes-ingress/pull/1133) and [1148](https://github.com/nginxinc/kubernetes-ingress/pull/1148).
   443  
   444  CHANGES:
   445  * [1182](https://github.com/nginxinc/kubernetes-ingress/pull/1182) Update NGINX version to 1.19.3.
   446  
   447  UPGRADE:
   448  * For NGINX, use the 1.9.0 image from our DockerHub: `nginx/nginx-ingress:1.9.0`, `nginx/nginx-ingress:1.9.0-alpine` or `nginx-ingress:1.9.0-ubi`
   449  * For NGINX Plus, please build your own image using the 1.9.0 source code.
   450  * For Helm, use version 0.7.0 of the chart.
   451  
   452  For Kubernetes >= 1.18, when upgrading using the [manifests](https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-manifests/), make sure to update the [ClusterRole](https://github.com/nginxinc/kubernetes-ingress/blob/v1.9.0/deployments/rbac/rbac.yaml) and create the [IngressClass resource](https://github.com/nginxinc/kubernetes-ingress/blob/v1.9.0/deployments/common/ingress-class.yaml), which is required for Kubernetes >= 1.18. Otherwise, the Ingress Controller will fail to start. If you run multiple NGINX Ingress Controllers in the cluster, each Ingress Controller must have its own IngressClass resource. As the `-use-ingress-class-only` argument is now ignored (see NOTES), make sure your Ingress resources have the `ingressClassName` field or the `kubernetes.io/ingress.class` annotation set to the name of the IngressClass resource. Otherwise, the Ingress Controller will ignore them.
   453  
   454  HELM UPGRADE:
   455  * If you're using custom resources like VirtualServer and TransportServer (`controller.enableCustomResources` is set to `true`), after you run the `helm upgrade` command, the CRDs will not be upgraded. After running the `helm upgrade` command, run `kubectl apply -f deployments/helm-chart/crds` to upgrade the CRDs.
   456  * For Kubernetes >= 1.18, a dedicated IngressClass resource, which is configured by `controller.ingressClass`, is required per helm release. Ensure `controller.ingressClass` is not set to the name of the IngressClass of other releases or Ingress Controllers. As the `controller.useIngressClassOnly` parameter is now ignored (see NOTES), make sure your Ingress resources have the `ingressClassName` field or the `kubernetes.io/ingress.class` annotation set to the value of `controller.ingressClass`. Otherwise, the Ingress Controller will ignore them.
   457  
   458  NOTES:
   459  * When using Kubernetes >= 1.18, the `-use-ingress-class-only` command-line argument is now ignored, and the Ingress Controller will only process resources that belong to its class. See [IngressClass doc](https://docs.nginx.com/nginx-ingress-controller/installation/running-multiple-ingress-controllers/#ingress-class) for more details.
   460  * For Kubernetes >= 1.18, a dedicated IngressClass resource, which is configured by `controller.ingressClass`, is required per helm release. When upgrading or installing releases, ensure `controller.ingressClass` is not set to the name of the IngressClass of other releases or Ingress Controllers.
   461  
   462  ## NGINX Ingress Controller 1.8.1
   463  
   464  14 August 2020
   465  
   466  CHANGES:
   467  * Update NGINX version to 1.19.2.
   468  
   469  HELM CHART:
   470  * The version of the Helm chart is now 0.6.1.
   471  
   472  UPGRADE:
   473  * For NGINX, use the 1.8.1 image from our DockerHub: `nginx/nginx-ingress:1.8.1`, `nginx/nginx-ingress:1.8.1-alpine` or `nginx/nginx-ingress:1.8.1-ubi`
   474  * For NGINX Plus, please build your own image using the 1.8.1 source code.
   475  * For Helm, use version 0.6.1 of the chart.
   476  
   477  
   478  ## NGINX Ingress Controller 1.8.0
   479  
   480  ### 1.8.0
   481  
   482  22 July 2020
   483  
   484  OVERVIEW:
   485  
   486  Release 1.8.0 includes:
   487  * Support for NGINX App Protect Web Application Firewall.
   488  * Support for configuration snippets and custom template for VirtualServer and VirtualServerRoute resources.
   489  * Support for request/response header manipulation and request URI rewriting for VirtualServer/VirtualServerRoute.
   490  * Introducing a new configuration resource - Policy - with the first policy for IP-based access control.
   491  
   492  You will find the complete changelog for release 1.8.0, including bug fixes, improvements, and changes below.
   493  
   494  FEATURES FOR VIRTUALSERVER AND VIRTUALSERVERROUTE RESOURCES:
   495  * [1036](https://github.com/nginxinc/kubernetes-ingress/pull/1036): Add VirtualServer custom template support.
   496  * [1028](https://github.com/nginxinc/kubernetes-ingress/pull/1028): Add access control policy.
   497  * [1019](https://github.com/nginxinc/kubernetes-ingress/pull/1019): Add VirtualServer/VirtualServerRoute snippets support.
   498  * [1006](https://github.com/nginxinc/kubernetes-ingress/pull/1006): Add request/response modifiers to VS and VSR.
   499  * [994](https://github.com/nginxinc/kubernetes-ingress/pull/994): Support Class Field in VS/VSR.
   500  * [973](https://github.com/nginxinc/kubernetes-ingress/pull/973): Add status to VirtualServer and VirtualServerRoute.
   501  
   502  FEATURES:
   503  * [1035](https://github.com/nginxinc/kubernetes-ingress/pull/1035): Support for App Protect module.
   504  * [1029](https://github.com/nginxinc/kubernetes-ingress/pull/1029): Add readiness endpoint.
   505  
   506  IMPROVEMENTS:
   507  * [995](https://github.com/nginxinc/kubernetes-ingress/pull/995): Emit event for orphaned VirtualServerRoutes.
   508  * Documentation improvements: [946](https://github.com/nginxinc/kubernetes-ingress/pull/946) thanks to [谭九鼎](https://github.com/imba-tjd), [948](https://github.com/nginxinc/kubernetes-ingress/pull/948), [972](https://github.com/nginxinc/kubernetes-ingress/pull/972), [965](https://github.com/nginxinc/kubernetes-ingress/pull/965).
   509  
   510  BUGFIXES:
   511  * [1030](https://github.com/nginxinc/kubernetes-ingress/pull/1030): Fix port range validation in cli arguments.
   512  * [953](https://github.com/nginxinc/kubernetes-ingress/pull/953): Fix error logging of master/minion ingresses.
   513  
   514  HELM CHART:
   515  * The version of the helm chart is now 0.6.0.
   516  * Add new parameters to the Chart: `controller.appprotect.enable`, `controller.globalConfiguration.create`, `controller.globalConfiguration.spec`, `controller.readyStatus.enable`, `controller.readyStatus.port`, `controller.config.annotations`, `controller.reportIngressStatus.annotations`. Added in  [1035](https://github.com/nginxinc/kubernetes-ingress/pull/1035), [1034](https://github.com/nginxinc/kubernetes-ingress/pull/1034), [1029](https://github.com/nginxinc/kubernetes-ingress/pull/1029), [1003](https://github.com/nginxinc/kubernetes-ingress/pull/1003) thanks to [RubyLangdon](https://github.com/RubyLangdon).
   517  * [1047](https://github.com/nginxinc/kubernetes-ingress/pull/1047) and [1009](https://github.com/nginxinc/kubernetes-ingress/pull/1009): Change how Helm manages the custom resource defintions (CRDs) to support installing multiple Ingress Controller releases. **Note**: If you're using the custom resources (`controller.enableCustomResources` is set to `true`), this is a breaking change. See the HELM UPGRADE section below for the upgrade instructions.
   518  
   519  CHANGES:
   520  * Update NGINX version to 1.19.1.
   521  * Update NGINX Plus to R22.
   522  * [1029](https://github.com/nginxinc/kubernetes-ingress/pull/1029): Add readiness endpoint. The Ingress Controller now exposes a readiness endpoint on port `8081` and the path `/nginx-ready`. The endpoint returns a `200` response after the Ingress Controller finishes the initial configuration of NGINX at the start. The pod template was updated to use that endpoint in a readiness probe.
   523  * [980](https://github.com/nginxinc/kubernetes-ingress/pull/980): Enable leader election by default.
   524  
   525  UPGRADE:
   526  * For NGINX, use the 1.8.0 image from our DockerHub: `nginx/nginx-ingress:1.8.0`, `nginx/nginx-ingress:1.8.0-alpine` or `nginx-ingress:1.8.0-ubi`
   527  * For NGINX Plus, please build your own image using the 1.8.0 source code.
   528  * For Helm, use version 0.6.0 of the chart.
   529  
   530  HELM UPGRADE:
   531  
   532  If you're using custom resources like VirtualServer and TransportServer (`controller.enableCustomResources` is set to `true`), after you run the `helm upgrade` command, the CRDs and the corresponding custom resources will be removed from the cluster. Before upgrading, make sure to back up the custom resources. After running the `helm upgrade` command, run `kubectl apply -f deployments/helm-chart/crds` to re-install the CRDs and then restore the custom resources.
   533  
   534  NOTES:
   535  * As part of installing a release, Helm will install the CRDs unless that step is disabled (see the [corresponding doc](https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-helm/)). The installed CRDs include the CRDs for all Ingress Controller features, including the ones disabled by default (like App Protect with `aplogconfs.appprotect.f5.com` and `appolicies.appprotect.f5.com` CRDs).
   536  
   537  ## NGINX Ingress Controller 1.7.2
   538  
   539  23 June 2020
   540  
   541  CHANGES:
   542  * Update NGINX Plus version to R22.
   543  
   544  HELM CHART:
   545  * The version of the Helm chart is now 0.5.2.
   546  
   547  UPGRADE:
   548  * For NGINX, use the 1.7.2 image from our DockerHub: `nginx/nginx-ingress:1.7.2`, `nginx/nginx-ingress:1.7.2-alpine` or `nginx/nginx-ingress:1.7.2-ubi`
   549  * For NGINX Plus, please build your own image using the 1.7.2 source code.
   550  * For Helm, use version 0.5.2 of the chart.
   551  
   552  ## NGINX Ingress Controller 1.7.1
   553  
   554  4 June 2020
   555  
   556  CHANGES:
   557  * Update NGINX version to 1.19.0.
   558  
   559  HELM CHART:
   560  * The version of the Helm chart is now 0.5.1.
   561  
   562  UPGRADE:
   563  * For NGINX, use the 1.7.1 image from our DockerHub: `nginx/nginx-ingress:1.7.1`, `nginx/nginx-ingress:1.7.1-alpine` or `nginx/nginx-ingress:1.7.1-ubi`
   564  * For NGINX Plus, please build your own image using the 1.7.1 source code.
   565  * For Helm, use version 0.5.1 of the chart.
   566  
   567  ## NGINX Ingress Controller 1.7.0
   568  
   569  30 April 2020
   570  
   571  OVERVIEW:
   572  
   573  Release 1.7.0 includes:
   574  * Support for TCP, UDP, and TLS Passthrough load balancing with the new configuration resources: TransportServer and GlobalConfiguration. The resources allow users to deliver complex, non-HTTP-based applications from Kubernetes using the NGINX Ingress Controller.
   575  * Support for error pages in VirtualServer and VirtualServerRoute resources. A user can now specify custom error responses for errors returned by backend applications or generated by NGINX, such as a 502 response.
   576  * Improved validation of VirtualServer and VirtualServerRoute resources. kubectl and the Kubernetes API server can now detect violations of the structure of VirtualServer/VirtualServerRoute resources and return an error.
   577  * Support for an operator which manages the lifecycle of the Ingress Controller on Kubernetes or OpenShift. See the [NGINX Ingress Operator GitHub repo](https://github.com/nginxinc/nginx-ingress-operator).
   578  
   579  See the [1.7.0 release announcement blog post](https://www.nginx.com/blog/announcing-nginx-ingress-controller-for-kubernetes-release-1-7-0/), which includes an overview of each feature.
   580  
   581  You will find the complete changelog for release 1.7.0, including bug fixes, improvements, and changes below.
   582  
   583  FEATURES FOR VIRTUALSERVER AND VIRTUALSERVERROUTE RESOURCES:
   584  * [868](https://github.com/nginxinc/kubernetes-ingress/pull/868): Add OpenAPI CRD schema validation.
   585  * [847](https://github.com/nginxinc/kubernetes-ingress/pull/847): Add support for error pages for VS/VSR.
   586  
   587  FEATURES:
   588  * [902](https://github.com/nginxinc/kubernetes-ingress/pull/902): Add TransportServer and GlobalConfiguration Resources.
   589  * [894](https://github.com/nginxinc/kubernetes-ingress/pull/894): Add Dockerfile for NGINX Open Source for Openshift.
   590  * [857](https://github.com/nginxinc/kubernetes-ingress/pull/857): Add Openshift Dockerfile for NGINX Plus.
   591  * [852](https://github.com/nginxinc/kubernetes-ingress/pull/852): Add default-server-access-log-off to configmap.
   592  * [845](https://github.com/nginxinc/kubernetes-ingress/pull/845): Add log-format-escaping and stream-log-format-escaping configmap keys. Thanks to [Alexey Maslov](https://github.com/alxmsl).
   593  * [827](https://github.com/nginxinc/kubernetes-ingress/pull/827): Add ingress class label to all Prometheus metrics.
   594  
   595  
   596  IMPROVEMENTS:
   597  * [850](https://github.com/nginxinc/kubernetes-ingress/pull/850): Extend redirect URI validation with protocol check in VS/VSR.
   598  * [832](https://github.com/nginxinc/kubernetes-ingress/pull/832): Update the examples to run the `nginxdemos/nginx-hello:plain-text` image, that doesn't require root user.
   599  * [825](https://github.com/nginxinc/kubernetes-ingress/pull/825): Add multi-stage docker builds.
   600  
   601  BUGFIXES:
   602  * [828](https://github.com/nginxinc/kubernetes-ingress/pull/828): Fix error messages for actions of the type return.
   603  
   604  HELM CHART:
   605  * The version of the helm chart is now 0.5.0.
   606  * Add new parameters to the Chart: `controller.enableTLSPassthrough`, `controller.volumes`, `controller.volumeMounts`, `controller.priorityClassName`. Added in [921](https://github.com/nginxinc/kubernetes-ingress/pull/921), [878](https://github.com/nginxinc/kubernetes-ingress/pull/878), [807](https://github.com/nginxinc/kubernetes-ingress/pull/807) thanks to [Greg Snow](https://github.com/gsnegovskiy).
   607  
   608  CHANGES:
   609  * Update NGINX version to 1.17.10.
   610  * Update NGINX Plus to R21.
   611  * [854](https://github.com/nginxinc/kubernetes-ingress/pull/854): Update the Debian base images for NGINX Plus to `debian:buster-slim`.
   612  * [852](https://github.com/nginxinc/kubernetes-ingress/pull/852): Add default-server-access-log-off to configmap. The access logs for the default server are now enabled by default.
   613  * [847](https://github.com/nginxinc/kubernetes-ingress/pull/847): Add support for error pages for VS/VSR. The PR affects how the Ingress Controller generates configuration for VirtualServer and VirtualServerRoutes. See [this comment](https://github.com/nginxinc/kubernetes-ingress/pull/847) for more details.
   614  * [827](https://github.com/nginxinc/kubernetes-ingress/pull/827): Add ingress class label to all Prometheus metrics. Every Prometheus metric exposed by the Ingress Controller now includes the label `class` with the value of the Ingress Controller class (by default `nginx`),
   615  * [825](https://github.com/nginxinc/kubernetes-ingress/pull/825): Add multi-stage docker builds. When building the Ingress Controller image in Docker, we now use a multi-stage docker build.
   616  
   617  UPGRADE:
   618  * For NGINX, use the 1.7.0 image from our DockerHub: `nginx/nginx-ingress:1.7.0`, `nginx/nginx-ingress:1.7.0-alpine` or `nginx-ingress:1.7.0-ubi`
   619  * For NGINX Plus, please build your own image using the 1.7.0 source code.
   620  * For Helm, use version 0.5.0 of the chart.
   621  
   622  When upgrading using the [manifests](/nginx-ingress-controller/installation/installation-with-manifests/), make sure to deploy the new TransportServer CRD (`common/ts-definition.yaml`), as it is required by the Ingress Controller. Otherwise, you will get error messages in the Ingress Controller logs.
   623  
   624  ## NGINX Ingress Controller 1.6.3
   625  
   626  6 March 2020
   627  
   628  CHANGES:
   629  * Update NGINX version to 1.17.9.
   630  
   631  HELM CHART:
   632  * The version of the Helm chart is now 0.4.3.
   633  
   634  UPGRADE:
   635  * For NGINX, use the 1.6.3 image from our DockerHub: `nginx/nginx-ingress:1.6.3` or `nginx/nginx-ingress:1.6.3-alpine`
   636  * For NGINX Plus, please build your own image using the 1.6.3 source code.
   637  * For Helm, use version 0.4.3 of the chart.
   638  
   639  ## NGINX Ingress Controller 1.6.2
   640  
   641  6 February 2020
   642  
   643  CHANGES:
   644  * Update NGINX version to 1.17.8.
   645  
   646  HELM CHART:
   647  * The version of the Helm chart is now 0.4.2.
   648  
   649  UPGRADE:
   650  * For NGINX, use the 1.6.2 image from our DockerHub: `nginx/nginx-ingress:1.6.2` or `nginx/nginx-ingress:1.6.2-alpine`
   651  * For NGINX Plus, please build your own image using the 1.6.2 source code.
   652  * For Helm, use version 0.4.2 of the chart.
   653  
   654  ## NGINX Ingress Controller 1.6.1
   655  
   656  14 January 2020
   657  
   658  CHANGES:
   659  * Update NGINX version to 1.17.7.
   660  
   661  HELM CHART:
   662  * The version of the Helm chart is now 0.4.1.
   663  
   664  UPGRADE:
   665  * For NGINX, use the 1.6.1 image from our DockerHub: `nginx/nginx-ingress:1.6.1` or `nginx/nginx-ingress:1.6.1-alpine`
   666  * For NGINX Plus, please build your own image using the 1.6.1 source code.
   667  * For Helm, use version 0.4.1 of the chart.
   668  
   669  ## NGINX Ingress Controller 1.6.0
   670  
   671  19 December 2019
   672  
   673  OVERVIEW:
   674  
   675  Release 1.6.0 includes:
   676  * Improvements to VirtualServer and VirtualServerRoute resources, adding support for richer load balancing behavior, more sophisticated request routing, redirects, direct responses, and blue-green and circuit breaker patterns. The VirtualServer and VirtualServerRoute resources are enabled by default and are ready for production use.
   677  * Support for OpenTracing, helping you to monitor and debug complex transactions.
   678  * An improved security posture, with support to run the Ingress Controller as a non-root user.
   679  
   680  The release announcement blog post includes the overview for each feature. See https://www.nginx.com/blog/announcing-nginx-ingress-controller-for-kubernetes-release-1-6-0/
   681  
   682  You will find the complete changelog for release 1.6.0, including bug fixes, improvements, and changes below.
   683  
   684  FEATURES FOR VIRTUALSERVER AND VIRTUALSERVERROUTE RESOURCES:
   685  * [780](https://github.com/nginxinc/kubernetes-ingress/pull/780): Add support for canned responses to VS/VSR.
   686  * [778](https://github.com/nginxinc/kubernetes-ingress/pull/778): Add redirect support in VS/VSR.
   687  * [766](https://github.com/nginxinc/kubernetes-ingress/pull/766): Add exact matches and regex support to location paths in VS/VSR.
   688  * [748](https://github.com/nginxinc/kubernetes-ingress/pull/748): Add TLS redirect support in Virtualserver.
   689  * [745](https://github.com/nginxinc/kubernetes-ingress/pull/745): Improve routing rules in VS/VSR
   690  * [728](https://github.com/nginxinc/kubernetes-ingress/pull/728): Add session persistence in VS/VSR.
   691  * [724](https://github.com/nginxinc/kubernetes-ingress/pull/724): Add VS/VSR Prometheus metrics.
   692  * [712](https://github.com/nginxinc/kubernetes-ingress/pull/712): Add service subselector support in vs/vsr.
   693  * [707](https://github.com/nginxinc/kubernetes-ingress/pull/707): Emit warning events in VS/VSR.
   694  * [701](https://github.com/nginxinc/kubernetes-ingress/pull/701): Add support queue in upstreams for plus in VS/VSR.
   695  * [693](https://github.com/nginxinc/kubernetes-ingress/pull/693): Add ServerStatusZones support in vs/vsr.
   696  * [670](https://github.com/nginxinc/kubernetes-ingress/pull/670): Add buffering support for vs/vsr.
   697  * [660](https://github.com/nginxinc/kubernetes-ingress/pull/660): Add ClientBodyMaxSize support in vs/vsr.
   698  * [659](https://github.com/nginxinc/kubernetes-ingress/pull/659): Support configuring upstream zone sizes in VS/VSR.
   699  * [655](https://github.com/nginxinc/kubernetes-ingress/pull/655): Add slow-start support in vs/vsr.
   700  * [653](https://github.com/nginxinc/kubernetes-ingress/pull/653): Add websockets support for vs/vsr upstreams.
   701  * [641](https://github.com/nginxinc/kubernetes-ingress/pull/641): Add support for ExternalName Services for vs/vsr.
   702  * [635](https://github.com/nginxinc/kubernetes-ingress/pull/635): Add HealthChecks support for vs/vsr.
   703  * [634](https://github.com/nginxinc/kubernetes-ingress/pull/634): Add Active Connections support to vs/vsr.
   704  * [628](https://github.com/nginxinc/kubernetes-ingress/pull/628): Add retries support for vs/vsr.
   705  * [621](https://github.com/nginxinc/kubernetes-ingress/pull/621): Add TLS support for vs/vsr upstreams.
   706  * [617](https://github.com/nginxinc/kubernetes-ingress/pull/617): Add keepalive support to vs/vsr.
   707  * [612](https://github.com/nginxinc/kubernetes-ingress/pull/612): Add timeouts support to vs/vsr.
   708  * [607](https://github.com/nginxinc/kubernetes-ingress/pull/607): Add fail-timeout and max-fails support to vs/vsr.
   709  * [596](https://github.com/nginxinc/kubernetes-ingress/pull/596): Add lb-method support in vs and vsr.
   710  
   711  FEATURES:
   712  * [750](https://github.com/nginxinc/kubernetes-ingress/pull/750): Add support for health status uri customisation.
   713  * [691](https://github.com/nginxinc/kubernetes-ingress/pull/691): Helper Functions for custom annotations.
   714  * [631](https://github.com/nginxinc/kubernetes-ingress/pull/631): Add max_conns support for NGINX plus.
   715  * [629](https://github.com/nginxinc/kubernetes-ingress/pull/629): Added upstream zone directive annotation. Thanks to [Victor Regalado](https://github.com/vrrs).
   716  * [616](https://github.com/nginxinc/kubernetes-ingress/pull/616): Add proxy-send-timeout to configmap key and annotation.
   717  * [615](https://github.com/nginxinc/kubernetes-ingress/pull/615): Add support for Opentracing.
   718  * [614](https://github.com/nginxinc/kubernetes-ingress/pull/614): Add max-conns annotation. Thanks to [Victor Regalado](https://github.com/vrrs).
   719  
   720  
   721  IMPROVEMENTS:
   722  * [678](https://github.com/nginxinc/kubernetes-ingress/pull/678): Increase defaults for server-names-hash-max-size and servers-names-hash-bucket-size ConfigMap keys.
   723  * [694](https://github.com/nginxinc/kubernetes-ingress/pull/694): Reject VS/VSR resources with enabled plus features for OSS.
   724  * Documentation improvements: [713](https://github.com/nginxinc/kubernetes-ingress/pull/713) thanks to [Matthew Wahner](https://github.com/mattwahner).
   725  
   726  BUGFIXES:
   727  * [788](https://github.com/nginxinc/kubernetes-ingress/pull/788): Fix VSR updates when namespace is set implicitly.
   728  * [736](https://github.com/nginxinc/kubernetes-ingress/pull/736): Init Ingress labeled metrics on start.
   729  * [686](https://github.com/nginxinc/kubernetes-ingress/pull/686): Check if config map created for leader-election.
   730  * [664](https://github.com/nginxinc/kubernetes-ingress/pull/664): Fix reporting events for Ingress minions.
   731  * [632](https://github.com/nginxinc/kubernetes-ingress/pull/632): Fix hsts support when not using SSL. Thanks to [Martín Fernández](https://github.com/bilby91).
   732  
   733  HELM CHART:
   734  * The version of the helm chart is now 0.4.0.
   735  * Add new parameters to the Chart: `controller.healthCheckURI`, `controller.resources`, `controller.logLevel`, `controller.customPorts`, `controller.service.customPorts`. Added in [750](https://github.com/nginxinc/kubernetes-ingress/pull/750), [636](https://github.com/nginxinc/kubernetes-ingress/pull/636) thanks to [Guilherme Oki](https://github.com/guilhermeoki), [600](https://github.com/nginxinc/kubernetes-ingress/pull/600), [581](https://github.com/nginxinc/kubernetes-ingress/pull/581) thanks to [Alex Meijer](https://github.com/ameijer-corsha).
   736  * [722](https://github.com/nginxinc/kubernetes-ingress/pull/722): Fix trailing leader election cm when using helm. This change might lead to a failed upgrade. See the helm upgrade instruction below.
   737  * [573](https://github.com/nginxinc/kubernetes-ingress/pull/573): Use Controller name value for app selectors.
   738  
   739  CHANGES:
   740  * Update NGINX versions to 1.17.6.
   741  * Update NGINX Plus version to R20.
   742  * [799](https://github.com/nginxinc/kubernetes-ingress/pull/779): Enable CRDs by default. VirtualServer and VirtualServerRoute resources are now enabled by default.
   743  * [772](https://github.com/nginxinc/kubernetes-ingress/pull/772): Update VS/VSR version from v1alpha1 to v1. Make sure to update the `apiVersion` of your VirtualServer and VirtualServerRoute resources.
   744  * [748](https://github.com/nginxinc/kubernetes-ingress/pull/748): Add TLS redirect support in VirtualServer. The `redirect-to-https` and `ssl-redirect` ConfigMap keys no longer have any effect on generated configs for VirtualServer resources.
   745  * [745](https://github.com/nginxinc/kubernetes-ingress/pull/745): Improve routing rules. Update the spec of VirtualServer and VirtualServerRoute accordingly. See YAML examples of the changes [here](https://github.com/nginxinc/kubernetes-ingress/pull/745).
   746  * [710](https://github.com/nginxinc/kubernetes-ingress/pull/710): Run IC as non-root. Make sure to use the updated manifests to install/upgrade the Ingress Controller.
   747  * [603](https://github.com/nginxinc/kubernetes-ingress/pull/603): Update apiVersion in Deployments and DaemonSets to apps/v1.
   748  
   749  UPGRADE:
   750  * For NGINX, use the 1.6.0 image from our DockerHub: `nginx/nginx-ingress:1.6.0` or `nginx/nginx-ingress:1.6.0-alpine`
   751  * For NGINX Plus, please build your own image using the 1.6.0 source code.
   752  * For Helm, use version 0.4.0 of the chart.
   753  
   754  HELM UPGRADE:
   755  
   756  If leader election (the `controller.reportIngressStatus.enableLeaderElection` parameter) is enabled, when upgrading to the new version of the Helm chart:
   757  1. Make sure to specify a new ConfigMap lock name (`controller.reportIngressStatus.leaderElectionLockName`) different from the one that was created by the current version. To find out the current name, check ConfigMap resources in the namespace where the Ingress Controller is running.
   758  1. After the upgrade, delete the old ConfigMap.
   759  
   760  Otherwise, the helm upgrade will not succeed.
   761  
   762  ## Previous Releases
   763  
   764  To see the previous releases, see the [Releases page](https://github.com/nginxinc/kubernetes-ingress/releases) on the Ingress Controller GitHub repo.