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

Design: Ensure same sources/inputs used throughout pipeline #11

Closed
bobcatfish opened this issue Sep 7, 2018 · 2 comments
Closed

Design: Ensure same sources/inputs used throughout pipeline #11

bobcatfish opened this issue Sep 7, 2018 · 2 comments
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.

Comments

@bobcatfish
Copy link
Collaborator

The work for this task is to design this feature and present one or more proposals (before implementing).

Expected Behavior

If you create a PipelineRun which executes against a particular branch/commit/etc., you want to be certain that the same branch/commit etc is used all the way through.

For example if your pipeline runs against master, but between two Tasks in your Pipeline, master is updated, you want subsequent Tasks to continue using the same commit they started using.

Additionally, as pointed out by @pivotal-nader-ziada in #2, we need to be sure that when one Task creates an artifact such as an image, that subsequent steps that use that image must be guaranteed to run against the correct image (e.g. if the image is identified using only tags, the tag could be pushed to by something between the steps - one possible way to circumvent this is to use digests).

Actual Behavior

Nothing ensures this at the moment. It should be possible to construct a Pipeline that will meet these criteria, but if the author if the Pipeline makes a mistake, there is nothing verifying that the same sources and inputs are used throughout.

Additional Info

Concourse solves this problem, the person investigating this design might want to check out how they solve this (e.g. ping @jchesterpivotal :D)

@bobcatfish bobcatfish mentioned this issue Sep 7, 2018
@bobcatfish bobcatfish added this to To do in Pipeline CRD via automation Sep 7, 2018
This was referenced Sep 7, 2018
@bobcatfish bobcatfish moved this from To do to Ice box in Pipeline CRD Sep 11, 2018
@bobcatfish bobcatfish added the help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. label Sep 12, 2018
@jchesterpivotal
Copy link

I think my most immediate sense is that what you're describing here isn't really a Pipeline and a PipelineRun, it's a Job and a Build. The analogy to physical pipelines means that there ought to be multiple things in the pipeline simultaneously at separate stages of processing. The design here feels more like a traditional Travis-y style of construction.

@bobcatfish
Copy link
Collaborator Author

I'm going to close this issue and consider it fixed by @shashwathi and @pivotal-nader-ziada 's work in #39 - we now are declaring resources in a separate CRD which will control the version they run at, and also specifying passedConstraints explicitly to ensure the same resources are used between Tasks

Pipeline CRD automation moved this from Ice box to Done Sep 20, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
Projects
No open projects
Pipeline CRD
  
Done
Development

No branches or pull requests

2 participants