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

Bring back --enable-exec for declarative function pipelines. #2302

Closed
aw185176 opened this issue Jun 22, 2021 · 4 comments
Closed

Bring back --enable-exec for declarative function pipelines. #2302

aw185176 opened this issue Jun 22, 2021 · 4 comments
Assignees
Labels
area/hydrate customer deep engagement enhancement New feature or request triaged Issue has been triaged by adding an `area/` label
Milestone

Comments

@aw185176
Copy link

Describe your problem

We use Kpt internally, where we have nearly 20 functions. We produce all of the function binaries that we use and we put them into our pipeline images so that Kpt can use them directly.

A typical invocation might look like kpt fn run --enable-exec $DIR/ for us.

We explicitly do not want to use the container runtime because it introduces lots of overhead we don't have to deal with, as well as the performance of the pipeline falling off a cliff relative to the exec runtime.

The decision to neuter this functionality in Kpt v1 was a mistake that ignores enterprise users and favors toy demos / public pipelines.

@aw185176 aw185176 added the enhancement New feature or request label Jun 22, 2021
@droot droot added the customer deep engagement label Jun 23, 2021
@droot droot added this to the v1.0 m4 milestone Jun 23, 2021
@droot droot self-assigned this Jun 23, 2021
@droot
Copy link
Contributor

droot commented Jun 28, 2021

We explicitly do not want to use the container runtime because it introduces lots of overhead we don't have to deal with, as well as the performance of the pipeline falling off a cliff relative to the exec runtime.

Can you share more details about the overheads that container runtime introduces ?

Regarding performance, yes, there is scope for improvements here and we will be addressing it soon.

An unrelated question: What tooling/SDK did you (or your team) use to develop the functions ?

@aw185176
Copy link
Author

aw185176 commented Jun 29, 2021

Can you share more details about the overheads that container runtime introduces ?

You have to pull each container and you need a container run time.

Would you rather have one container with the Docker daemon mounted that then pulls and executes 20 containers, or would you rather have one container with 20 binaries packaged in it that you can run directly? Try a simple example on your own terminal. A pipeline with 10 functions ran via exec can finish in seconds, 10 containers that aren't already pulled takes much longer.

Regarding performance, yes, there is scope for improvements here and we will be addressing it soon.

Performance is fine for exec runtime.

An unrelated question: What tooling/SDK did you (or your team) use to develop the functions ?

We used kyaml/framework directly. Easiest way to get updates the fastest and make changes that we want. The extra layer that Kpt adds on top of it seems mostly unnecessary and adds a layer of indirection

@mikebz mikebz added the triaged Issue has been triaged by adding an `area/` label label Jul 9, 2021
@mikebz mikebz removed this from the v1.0 m4 milestone Jul 14, 2021
@droot droot added this to the Q3-2021 milestone Aug 24, 2021
@droot droot linked a pull request Sep 22, 2021 that will close this issue
@droot droot modified the milestones: Q3-2021, Q4-2021 Nov 3, 2021
@bgrant0607
Copy link
Contributor

See also #2469 and #2567

@droot
Copy link
Contributor

droot commented Jan 19, 2022

@aw185176 we added exec support in fn render in beta.11, so closing this issue.

@droot droot closed this as completed Jan 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/hydrate customer deep engagement enhancement New feature or request triaged Issue has been triaged by adding an `area/` label
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants