ingress-nginx and nginx ingress are not the same thing

After two weeks of reading the documentation, I finally realized that Ingress-Nginx and Nginx Ingress are not the same thing. Their functionality and implementation methods are different. There is even documentation to guide migration.

Ingress-NGINX is the community version, with more people participating in discussions and more answers available from searches. NGINX Ingress is the commercial version, with more features but lower community participation.

According to Deploy with NGINX Ingress Controller - Overview

NGINX Ingress Controller can be used for free with NGINX Open Source. Paying customers have access to NGINX Ingress Controller with NGINX Plus. To deploy NGINX Ingress Controller with NGINX Service Mesh, you must use either:

Open Source NGINX Ingress Controller version 3.0+ NGINX Plus version of NGINX Ingress Controller Visit the NGINX Ingress Controller product page for more information.

NGINX Ingress Controller can be used for free with NGINX Open Source. Paying customers can access NGINX Ingress Controller through NGINX Plus.

Additionally, the official website for the commercial version of Nginx has been migrated to www.f5.com

The product page for Nginx Ingress Controller is at https://www.f5.com/products/nginx/nginx-ingress-controller

This blog post from May 2021 compares their differences: There are two Nginx Ingress Controllers for k8s. What?

Aspect or Feature kubernetes/ingress-nginx nginxinc/kubernetes-ingress with NGINX nginxinc/kubernetes-ingress with NGINX Plus
Fundamental
Authors Kubernetes community NGINX Inc and community NGINX Inc and community
NGINX version Custom NGINX build that includes several third-party modules NGINX official mainline build NGINX Plus
Commercial support N/A N/A Included
Implemented in Go/Lua (while Nginx is written in C) Go/Python Go/Python
Load balancing configuration via the Ingress resource
Merging Ingress rules with the same host Supported Supported via Mergeable Ingresses Supported via Mergeable Ingresses
HTTP load balancing extensions - Annotations See the supported annotations See the supported annotations See the supported annotations
HTTP load balancing extensions – ConfigMap See the supported ConfigMap keys See the supported ConfigMap keys See the supported ConfigMap keys
TCP/UDP Supported via a ConfigMap Supported via custom resources Supported via custom resources
Websocket Supported Supported via an annotation Supported via an annotation
TCP SSL Passthrough Supported via a ConfigMap Supported via custom resources Supported via custom resources
JWT validation Not supported Not supported Supported
Session persistence Supported via a third-party module Not supported Supported
Canary testing (by header, cookie, weight) Supported via annotations Supported via custom resources Supported via custom resources
Configuration templates See the template See the templates See the templates
Load balancing configuration via Custom Resources
HTTP load balancing Not supported See VirtualServer and VirtualServerRoute resources See VirtualServer and VirtualServerRoute resources
TCP/UDP load balancing Not supported See TransportServer resource See TransportServer resource
TCP SSL Passthrough load balancing Not supported See TransportServer resource See TransportServer resource
Deployment
Command-line arguments See the arguments See the arguments See the arguments
TLS certificate and key for the default server Required as a command-line argument/ auto-generated Required as a command-line argument Required as a command-line argument
Helm chart Supported Supported Supported
Operator Not supported Supported Supported
Operational
Reporting the IP address(es) of the Ingress controller into Ingress resources Supported Supported Supported
Extended Status Supported via a third-party module Not supported Supported
Prometheus Integration Supported Supported Supported
Dynamic reconfiguration of endpoints (no configuration reloading) Supported with a third-party Lua module Not supported Supported