-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix istio VirtualService manifest #101
fix istio VirtualService manifest #101
Conversation
this matches with my understanding of virtualservice from examples I worked before. I have not tested but I am good with it. |
This sort of solves the problem for model registry REST API. But I think we can solve it for both REST and gRPC by re-using some bits from our model registry midstream operator and maybe other virtualservice filtering capabilities. |
BTW, url rewrite will break any clients that are using full paths declared in the REST API. |
@tarilabs I created a PR on your repo branch tarilabs#2 |
thank you @dhirajsb just to cross-check and for my understanding:
|
Yes to cluster scope single registry for uri prefix check question. I also update my PR tarilabs#2 to simplify istio config further and tested the REST service endpoint in a local cluster and it works through the kubeflow-gateway. |
Thank you @dhirajsb for the amendment in linked PR: tarilabs#2 (review) Tested with:
(no path prefix from CLI) and from Notebook: Both working as expected. |
b0fd5ad
to
1419737
Compare
fix: refactor istio virtualservice to support routes for REST internal and external routing, and gRPC internal routing (#2) * fix: refactor istio virtualservice to support routes for REST internal and external routing, and gRPC internal routing * fix: simplify istio config by excluding DB port and enabling istio sidecar injection in model registry deployment Signed-off-by: Matteo Mortari <matteo.mortari@gmail.com> Co-authored-by: Dhiraj Bokde <dhirajsb@users.noreply.github.com>
1419737
to
bfdd604
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
/approve
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: rareddy The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
fix: refactor istio virtualservice to support routes for REST internal and external routing, and gRPC internal routing (kubeflow#2) * fix: refactor istio virtualservice to support routes for REST internal and external routing, and gRPC internal routing * fix: simplify istio config by excluding DB port and enabling istio sidecar injection in model registry deployment Co-authored-by: Dhiraj Bokde <dhirajsb@users.noreply.github.com> Signed-off-by: muzhouliu <sllzhlv77@gmail.com>
[pull] main from kubeflow:main
Seems to me the definition proposed in this changed manifest makes it working, and it's aligned with other Kubeflow components' approach.
Description
Before, I was not able to reach by e2e test (from outside the cluster) the Model Registry REST API endpoint --unless of manual p.fwd.
This solution aligns for the REST API endpoint (the one on 8080) following similar strategy of other Kubeflow components: see here for some examples.
This way, request on the gateway for
/model-registry/...
will be routed to the correct service accordingly.How Has This Been Tested?
Install vanilla KF, used
1.9.0-rc.0
without networkpolicies.(I'm skipping networkpolicies as this PR I considered propaedeutic work to later work on networkpolicy for model registry)
Execute required step of p.fwd the istio-ingressgateway per normal vanilla KF installation:
In another terminal:
Alternative solution (explored, but not adopted here)
I've explored with alternative solution of:
which works too, using:
The reasons I'm not proposing this solution:
Host: model-registry-service.kubeflow.svc.cluster.local
in the header of the REST api request, which is not allowed by front-end (JS) code.Merge criteria: