✨ WIP Improved error handling around installedBundle and reconcile modularization#1030
Closed
bentito wants to merge 15 commits intooperator-framework:mainfrom
Closed
✨ WIP Improved error handling around installedBundle and reconcile modularization#1030bentito wants to merge 15 commits intooperator-framework:mainfrom
bentito wants to merge 15 commits intooperator-framework:mainfrom
Conversation
Signed-off-by: Brett Tofel <btofel@redhat.com>
Signed-off-by: Brett Tofel <btofel@redhat.com>
Signed-off-by: Brett Tofel <btofel@redhat.com>
Signed-off-by: Brett Tofel <btofel@redhat.com>
Signed-off-by: Brett Tofel <btofel@redhat.com>
Signed-off-by: Brett Tofel <btofel@redhat.com>
Signed-off-by: Brett Tofel <btofel@redhat.com>
Signed-off-by: Brett Tofel <btofel@redhat.com>
Signed-off-by: Brett Tofel <btofel@redhat.com>
Signed-off-by: Brett Tofel <btofel@redhat.com>
Signed-off-by: Brett Tofel <btofel@redhat.com>
Preserve installedBundle on error, report partial progress, use "Progressing" status. Modularize into helper functions. Use Helm secret as source of truth for installed bundle. Update status at each step, clear "Progressing" on success/match. Signed-off-by: Brett Tofel <btofel@redhat.com>
✅ Deploy Preview for olmv1 ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
Signed-off-by: Brett Tofel <btofel@redhat.com>
|
PR needs rebase. DetailsInstructions 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-sigs/prow repository. |
4 tasks
Contributor
|
@bentito are you going to rebase this? |
Contributor
Author
I'm waiting to see about Bryce's refactoring from last week |
Contributor
|
closing this as stale - please re-open if we still want to get this down =D |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
WIP, because:
I'd like feedback on whether the reconciler() loop modularization seems good and whether the proposed logic flow changes match up with Improve Error Handling in InstalledBundle Determination and Logic #1027 , which is restated below.
Unit tests are still broken. Just looking for feedback on overall approach.
This branch/PR cherry picks all the new commits (as of now) from branch/PR:
✨ Cleaner Condition Types & Reasons #1007
vs. 1007 this PR also merged a slightly updated reconciler() from main around preflight implementation, so we should check logic still as intended
State Preservation: The installedBundle information is fetched early on and preserved throughout the reconciliation process. Even if errors occur later, the status accurately reflects the previously installed bundle.
Partial Progress Reporting: Each step has its own error handling and status update logic. If an error occurs in one step, the status is updated accordingly (e.g., setResolvedStatusConditionFailed, setInstalledStatusConditionFailed), but the reconciliation process continues where possible. This ensures that partial progress is reported.
Progressing Status: The setInstalledStatusConditionProgressing function is used to indicate when a new version is resolved but not yet installed. The clearInstalledStatusConditionProgressing function is called when the installation is complete or if the resolved and installed bundles match.
Status Updates at Each Step: Throughout the reconcile function and its helpers, status conditions are updated to reflect the progress and outcome of each step. This provides detailed information about the reconciliation process, even if errors occur.
Progressing Status: The TypeProgressing condition is used to clearly indicate when an installation or upgrade is in progress.
Reviewer Checklist