-
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
Split reconcile into prepare and reconcile #2421
Split reconcile into prepare and reconcile #2421
Conversation
fca8bbd
to
5d67a4d
Compare
5d67a4d
to
af1cbe3
Compare
7ce886b
to
9467425
Compare
/approve |
9fa0ad0
to
bb2ffb4
Compare
/test pull-tekton-pipeline-integration-tests |
bb2ffb4
to
b8ff62c
Compare
I cannot reproduce any of the integration test failures on my test cluster, even after multiple runs. I think that something in the logic that waits for events is not going well, not waiting long enough or perhaps starting to wait too soon. |
b8ff62c
to
e57c6f5
Compare
26768b7
to
7897553
Compare
aa74c56
to
cdec415
Compare
/test pull-tekton-pipeline-integration-tests |
/test pull-tekton-pipeline-build-tests |
1 similar comment
/test pull-tekton-pipeline-build-tests |
/test pull-tekton-pipeline-integration-tests |
685a28d
to
2e396a1
Compare
/test pull-tekton-pipeline-build-tests |
/test pull-tekton-pipeline-integration-tests |
2e396a1
to
cf305d6
Compare
/test pull-tekton-pipeline-integration-tests |
/test pull-tekton-pipeline-build-tests |
cf305d6
to
5e5bb4e
Compare
The current "reconcile" function does a lot of things, which means it's hard to test properly, it's hard to follow the logic and it's hard to handle all possible errors and events properly. This splits reconcile into two parts, the first one that deals preparing and validating the taskrun and all the resources it depends on, the second one that actually reconciles the TaskRun by creating the pod if required and updating the TaskRun from the pod. This adds events that were missing for error situations that happen during preparation and validation. The new events go past the burst limit of the event broadcaster, which delays some events a lot for a pipeline with a few tasks. Tweaking the default burst rate and QPS is required to pass CI. We might want to add those configs to a dedicated config map in future.
5e5bb4e
to
a963e63
Compare
|
||
correlatorOptions := record.CorrelatorOptions{ | ||
// The default burst size is 25 | ||
BurstSize: 50, |
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.
Probably fine for now but should be configurable right?
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.
Yes, I'll follow up on this
correlatorOptions := record.CorrelatorOptions{ | ||
// The default burst size is 25 | ||
BurstSize: 50, | ||
QPS: 1, |
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.
Is this the number of queries per second that we can emit? I couldn't figure out after reading the godoc for this
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.
Yes, the way I understood this is the QPS we allow after a burst
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dibyom, sbwsg 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 |
/lgtm |
Changes
The current "reconcile" function does a lot of things, which means
it's hard to test properly, it's hard to follow the logic and
it's hard to handle all possible errors and events properly.
This splits reconcile into two parts, the first one that deals
preparing and validating the taskrun and all the resources it
depends on, the second one that actually reconciles the TaskRun
by creating the pod if required and updating the TaskRun from
the pod.
This adds events that were missing for error situation that
happens during preparation and validation.
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