-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Add validation when applying task modifiers 🧐 #1479
Conversation
The following is the coverage report on pkg/.
|
d487a59
to
429bd8c
Compare
The following is the coverage report on pkg/.
|
/lgtm |
The following is the coverage report on pkg/.
|
|
8b2c221
to
78cb0cf
Compare
Task modifiers for PipelineResources add pre and post steps and sometimes Volumes to a pod spec. Adding a step or a volume that already exists will create a pod that cannot run so this commit adds validation: - If a modifier tries to add a step that already exists (i.e. the name is the same) that's an error - If a modifier tries to add a volume that already exists but the volume it references is the same, we assume that two resources need the same volume, so it's not an error, but we only add it wonce - If a modifier tries to add a volume that already exists but the volume it references is different, that means two resources need different volumes but we cant add both since the names are the same, so that's an error I encountered a problem with this while working on tektoncd#1417 (which we decided not to merge) where I tried to use two VolumeResources and there was a bug where they both had the same name, so the pod was not schedulable. I had to work backwards from the error that the pod was invalid and thought it would be much more handy to get the error earlier, so I added this.
78cb0cf
to
4540d19
Compare
The following is the coverage report on pkg/.
|
/lgtm |
The following is the coverage report on pkg/.
|
👀 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
/meow
In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: vdemeester The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/test pull-tekton-pipeline-integration-tests |
/test pull-tekton-pipeline-integration-tests |
Changes
Task modifiers for PipelineResources add pre and post steps and
sometimes Volumes to a pod spec. Adding a step or a volume that already
exists will create a pod that cannot run so this commit adds validation:
is the same) that's an error
it references is the same, we assume that two resources need the same
volume, so it's not an error, but we only add it wonce
it references is different, that means two resources need different
volumes but we cant add both since the names are the same, so that's
an error
I encountered a problem with this while working on #1417 (which we
decided not to merge) where I tried to use two VolumeResources and there
was a bug where they both had the same name, so the pod was not
schedulable. I had to work backwards from the error that the pod was
invalid and thought it would be much more handy to get the error
earlier, so I added this.
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:
See the contribution guide for more details.
Double check this list of stuff that's easy to miss:
cmd
dir, please updatethe release Task to build and release this image.
Reviewer Notes
If API changes are included, additive changes must be approved by at least two OWNERS and backwards incompatible changes must be approved by more than 50% of the OWNERS, and they must first be added in a backwards compatible way.
Release Notes