-
Notifications
You must be signed in to change notification settings - Fork 551
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
Retry CRD updates on conflicts #2293
Retry CRD updates on conflicts #2293
Conversation
Signed-off-by: Joe Lanford <[email protected]>
/lgtm |
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.
/approve
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: joelanford, njhale 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 |
/cherry-pick release-4.7 |
@joelanford: #2293 failed to apply on top of branch "release-4.7":
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. |
Signed-off-by: Joe Lanford <[email protected]>
Signed-off-by: Joe Lanford <[email protected]>
Description of the change:
Always retry CRD updates when conflicts occur.
Motivation for the change:
Conflicts are common in eventually consistent controllers. Reconciliation should be tolerant to conflicts and retry updates with a backoff in the face of conflicts without requiring a full re-reconciliation of the object.
Currently, when a CRD update fails while reconciling an install plan due to a conflict, the install plan is permanantly marked as failed, which forces the user to delete the install plan and try again.
This PR treats conflicts as transient errors and performs retries with a default backoff.
Note that if a CRD update consistently results in conflict errors, it will still eventually be marked as failed, but this should happen extremely rarely (if ever) in practice.
Reviewer Checklist
/doc