-
Notifications
You must be signed in to change notification settings - Fork 4k
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
Bug-Fix Issue #4732 Add client_cert_path and server_cert_path into model registry rest store utils #4731
Bug-Fix Issue #4732 Add client_cert_path and server_cert_path into model registry rest store utils #4731
Conversation
@ericgosno91 Thanks for the contribution! The DCO check failed. Please sign off your commits by following the instructions here: https://github.com/mlflow/mlflow/runs/3409836731. See https://github.com/mlflow/mlflow/blob/master/CONTRIBUTING.rst#sign-your-work for more details. |
86c2e6c
to
1dd0f74
Compare
Dear Ankit @ankit-db, any review/suggestion will be appreciated, thank you |
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.
Thanks for pinging @ericgosno91 ! I am slightly concerned that we are using tracking environment variables here as an architectural pattern going forward, but we do that for the other arguments too so I won't block this PR on it. Thanks for the fix and appreciate your contribution to the community here!
Going to loop in @harupy here since he modified some of this code recently just to confirm before merging. |
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!
Thank you for quick review and followup @ankit-db and @harupy I do agree that the solution is not ideal architectural wise, I think the better solution is either to join utils for model registry (mlflow/tracking/_model_registry/utils.py) and tracking service (mlflow/tracking/_tracking_service/utils.py) or to separate the env for both services entirely. Since both solutions brought pattern changes and especially the later solutions may cause a breaking backward compatibility, I think this decision better be decided by more experienced contributor |
Signed-off-by: Eric Budiman Gosno <ebgosno@cermati.com>
1dd0f74
to
3734783
Compare
hi @ankit-db, please kindly help to approve the workflow again, as I just rebase the commit into latest master (the previous commit seems failed on version matrix test due to being behind in dependency versioning) |
hi @ankit-db, the PR seems to have passed all checks, can you help to merge the PR? Thanks for all the assistance until now 🙏 |
Done! Thanks for the contribution! |
What changes are proposed in this pull request?
Currently the model registry API is not correctly attaching the client and/or server certificate (when defined) as tracking API. The issue is due to both client_cert_path and server_cert_path are not passed into MlflowHostCreds for model registry rest store utils (mlflow/tracking/_model_registry/utils.py). This is causing issue when we tried to use mlflow model serve cli that hitting on certificate protected DNS
The proposed solution is just simply pass the client_cert_path and server_cert_path into MLFlowHost similar with tracking rest store (mlflow/tracking/_tracking_service/utils.py)
How is this patch tested?
Running mlflow model serve cli into remote mlflow server whose DNS is certificate-protected
Release Notes
Is this a user-facing change?
(Details in 1-2 sentences. You can just refer to another PR with a description if this PR is part of a larger change.)
There should be no changes on the user-facing, the change will only impact API for remote model registry that is protected by certificate
What component(s), interfaces, languages, and integrations does this PR affect?
Components
area/artifacts
: Artifact stores and artifact loggingarea/build
: Build and test infrastructure for MLflowarea/docs
: MLflow documentation pagesarea/examples
: Example codearea/model-registry
: Model Registry service, APIs, and the fluent client calls for Model Registryarea/models
: MLmodel format, model serialization/deserialization, flavorsarea/projects
: MLproject format, project running backendsarea/scoring
: MLflow Model server, model deployment tools, Spark UDFsarea/server-infra
: MLflow Tracking server backendarea/tracking
: Tracking Service, tracking client APIs, autologgingInterface
area/uiux
: Front-end, user experience, plotting, JavaScript, JavaScript dev serverarea/docker
: Docker use across MLflow's components, such as MLflow Projects and MLflow Modelsarea/sqlalchemy
: Use of SQLAlchemy in the Tracking Service or Model Registryarea/windows
: Windows supportLanguage
language/r
: R APIs and clientslanguage/java
: Java APIs and clientslanguage/new
: Proposals for new client languagesIntegrations
integrations/azure
: Azure and Azure ML integrationsintegrations/sagemaker
: SageMaker integrationsintegrations/databricks
: Databricks integrationsHow should the PR be classified in the release notes? Choose one:
rn/breaking-change
- The PR will be mentioned in the "Breaking Changes" sectionrn/none
- No description will be included. The PR will be mentioned only by the PR number in the "Small Bugfixes and Documentation Updates" sectionrn/feature
- A new user-facing feature worth mentioning in the release notesrn/bug-fix
- A user-facing bug fix worth mentioning in the release notesrn/documentation
- A user-facing documentation change worth mentioning in the release notes