You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What steps did you take and what happened:
I have an InferenceService my-classifier.
When i try to curl from another pod inside the same namespace, it works fine when the domain name is all lowercase (expectedly), but it doesn't when there are some uppercase letters (404 not found).
But if i try to curl the private service created by knative (my-classifier-predictor-00001-private), it works for both cases (i'm guessing bcos it doesn't go through Istio).
% curl http://my-classifier.test.svc.cluster.local | jq
{
"status": "alive"
}
% curl http://MY-Classifier.test.svc.cluster.local -v
> ...
> Host: MY-classifier.test.svc.cluster.local
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 404 Not Found
< server: envoy
< content-length: 0
% curl http://MY-Classifier-predictor-00001-private.test.svc.cluster.local | jq
{
"status": "alive"
}
What did you expect to happen:
I expect curl http://MY-Classifier.test.svc.cluster.local to work, since DNS names aren't case sensitive.
My use case is that the application code i'm writing which will be talking to kserve models may have uppercase letters in the domain name. I can always make it all lowercase in the application code too, but I feel like we should solve this on the kserve/knative/istio side.
If i add (?i) to the regex match (so ^(?i)my-classifier\.test(\.svc(\.cluster\.local)?)?(?::\d{1,5})?$), the failing curl http://MY-Classifier.test.svc.cluster.local will work because the "i" modifier specifies a case-insenitive match, so maybe we should do that?
/kind bug
What steps did you take and what happened:
I have an InferenceService
my-classifier
.When i try to
curl
from another pod inside the same namespace, it works fine when the domain name is all lowercase (expectedly), but it doesn't when there are some uppercase letters (404 not found).But if i try to
curl
the private service created by knative (my-classifier-predictor-00001-private
), it works for both cases (i'm guessing bcos it doesn't go through Istio).What did you expect to happen:
I expect
curl http://MY-Classifier.test.svc.cluster.local
to work, since DNS names aren't case sensitive.My use case is that the application code i'm writing which will be talking to kserve models may have uppercase letters in the domain name. I can always make it all lowercase in the application code too, but I feel like we should solve this on the kserve/knative/istio side.
What's the InferenceService yaml:
Anything else you would like to add:
This is the
VirtualService
created by KServe for thisInferenceService
:If i add
(?i)
to theregex
match (so^(?i)my-classifier\.test(\.svc(\.cluster\.local)?)?(?::\d{1,5})?$
), the failingcurl http://MY-Classifier.test.svc.cluster.local
will work because the "i" modifier specifies a case-insenitive match, so maybe we should do that?Environment:
kubectl version
): v1.27.13-eks-3af4770The text was updated successfully, but these errors were encountered: