Enable model-registry with UI by default#3318
Conversation
|
Welcome to the Kubeflow Manifests Repository Thanks for opening your first PR. Your contribution means a lot to the Kubeflow community. Before making more PRs: Community Resources:
Thanks again for helping to improve Kubeflow. |
|
hey @juliusvonkohout can you just review this pr. |
I am still on vacation, but maybe @tarilabs can help sooner. Are you sure that the catalog and everything is properly exposed in the dashboard UI @Raakshass? Do you mind sharing screenshots? Think of how we expose Kserve models web application in the dashboard. |
|
@Raakshass are you sure that it is properly exposed similar to the kserve models web application (endpoints) in the dashboard UI? I would like to see screenshots of the dashboard and the actual UI changes you made. Please check the original issue and related ones in the Model-Registry git repository. I think you are missing 80% of the work. |
6b078df to
7f88e4f
Compare
|
could you kindly share screenshot with @ederign as Julius suggested please on this thread? |
|
Hey @ederign @juliusvonkohout @tarilabs, I’ve been following this PR and the related issue for a few days and thought I could jump in to help move things forward. I’d really appreciate a review when you get a chance. Thanks! |
|
I've commented on #3323 |
|
Hi @juliusvonkohout @tarilabs — addressing the feedback about showing the actual dashboard/UI change. What changed in this update
Why this changeKubeflow’s documentation for Model Registry installation and dashboard customization indicates the Model Registry entry should be added to the Central Dashboard configuration so it appears in the sidebar menu. Verification status
If you’d like the menu item to also include |
|
I think you can use a general named one called applications/centraldashboard/overlays/kustomization.yaml We should also merge https://github.com/kubeflow/manifests/blob/master/applications/centraldashboard/overlays/oauth2-proxy/kustomization.yaml into that because oauth2-proxy is anyway mandatory. |
26abe05 to
6c83297
Compare
|
@juliusvonkohout Refactor complete! |
|
Hi @juliusvonkohout @kimwnasptd, I wanted to follow up on this PR. I noticed it's listed as a related issue for GSoC 2026 Project 4 (Platform Scalability and Security) - which is exciting! Is there anything else needed from my side to move this forward? Happy to make any additional changes. Thanks for your time! |
|
Now i just need some time go go thoroughly trough the authentication and authorization architecture. |
|
@Raakshass please investigate #3318 (comment) and see whether you can make it more secure and add security tests for that. |
…forward reuse Add Test 8: verify unauthenticated requests (no Authorization header) are denied by oauth2-proxy at the gateway (non-200 response). Fix duplicate port-forward: reuse the existing localhost:8080 forward from port_forward_gateway.sh instead of starting a conflicting second forward. Improve gateway test comments to document the KFP dual-path AuthorizationPolicy pattern and what each test validates. Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>
@juliusvonkohout
also fixed a bug where the test script started a duplicate port-forward on 8080, conflicting with port_forward_gateway.sh which already runs earlier in the CI workflow. now reuses the existing forward. one thing i want to confirm: the anti-spoof rule (Rule 2) blocks internal pods from sending |
more importantly @Al-Pragliola @tarilabs please raise any objections or we merge this soon after the remaining cleanup. |
… feedback Replace 80 lines of inline duplicated install/test code in model_registry_test.yaml with calls to the consolidated scripts (model_registry_install.sh, port_forward_gateway.sh, model_registry_test.sh), matching the model_catalog_test.yaml pattern. Address Copilot review comments: - Fix pod label selector from app=model-registry-db to component=db (matching upstream model-registry-db-deployment.yaml) - Update test script prerequisites to list all dependencies (Istio gateway, oauth2-proxy, Kubeflow profile namespace) - Tighten Test 8 unauthenticated assertion from non-200 to 302/401/403 only, preventing false positives from 404 routing errors Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>
Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>
cleaned up - name: Install Model Registry
run: ./tests/model_registry_install.sh
- name: Port forward Istio gateway
run: ./tests/port_forward_gateway.sh
- name: Run Model Registry Tests
run: ./tests/model_registry_test.shalso addressed all copilot review feedback in the same commit and fixed an AP abbreviation in 1e76409. on security: the AuthorizationPolicy already implements the KFP dual-path pattern (gateway ServiceAccount + internal K8s JWT with kubeflow-userid anti-spoof) matching ml-pipeline-ui line-for-line. tests validate authorized (200), unauthorized (403), and unauthenticated (302/401/403) access. |
|
Thank you we can refine later |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: juliusvonkohout The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
no objections from other maintainers
kubeflow/manifests#3318 modified the istio authorization policy. Applying the same change here to keep the two repos in sync. Signed-off-by: Paul Boyd <paul@pboyd.io>

Summary of Changes
This PR enables the Model Registry server, UI, and demo catalog components in the default Kubeflow installation (
example/kustomization.yaml), updates the Central Dashboard to include a Model Registry menu entry, adds README documentation, and adds CI tests with model CRUD verification.Components added to
example/kustomization.yaml:overlays/postgres)options/istio)options/ui/overlays/istio)options/catalog/overlays/demo)Central Dashboard:
applications/centraldashboard/overlays/oauth2-proxy/kustomization.yamlto use istio base overlay instead of kservepatches/configmap.yamlwith Model Registry menu entry alongside existing KServe Endpoints entryCI / Testing:
Documentation:
Dependencies
No external dependencies. Uses existing upstream manifests from
applications/model-registry/.Related Issues
Closes #3047