Skip to content

How to deal with the retirement of Kubernetes Nginx Ingress? #12140

@scholzj

Description

@scholzj

Strimzi supports the type: ingress listener for a very long time. While it might work with any Ingress controller in theory, we have always claimed that it was designed and tested with the Kubernetes Nginx Ingress controller. And because the Ingress Controller compatibility was never there on 100%, especially with advanced features such as TLS passthrough needed, we were never able to guarantee that other Ingress controllers work.

However, that particular controller is leaving us: https://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/. It seems a bit weird to keep the type: ingress listener and claim that it supports project that is retired (although technically, nothing prevents us from doing so I guess). So we need to decide how to proceed with it.

I think there are several options:

  1. Deprecate the Ingress type listener and ...
    a. Either remove the logic completely and leave it in the API as ignored.
    b. Or keep the logic as is for the time being, for users who use it. But not do any changes to it.
  2. Rebase it to support another Ingress controller? If so, which one is reasonably open source? E.g. Traefik? HA Proxy? Would this include any code changes or just testing? (And does anyone else than me actually test it?)

In general, the long term future is the Gateway API. We do not have direct support for it - mainly because the Gateway API HTTPSRoute and TLSRoute resources were so far not stable enough. But users can use Gateway API semi-manually through the type: cluster-ip listener and manually created Gateway API resources. They will be able to do the same with Ingress if we remove the support.

I personally would probably think that the option 1b is the way to go followed by the removal of the code logic in 2027 or something like that. (Keep in mind, that once 0.49.0 is out, the CRD API cannot be removed in v1 anymore)

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions