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
This was referenced Sep 7, 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

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
None yet
Development

No branches or pull requests

2 participants