Case-insensitive path matching support added for ingress path#798
Case-insensitive path matching support added for ingress path#798mustafasemihbay wants to merge 1 commit into
Conversation
case-insensitive path matching support added
|
Hi @mustafasemihbay , thanks for your submission. Can you make the required changes as reported by the above checks ? Have a great day. |
|
Hi @mustafasemihbay , can you check your expected behavior with case insensitivity matching in this setting: spec:
ingressClassName: haproxy
rules:
- host: example.com
http:
paths:
- path: /Example-api
pathType: ImplementationSpecific
backend:
service:
name: example-api
port:
number: 80Notice the capital letter for the path and then try to match it. |
|
Is there any update on this issue DescriptionHAProxy Kubernetes Ingress Controller (v3.2.5, Helm chart 1.48.0) performs case-sensitive path matching with no working workaround available in the current release. The problemIngress paths stored in Example:
This broke a production service after migration from Nginx (which matches paths case-insensitively by default). Expected BehaviourOne of the following should work but its not working - getting same 404 issue
|
|
Steps to Reproduce
apiVersion: networking.k8s.io/v1 |
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
|
Let's not keep this stale, we also have a PR on Helm Chart side as well. |
Normally, haproxy-kubernetes-ingress performs path matching in a case-sensitive manner. However, ingress-nginx supports case-insensitive path matching. During migrations from ingress-nginx to haproxy-kubernetes-ingress, some projects may require case-insensitive path matching behavior.
This change introduces an optional feature that enables case-insensitive path matching.
The feature can be enabled by passing an extra argument in the Helm chart configuration:
extraArgs:
kubernetes ingress example;
spec:
ingressClassName: haproxy
rules:
- host: example.com
http:
paths:
- path: /example-api
pathType: ImplementationSpecific
backend:
service:
name: example-api
port:
number: 80
this ingress path match with example.com/example-api, example.com/Example-api, example.com/EXAMPLE-api etc.