Skip to content

Conversation

@dhirajsb
Copy link
Contributor

Description

MLflow SDK supports integrations with non-mlflow Tracking stores by implementing a tracking.AbstractStore API.
This PR implements that API to allow MLflow SDK to directly call Model Registry APIs for storing Experiment and Run metadata.
See the feature request issue #1225 for motivation, design and implementation details.

This PR is based on the Experiment Tracking PR #1318 and must be merged after that PR.
Fixes #1225.

How Has This Been Tested?

Extensive unit and e2e tests have been provided. A local e2e test is provide to test against the go REST server, as well as an e2e test to run against a deployed model registry to verify RBAC support.

Merge criteria:

  • All the commits have been signed-off (To pass the DCO check)
  • The commits have meaningful messages
  • Automated tests are provided as part of the PR for major new functionalities; testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
  • The developer has manually tested the changes and verified that the changes work.
  • Code changes follow the kubeflow contribution guidelines.
  • For first time contributors: Please reach out to the Reviewers to ensure all tests are being run, ensuring the label ok-to-test has been added to the PR.

If you have UI changes

  • The developer has added tests or explained why testing cannot be added.
  • Included any necessary screenshots or gifs if it was a UI change.
  • Verify that UI/UX changes conform the UX guidelines for Kubeflow.

@google-oss-prow google-oss-prow bot requested a review from Al-Pragliola July 19, 2025 16:22
@google-oss-prow
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign andreyvelich for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@dhirajsb
Copy link
Contributor Author

dhirajsb commented Jul 19, 2025

The long commit history should become much shorter once #1318 is merged in main.

@dhirajsb
Copy link
Contributor Author

To review this PR, focus on the clients/modelregistry_plugin plugin project.

@dhirajsb dhirajsb marked this pull request as draft July 19, 2025 16:28
@dhirajsb dhirajsb force-pushed the feat/mlflow-plugin branch 2 times, most recently from 60c43ad to 60ad248 Compare September 4, 2025 06:12
@dhirajsb dhirajsb changed the title [Draft] Add MLflow SDK support for Model Registry as a Tracking Store, fixes #1225 Add MLflow SDK support for Model Registry as a Tracking Store, fixes #1225 Sep 4, 2025
@dhirajsb dhirajsb marked this pull request as ready for review September 4, 2025 06:13
@dhirajsb
Copy link
Contributor Author

dhirajsb commented Sep 4, 2025

Re-based branch on main on top of mlmd removal. Ready for review.

Copy link
Member

@jonburdo jonburdo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most of my comments are just suggestions and could be done later. Overall lgtm

Copy link
Member

@jonburdo jonburdo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

Copy link
Member

@jonburdo jonburdo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

There are some changes I would like to see us make in the future, but I think this looks good for now. If you were going to make one more change, I would suggest replacing builtins.open with model_registry_mlflow.auth.open and do same for the other patches. Even this should be okay for now though.

@google-oss-prow google-oss-prow bot added lgtm and removed lgtm labels Sep 11, 2025
@dhirajsb
Copy link
Contributor Author

@jonburdo thanks for the detailed review. I have addressed all the comments. On using mtime for token file caching, I wrote a local benchmark script (using cursor) and it found that with a 95%+ hit rate, using mtime to avoid reading the file would be 4-5X faster.

Copy link
Member

@jonburdo jonburdo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

Thanks for all the hard work on this! Looks great :)

@google-oss-prow google-oss-prow bot added the lgtm label Sep 11, 2025
dhirajsb and others added 19 commits September 11, 2025 13:14
Signed-off-by: Dhiraj Bokde <[email protected]>
…Store class, add tests for new methods, replace print statements in tests

Signed-off-by: Dhiraj Bokde <[email protected]>
Co-authored-by: Paul Boyd <[email protected]>
Signed-off-by: Dhiraj Bokde <[email protected]>
Co-authored-by: Paul Boyd <[email protected]>
Signed-off-by: Dhiraj Bokde <[email protected]>
Co-authored-by: Paul Boyd <[email protected]>
Signed-off-by: Dhiraj Bokde <[email protected]>
…del_registry_mlflow to match pypi and python pkg naming conventions, removed redunant code in tests, general code cleanup

Signed-off-by: Dhiraj Bokde <[email protected]>
Signed-off-by: Dhiraj Bokde <[email protected]>
@google-oss-prow
Copy link

New changes are detected. LGTM label has been removed.

@google-oss-prow google-oss-prow bot removed the lgtm label Sep 11, 2025
@dhirajsb
Copy link
Contributor Author

@tarilabs @Al-Pragliola please add an approval so we can close this.

Signed-off-by: Dhiraj Bokde <[email protected]>
Signed-off-by: Dhiraj Bokde <[email protected]>
@rareddy
Copy link
Contributor

rareddy commented Sep 11, 2025

@dhirajsb please hold on this with merging; we did not have any conversations in the community on the direction; we need to establish what we are signing up here. Supporting MLflow this way is big commitment, especially given experiment tracking KEP was closed without resolution in the KFP recently.

@github-actions
Copy link

This pull request 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.

@github-actions
Copy link

github-actions bot commented Jan 1, 2026

This pull request has been automatically closed because it has not had recent activity. Please comment "/reopen" to reopen it.

@github-actions github-actions bot closed this Jan 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add MLflow SDK support for Model Registry as a store

4 participants