fix(core): run firmware upgrade migration only for running vmi#2162
Open
fix(core): run firmware upgrade migration only for running vmi#2162
Conversation
Signed-off-by: Daniil Antoshin <daniil.antoshin@flant.com>
Signed-off-by: Daniil Antoshin <daniil.antoshin@flant.com>
Signed-off-by: Daniil Antoshin <daniil.antoshin@flant.com>
Signed-off-by: Daniil Antoshin <daniil.antoshin@flant.com>
2de1e38 to
aef956a
Compare
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
Improve workload-updater migration behavior for firmware updates and increase unit-test coverage for handler decision branches.
Functional change
FirmwareHandlernow handles KVVMI read outcomes explicitly:Get(KVVMI)returnsNotFound, processing continues;Get(KVVMI)returns any other error, handler returns error;status.phase != Running, migration is not triggered.Test changes
Extended branch coverage for:
pkg/controller/workload-updater/internal/handler/firmware.gopkg/controller/workload-updater/internal/handler/nodeplacement.goCoverage after changes (
go test ./pkg/controller/workload-updater/internal/handler/... -coverprofile=/tmp/wu-handler.cover):firmware.go— 100% per function (Handle,needUpdate,isVirtControllerUpToDate,getVirtLauncherImage,Name)nodeplacement.go—Handle94.1%,Name100%,genNodePlacementSum90.0%handler— 90.5%Why do we need it, and what problem does it solve?
Previously, firmware updater could create
firmware-update-*VMOP while VMI was not running (Pending/Succeeded). This produced unnecessary failed migration VMOPs and misleading operation status.Also, KVVMI absence should not block processing when all other preconditions are satisfied.
Additional tests reduce regression risk in workload-updater branching logic.
What is the expected result?
FirmwareUpToDate=False.Running, firmware updater does not createfirmware-update-*VMOP.NotFound) and other conditions are met, migration flow continues.Getreturns non-NotFounderror, handler returns error.Checklist
Changelog entries