Skip to content
This repository has been archived by the owner on Sep 5, 2019. It is now read-only.

Rearchitect Build to Use Normal Containers in a Pod vs. Init Containers #521

Open
aaron-prindle opened this issue Jan 7, 2019 · 0 comments

Comments

@aaron-prindle
Copy link

This is a feature request to have Build use "normal" Pod containers for Step execution instead of the current implementation which uses init containers.

Reasoning

  • Currently getting logs of Build steps can be tricky as init container logs are garbage collected much more aggressively. This change would allow for the Build Step logs to be in "normal" Pod containers
  • Allows for sidecar containers to be used in conjunction with Builds
    • Istio sidecars
    • Log uploading

Potential Issues

Build will no longer support sets of Steps that would rely on newly built images from a previous step (as all images are pulled in initialization). This use case can be supported in a https://github.com/knative/build-pipeline though.

Investigation of Alternatives (in the context of allowing sidecars for knative/build)

https://docs.google.com/document/d/1vADt9yl21jOS085ZGjuNTJFjQegE6CniGFdlEJdyCrw/edit#heading=h.c0uts5ftkk58

aaron-prindle added a commit to aaron-prindle/build that referenced this issue Jan 7, 2019
What is the problem being solved?
This PR adds an entrypoint image which is capable of running another command with some pre-run/post-run hooks.  The goal of this is to allow for the the entrypoint of a container in a Build Step to have it's entrypoint rewritten by mounting this entrypoint image into the container provided in a Step, rewriting the entrypoint, then running the user container w/ the additional pre-run/post-run hooks.  The addition of this image enables the removal of init containers as per knative#521

What future work remains to be done?
This PR adds the entrypoint image and release step.  The future work involved is modifying Build to stop using init container and use this entrypoint image as a way of making that possible.
aaron-prindle added a commit to aaron-prindle/build that referenced this issue Jan 7, 2019
What is the problem being solved?
This PR adds an entrypoint image which is capable of running another command with some pre-run/post-run hooks.  The goal of this is to allow for the the entrypoint of a container in a Build Step to have it's entrypoint rewritten by mounting this entrypoint image into the container provided in a Step, rewriting the entrypoint, then running the user container w/ the additional pre-run/post-run hooks.  The addition of this image enables the removal of init containers as per knative#521.  This was originally part of knative#470 but is now split out.

What future work remains to be done?
This PR adds the entrypoint image and release step.  The future work involved is modifying Build to stop using init container and use this entrypoint image as a way of making that possible.
aaron-prindle added a commit to aaron-prindle/build that referenced this issue Jan 7, 2019
What is the problem being solved?
This PR adds an entrypoint image which is capable of running another command with some pre-run/post-run hooks.  The goal of this is to allow for the the entrypoint of a container in a Build Step to have it's entrypoint rewritten by mounting this entrypoint image into the container provided in a Step, rewriting the entrypoint, then running the user container w/ the additional pre-run/post-run hooks.  The addition of this image enables the removal of init containers as per knative#521.  This was originally part of knative#470 but is now split out.

What future work remains to be done?
This PR adds the entrypoint image and release step.  The future work involved is modifying Build to stop using init container and use this entrypoint image as a way of making that possible.
aaron-prindle added a commit to aaron-prindle/build that referenced this issue Jan 7, 2019
What is the problem being solved?
This PR adds an entrypoint image which is capable of running another command with some pre-run/post-run hooks.  The goal of this is to allow for the the entrypoint of a container in a Build Step to have it's entrypoint rewritten by mounting this entrypoint image into the container provided in a Step, rewriting the entrypoint, then running the user container w/ the additional pre-run/post-run hooks.  The addition of this image enables the removal of init containers as per knative#521.  This was originally part of knative#470 but is now split out.

What future work remains to be done?
This PR adds the entrypoint image and release step.  The future work involved is modifying Build to stop using init container and use this entrypoint image as a way of making that possible.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant