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 Featurekubernetes/ingress-nginxnginxinc/kubernetes-ingress with NGINXnginxinc/kubernetes-ingress with NGINX Plus
Fundamental
AuthorsKubernetes communityNGINX Inc and communityNGINX Inc and community
NGINX versionCustom NGINX build that includes several third-party modulesNGINX official mainline buildNGINX Plus
Commercial supportN/AN/AIncluded
Implemented inGo/Lua (while Nginx is written in C)Go/PythonGo/Python
Load balancing configuration via the Ingress resource
Merging Ingress rules with the same hostSupportedSupported via Mergeable IngressesSupported via Mergeable Ingresses
HTTP load balancing extensions - AnnotationsSee the supported annotationsSee the supported annotationsSee the supported annotations
HTTP load balancing extensions – ConfigMapSee the supported ConfigMap keysSee the supported ConfigMap keysSee the supported ConfigMap keys
TCP/UDPSupported via a ConfigMapSupported via custom resourcesSupported via custom resources
WebsocketSupportedSupported via an annotationSupported via an annotation
TCP SSL PassthroughSupported via a ConfigMapSupported via custom resourcesSupported via custom resources
JWT validationNot supportedNot supportedSupported
Session persistenceSupported via a third-party moduleNot supportedSupported
Canary testing (by header, cookie, weight)Supported via annotationsSupported via custom resourcesSupported via custom resources
Configuration templatesSee the templateSee the templatesSee the templates
Load balancing configuration via Custom Resources
HTTP load balancingNot supportedSee VirtualServer and VirtualServerRoute resourcesSee VirtualServer and VirtualServerRoute resources
TCP/UDP load balancingNot supportedSee TransportServer resourceSee TransportServer resource
TCP SSL Passthrough load balancingNot supportedSee TransportServer resourceSee TransportServer resource
Deployment
Command-line argumentsSee the argumentsSee the argumentsSee the arguments
TLS certificate and key for the default serverRequired as a command-line argument/ auto-generatedRequired as a command-line argumentRequired as a command-line argument
Helm chartSupportedSupportedSupported
OperatorNot supportedSupportedSupported
Operational
Reporting the IP address(es) of the Ingress controller into Ingress resourcesSupportedSupportedSupported
Extended StatusSupported via a third-party moduleNot supportedSupported
Prometheus IntegrationSupportedSupportedSupported
Dynamic reconfiguration of endpoints (no configuration reloading)Supported with a third-party Lua moduleNot supportedSupported