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

component migration tool for emissary executor and v2 compatible mode #6327

Closed
Bobgy opened this issue Aug 13, 2021 · 7 comments
Closed

component migration tool for emissary executor and v2 compatible mode #6327

Bobgy opened this issue Aug 13, 2021 · 7 comments
Labels
help wanted The community is welcome to contribute. lifecycle/stale The issue / pull request is stale, any activities remove this label.

Comments

@Bobgy
Copy link
Contributor

Bobgy commented Aug 13, 2021

For both emissary executor and v2 compatible mode, KFP components must specify command explicitly in the component yaml, refer to https://www.kubeflow.org/docs/components/pipelines/installation/choose-executor/#migrate-pipeline-components-to-run-on-emissary-executor

I think we could easily build a component migration tool which can be called like:

kfp component migrate <path-to-component-yaml>

The CLI does the following:

  1. read the component yaml
  2. verify if command is specified
  3. if not, call docker pull && docker inspect to get the command, modify component yaml to include the command

it might be more helpful migrating a folder of components via:

kfp component migrate --recursive <folder-with-components>

However, there is no good way to identify KFP components, we should probably improve on that.

Originally posted by @Bobgy in #6252 (comment)

@Bobgy
Copy link
Contributor Author

Bobgy commented Aug 13, 2021

Please upvote the issue if it'll be helpful to you!
Thanks

@Bobgy
Copy link
Contributor Author

Bobgy commented Aug 13, 2021

Besides, a great improvement only possible with a tool is that, with docker inspect, you must pull the image locally before inspecting its command. However, if we can build a tool, the tool can directly call the container registry API to get the command and args without pulling the image locally.

EDIT: I did not find a container registry agnostic API to get this info.

@Bobgy
Copy link
Contributor Author

Bobgy commented Aug 17, 2021

For anyone interested, is it fair to assume you installed docker on your computer and we can use the docker-py library for accessing docker?
https://docker-py.readthedocs.io/en/stable/

@AseiSugiyama
Copy link
Contributor

Hi, I am interested in this issue.

is it fair to assume you installed docker on your computer

Yes, my team uses docker for each local machine.

we can use the docker-py library for accessing docker?

I think it is acceptable for us. We hired poetry to manage our local & cloud (container) python environment to keep our environment separated from our system python environment. So any tools written in python are acceptable as well as they can be installed from PyPI.

@Bobgy
Copy link
Contributor Author

Bobgy commented Aug 20, 2021

Thanks for the confirmation @AseiSugiyama!
I'm still waiting for more interest feedback.

In the meantime, if anyone wants to build the tool, welcome doing so!

@Bobgy Bobgy added the help wanted The community is welcome to contribute. label Aug 20, 2021
@stale
Copy link

stale bot commented Mar 2, 2022

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.

@stale stale bot added the lifecycle/stale The issue / pull request is stale, any activities remove this label. label Mar 2, 2022
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted The community is welcome to contribute. lifecycle/stale The issue / pull request is stale, any activities remove this label.
Projects
Status: Closed
Development

No branches or pull requests

2 participants