Azure / application-gateway-kubernetes-ingress

This is an ingress controller that can be run on Azure Kubernetes Service (AKS) to allow an Azure Application Gateway to act as the ingress for an AKS cluster.
https://azure.github.io/application-gateway-kubernetes-ingress
MIT License
678 stars 422 forks source link

Support HTTP settings per ingress backend (e.g. define request timeout at the k8s Service level) #693

Open thomas-riccardi opened 4 years ago

thomas-riccardi commented 4 years ago

Is your feature request related to a problem? Please describe. I have different k8s Services behind one k8s Ingress with different paths rules, each having different application-level behavior, notably sane request timeouts.

Currently the request timeout can onlyt be configured at the Ingress level (with the appgw.ingress.kubernetes.io/request-timeout annotation), it then applies to all the rules (behind the scene all Application Gateway Rules use the same unique HTTP setting resource if I understand correctly).

Describe the solution you'd like I'd like to be able to define different HTTP settings per Ingress rule/path. More precisely:

(In GCP GKE, they have a BackendConfig CRD pointed to by an annotation on the Service: https://cloud.google.com/kubernetes-engine/docs/concepts/backendconfig)

thomas-riccardi commented 4 years ago

cc @Benjiiim

StianOvrevage commented 4 years ago

@thomas-riccardi Have you tried splitting it up into multiple Ingress objects as a workaround?

akshaysngupta commented 4 years ago

@thomas-riccardi Did you try @StianOvrevage's suggestion ?

thomas-riccardi commented 4 years ago

@StianOvrevage @akshaysngupta splitting into multiple Ingress is indeed the workaround, but it has some limitations: