dotnet / dotnet/yarp

Kubernetes Ingress Controller Wishlist

Open
#1,254 15 comments 30 reactions 0 assignees View on GitHub
Kubernetes Ingress Controller Type: Idea
Dominant language
C#
Stars
9.6k
Forks
933
Avg merge
12d 18h
Merged PRs (30d)
2

Description

### 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.

- [x] #1389 Support ingresses of same name in multiple namespaces. Reasonably simple - cluster and route IDs don't include namespace, so clashes are possible.
- [x] Single deployable. Combine the "sample ingress" project and the "controller" project into a single deployable, making it easy to set up and manage.
- [x] Path rewrite via ingress annotations
- [x] 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](https://v1-20.docs.kubernetes.io/docs/concepts/services-networking/ingress/#tls). (**work in progress May 2022**)
- [x] #1397 Follow newer [IngressClass specification](https://v1-20.docs.kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class). 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!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.