Skip to content

User Images: How/should we support users submitting custom images? #6

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

Closed
blairdrummond opened this issue Apr 20, 2020 · 9 comments
Closed

Comments

@blairdrummond
Copy link
Contributor

No description provided.

@ca-scribner
Copy link
Contributor

@Colette-G issue #39 will build examples of workarounds we can show to users to decide whether we need to prioritize this issue.

@justbert
Copy link

justbert commented May 6, 2020

Just putting some information that may be interesting for a more container-centric solution:
Harbor is a k8s native repository that also incorporates pieces like Notary (image signing - used in Docker Content Trust) and Clair (Vulnerability scanning).

@ca-scribner ca-scribner changed the title User Images: How to users submit images for KF Pipelines? User Images: How/should we support users submitting custom images? May 13, 2020
@ca-scribner
Copy link
Contributor

Rescoped issue to be specifically about submitting user images.

Argument for user images:

  • Kubeflow Pipelines are structured around running self-contained docker containers as pipeline steps. To deliver full KFP flexibility to users, they need to be able to build their own custom containers
  • For users to experiment/iterate on their pipelines, they need a way to update their custom containers easily (ideally without human blessing)

Argument against:

  • security risk

Possible solutions:

  • Harbor as mentioned by @justbert ?
  • daaas-containers model, which lets users PR specs for images which are then human checked and accepted

@ca-scribner
Copy link
Contributor

My preference is against the human-checked model. I think it:

  • bakes in maintenance costs for us (we provide the humans)
  • is error prone (our humans need to catch the vulnerabilities)
  • is slow for the user when iterating

@JosephKuchar
Copy link

Is there any progress on this issue? I was working on developing a new pipeline for our processing, and after creating the Python scripts and Dockerfile I was a little surprised to discover I can't actually build the image within the AAW. If Pipelines are a core functionality of the environment, then I think it's important that users can create new pipelines (which necessitates creating containers) without too much headache.
Thanks,
Joseph

@blairdrummond
Copy link
Contributor Author

Hey @JosephKuchar ,

It's admittedly not a great solution, but the current approach is to push images through here:

https://github.com/StatCan/daaas-containers/

We do want to add support for building images, for instance using kaniko or podman, but managing the security around that is a surprisingly tough problem...

@JosephKuchar
Copy link

Thanks @blairdrummond !

For what it's worth, I'll add that for building I can move my work to my personal Digital Ocean server, so it's not too much of an inconvenience for me right now, but more generally any functionality that's removed from things like the AAW forces users to use their own computers or external solutions, which is really not ideal.
I'm also thinking forward to when I present my work on the AAW to the rest of my team - if on the one hand I can demonstrate cool pipeline functionality, but on the other hand have to say "to build this you need access to a separate linux environment," then I think that will turn off a lot of people. Not to diminish the security issue, which I'm sure is a tough one, but just considerations from a user's perspective.

@blairdrummond
Copy link
Contributor Author

Well, as I said, there is a way to build and push images into the AAW for users; it's via

https://github.com/StatCan/daaas-containers/

I.e. it goes through a scanning process to make sure it doesn't introduce security-vulnerabilities. Anyone can use github in order to do these image builds for free, so it doesn't require anyone to acquire a separate environment. We're definitely looking to make this smoother, but at the moment ProB and such is a pretty high priority for us, and so it might be a bit of time before we can invest in the UX of that.

If you want to push your images into AAW, for now daaas-containers is the way to go.

@ca-scribner
Copy link
Contributor

ca-scribner commented Dec 14, 2020 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants