Skip to content

Add HTTPRoute Support to EMQX Operator CRDs (Gateway API Migration) #1167

@bashao

Description

@bashao

Is your feature request related to a problem? Please describe.
The Kubernetes ecosystem is transitioning from the legacy Ingress resource to the Gateway API, and the nginx-ingress controller will be retired at the end of March. The EMQX Operator currently supports only Ingress-based routing, which prevents us, and many others, from adopting Gateway API compatible routing. This creates a blocker for production workloads that must migrate away from nginx-ingress.

Describe the solution you'd like
I would like the EMQX Operator to support generating HTTPRoute resources as part of its CRDs, enabling native integration with Gateway API controllers. Specifically, the operator should allow configuring:

  • Parent Gateway references
  • Hostnames, matches, filters, and routing rules
  • Backend references for EMQX Dashboard, API, and any exposed services

This would mirror the existing Ingress configuration options but aligned to the Gateway API specification.

Describe alternatives you've considered

  • Managing HTTPRoute objects manually outside the operator, which is not ideal because it breaks the operator’s reconciliation model and increases operational complexity.
  • Using an Ingress-to-Gateway translation layer, but such approaches are incomplete and don’t provide first-class HTTPRoute functionality.
  • Continuing to rely on nginx-ingress temporarily, which is not sustainable due to deprecation.

Additional context
Gateway API adoption is increasing across major Kubernetes environments (GKE Gateway Controller, Istio, Envoy Gateway, etc.), and HTTPRoute support in the operator would ensure EMQX remains compatible with the evolving ecosystem. I’m happy to help test or contribute to a proposed CRD extension if useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions