Skip to content
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

Remove cloud storage from Python package #2310

Merged
merged 6 commits into from
Aug 24, 2020

Conversation

adriangonz
Copy link
Contributor

@adriangonz adriangonz commented Aug 21, 2020

What this PR does / why we need it:
Removes cloud storage integrations (e.g. S3, GCS, Azure) from the seldon_core Python package. The current implementation interacts with these services through a separate image coming from the KFServing project, so they are not needed in the seldon_core package anymore.

In particular, whenever we need to fetch something remotely (e.g. setting modelUri: s3://... in SeldonDeployment resources), this separate image will do that through an init container. After that's downloaded, the only thing that the seldon_core wrapper will need to do is copy these resources into a local path.

This PR also removes the requirements.txt file so that setup.py is now the single source-of-truth for dependencies. Note that we still have a requirements-dev.txt file there, to list dependencies for testing, linting, etc.

Which issue(s) this PR fixes:

Fixes #2140
Fixes #1371

Special notes for your reviewer:
I've still kept the storage.py file and the same Storage.download() interface to avoid changing the different places where we call Storage.download(). However, it will now only support the _download_local() method, which is the one copying over the files to a local path.

Does this PR introduce a user-facing change?:

Remove S3, GCS and Azure logic from the `seldon_core.storage.Storage` class included in the Python package as this interaction now happens outside of the Python wrapper. 

@adriangonz
Copy link
Contributor Author

/test integration
/test notebooks

@seldondev
Copy link
Collaborator

Fri Aug 21 11:16:30 UTC 2020
The logs for [pr-build] [1] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/1.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=1

@seldondev
Copy link
Collaborator

Fri Aug 21 11:16:34 UTC 2020
The logs for [integration] [4] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/4.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=4

@seldondev
Copy link
Collaborator

Fri Aug 21 11:16:40 UTC 2020
The logs for [lint] [2] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/2.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=2

@seldondev
Copy link
Collaborator

Fri Aug 21 11:16:55 UTC 2020
The logs for [notebooks] [3] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/3.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=3

@adriangonz
Copy link
Contributor Author

/test integration
/test notebooks

@adriangonz
Copy link
Contributor Author

/cc @axsaucedo @cliveseldon @RafalSkolasinski

@seldondev
Copy link
Collaborator

Fri Aug 21 11:23:03 UTC 2020
The logs for [pr-build] [5] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/5.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=5

@seldondev
Copy link
Collaborator

Fri Aug 21 11:23:05 UTC 2020
The logs for [lint] [6] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/6.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=6

@seldondev
Copy link
Collaborator

Fri Aug 21 11:23:10 UTC 2020
The logs for [notebooks] [7] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/7.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=7

@seldondev
Copy link
Collaborator

Fri Aug 21 11:25:19 UTC 2020
The logs for [integration] [8] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/8.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=8

@seldondev
Copy link
Collaborator

Fri Aug 21 12:46:14 UTC 2020
The logs for [pr-build] [9] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/9.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=9

@seldondev
Copy link
Collaborator

Fri Aug 21 12:46:21 UTC 2020
The logs for [lint] [10] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/10.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=10

@adriangonz
Copy link
Contributor Author

/test integration
/test notebook

@seldondev
Copy link
Collaborator

Fri Aug 21 14:43:20 UTC 2020
The logs for [integration] [11] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/11.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=11

@anggao
Copy link
Contributor

anggao commented Aug 21, 2020

This looks great and will unblock us to upgrade to the latest mlflow! Thanks!

Copy link
Contributor

@anggao anggao left a comment

Choose a reason for hiding this comment

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

Do you have an ETA when this can be released ?

@seldondev
Copy link
Collaborator

@anggao: changing LGTM is restricted to collaborators

In response to this:

Do you have an ETA when this can be released ?

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository.

@adriangonz
Copy link
Contributor Author

/retest

@adriangonz
Copy link
Contributor Author

@anggao the plan is to release this in version 1.3, but I don't think there is currently an ETA for that.

@seldondev
Copy link
Collaborator

Fri Aug 21 16:50:55 UTC 2020
The logs for [integration] [12] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/12.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=12

@anggao
Copy link
Contributor

anggao commented Aug 21, 2020

@adriangonz Thanks for the info, is it possible to patch release this if v1.3 is still months away ?

@adriangonz
Copy link
Contributor Author

/test notebooks

@seldondev
Copy link
Collaborator

Mon Aug 24 07:59:54 UTC 2020
The logs for [notebooks] [13] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/13.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=13

@axsaucedo
Copy link
Contributor

@adriangonz looks good in general, although I just noticed that the storage.py dependency wasn't removed from the prepackaged models (not sure how it's passing the integration tests) - may be worth ensuring that the prepackaged servers no longer depend on the storage.py library.

Another thing that would be important is to add an entry on the UPGRADING.md about the breaking change (in case anyone is using the storagepy) and perhaps the alternative of installing the kfserving component (unless there is an alternative we want to explore)

@adriangonz
Copy link
Contributor Author

@axsaucedo that's described above. I've kept the same storage.py interface to keep compatibility with everything else that was using it. The only difference is that it will now only support "local downloads" (which are just copies).

@axsaucedo
Copy link
Contributor

Thanks for confirming - makes sense, good shout.
/approve

@seldondev
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: anggao, axsaucedo

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@seldondev
Copy link
Collaborator

Mon Aug 24 15:57:38 UTC 2020
The logs for [lint] [15] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/15.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=15

@seldondev
Copy link
Collaborator

Mon Aug 24 15:58:11 UTC 2020
The logs for [pr-build] [14] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-2310/14.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-2310 --build=14

@seldondev seldondev merged commit bf3bc5f into SeldonIO:master Aug 24, 2020
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.

Remove storage.py from python module azure-storage-blob package update to 12.1.0
4 participants