The Kubernetes project announced that maintenance of ingress-nginx would end in March 2026, with no further fixes for either defects or vulnerabilities. The recommendation is to move to Gateway API. Source: retirement announcement.
Checklist
- Inventory. List all
Ingressresources, classes andnginx.ingress.kubernetes.io/*annotations in use. Annotations are the critical point: each one has to be translated. - Choosing an implementation. Gateway API is a specification; you need a controller that implements it (for example Cilium, Envoy Gateway, Istio, NGINX Gateway Fabric or your cloud provider’s own). Assess support, security and operating costs.
- Trial conversion. The ingress2gateway tool, cited in the retirement announcement, generates a draft
GatewayandHTTPRoute. It is not 100% automatic: review every rule. - Functional parity. Check path rewrites, TLS, timeouts, size limits, authentication, CORS and rate limiting. Anything without an equivalent must be handled with a policy of the chosen controller.
- Test environment. Replicate the critical paths and run automated tests against the expected responses.
- Parallel run. Put the new gateway alongside the old ingress, on a different address, and shift traffic gradually (DNS weighting or an upstream load balancer).
- Observability. Compare response codes, latencies and logs between old and new before each step.
- Rollback. Keep the old ingress active until you have a stable period of traffic on the new one.
- Clean-up. Remove the controller, the annotations and any unused resources; update the documentation.
Common mistakes
- Treating the automatic conversion as finished.
- Forgetting certificates and automatic renewal.
- Changing the gateway and the Kubernetes version at the same time: two variables are too many.
If you want a plan tailored to your cluster, see Kubernetes and cloud native platforms.