-
Notifications
You must be signed in to change notification settings - Fork 55
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
Refactor CSI as different command of the model registry module #338
Comments
Is there reason why CSI needs to be designed as extension to MR vs have it part of the MR code directly to avoid such issues? |
an alternative I didn't have chance to investigate is whether workspaces would make this easier also to be properly managed from dependabot automated toolings. |
@rareddy TBH I've never considered this because I always tried to make CSI as isolated and independent project as possible (at least this was the initial goal) but now that you pointed out again I am starting thinking it is worth to evaluate whether adding another go cmd https://github.com/kubeflow/model-registry/tree/main/cmd just for the CSI. Obviously generating the executable for the CSI will rebuild the model-registry source code as well (but this is actually already happening with the relative import). Don't know if that could introduce other issues but I think it is worth to investigate.
Good point, this is another thing I did not try yet too. |
As discussed in the last bi-weekly mtg, as part of this issue we should probably evaluate the following options:
|
@lampajr can you explain what is ad-hoc command or sub-command in this context? I do not understand it. |
With With |
Another difference between opting for command vs subcommand is the resulting artifact produced: in the case of subcommand, that would have been a "subroutine" in the same binary, while for CSI we only need a subset of the whole in the final binary (for CSI). I believe is important to keep in mind/highlight. |
Definitely worth to mention it, thanks @tarilabs |
Thanks, @tarilabs and @lampajr for the explanation, makes sense. I guess command is the way we should do where the |
Yes @rareddy or something along those lines. However as mentioned I believe Workspaces should be investigated first, if that ameliorates the problem of keeping deps in sync, without actually "mixing code". If that doesn't help, then the "different command(s) from the same go project" is likely the next simpler approach. my2c. |
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. |
After some investigation it turned out the best approach here is to keep CSI as different executable/command from the same model registry go module such that we don't have to maintain different modules that share part of the codebase. The proposal can be found here 👉🏻 #601 @tarilabs I think we can remove the |
Is your feature request related to a problem? Please describe.
At the moment the CSI heavily relies on the model registry project, this is because the model-registry dependency is imported in order to interact with model registry by making use of the auto-generated and provided client:
model-registry/csi/pkg/storage/modelregistry_provider.go
Lines 22 to 27 in 332c085
This implementation could lead to some issues, especially from a maintenance point of view, see #328 (comment) as an example.
Describe the solution you'd like
Decouple CSI and Model Registry by removing the
model-registry
dependency from the CSI dependencies.Then update the CSI to make use of a custom and auto-generated REST client (or whatever could be valuable and easy-to-maintain approach) relying on the versioned model-registry OpenAPI specification.
Describe alternatives you've considered
n/a
Additional context
If we go for a custom auto-generated client to interact with the MR REST interface consider that we just need a couple of endpoints to invoke so I think it is worth to evaluate whether we can auto-generate just a subset of the OpenAPI spec.
The text was updated successfully, but these errors were encountered: