Skip to content

Kubernetes Ingress Controller Wishlist #1254

@dpbevin

Description

@dpbevin

What should we add or change to make your life better?

I've captured some features that would be good for improving the Kubernetes Ingress controller code. I'm more than happy to contribute heavily in this space, as I had a previous Ingress Controller project based on Yarp with some of these items.

  • Same ingress or service name in multiple Kubernetes namespaces #1389 Support ingresses of same name in multiple namespaces. Reasonably simple - cluster and route IDs don't include namespace, so clashes are possible.
  • Single deployable. Combine the "sample ingress" project and the "controller" project into a single deployable, making it easy to set up and manage.
  • Path rewrite via ingress annotations
  • Default (fallback) TLS support for all ingresses, utilizing a Kube secret.
  • SNI-based TLS support on a per-ingress basis. Again, based on Kube approach. (work in progress May 2022)
  • Kubernetes Ingress Class Support #1397 Follow newer IngressClass specification. Allows multiple ingress controllers to be present in the same cluster. Not just other ingress technologies but potentially multiple yarp-based controllers for different usages (e.g. public vs internal ingresses).
  • Report "scheduled for sync", etc. events to ingress resources to identify that Yarp controller is managing specific ingresses. Not really well documented from a Kube point of view but something that other ingress controller do.
  • Docker image and Helm Chart
  • Session affinity via ingress annotations
  • OAuth enforcement for backend services that don't have their own auth. Similar to https://github.com/oauth2-proxy/oauth2-proxy.
  • GRPC-routing
  • OpenTracing support. Great for diagnosing issues
  • Request size limiting via ingress annotations
  • Header-based canary routing via ingress annotations
  • Rate limiting via ingress annotations

Why?

To make this project a great option for Kubernetes ingress!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions