Ingress-Nginx controller for Kubernetes came with its new release almost a month earlier. I know we are pretty late in documenting this but trust me, this update is pretty big. And in this article, we will see all of the new features and essential bug fixes and enhancements that landed along with version 1.0.0. Also, please note that this is a breaking change!
Without further a due, let’s start!
What is Ingress-Nginx?
With the release of version 1.0.0, we can see the addition of the appProtocol field to all ServicePorts. Again, we can see the introduction of the
controller.watchIngressWithoutClass config option. Also, there is the addition of configuration to disable the external name service feature. Furthermore, we can see the addition of the file containing the stable release. For ingress/tcp, version 1.0.0 adds an error whenever there is a failure of logging in.
Ingress-Nginx controller got a lot of enhancements with the new release. We can see the introduction of End-to-end tests for canary affinity, which will be helpful. The devs have added doc for clarifying default-backend behaviour and docs for migration to apiVersion
networking.k8s.io/v1. Again, we can see the update of ingress to go 1.17. Again, we can see the improvement of
RELEASE.md. The new release makes HPA behaviour configurable. The new update also brings the release of a new helm chart with certgen fixed. Version 1.0.0 also brings the downgrade of Lua modules for s390x.
With version 1.0.0, the Ingress-Nginx controller gets a lower webhook timeout for the digital ocean. Especially for the controller, we can see the ignoring of non-service backends. The update will also help in the handling of named (non-numeric) ports correctly. It also showed the updated v1beta1 to v1 as its deprecated. The new update helps in speeding up the admission hook by eliminating deep copies of Ingresses in CheckIngress. It will also retry to download maxmind DB if it fails. The latest release will help in discovering mounted geoip db files. In the case of the chart, we can see the usage of Helm builtin capabilities check.
The new update brings the usage of ENV expansion for the namespace in args. It will also help in rewriting of clean-nginx-conf.sh in Go to speed up admission webhook. Also, version 1.0.0 removes mercurial from the build. It will also use Listen to ensure the port is free from now on. The new version also updates the proper default value for
HTTP2MaxConcurrentStreams in Docs. Finally, we can also see the dropping of support for Ingress Object v1beta1.
Version 1.0.0 gets a lot of bug fixes for a smooth user experience. Firstly, we can see the fixing of ingress-nginx panic when the certificate format is wrong. Again, we can see the fixing of default backend annotation and tests. Also, the devs have fixed the IngressClass logic for newer releases. The new version now will allow altering of scope/tcp/udp configmap namespace. Fixing the forwarding of auth-response-headers to gRPC backends will help a lot. It also fixes
MaxWorkerOpenFiles calculation on high cores nodes. Lastly, we see the fixing of the definition order of modsecurity directives.
Throughout the article, we have seen how adding new features and bug fixes will make the ingress-nginx controller for Kubernetes function more smoothly. You can also try out the deployment of the controller by clicking here. If you want to contribute to the project, you can find the GitHub repository here. Have a playful experience with the Ingress-Nginx controller, and I will see you again in the following article.
You can find out more about our blogs below. Happy reading!