KB-11 Suspected, not reproduced
Without health assessment, lastHealthy can point to a render that was never applied
Behavior#
Without spec.healthAssessment, the rollout verdict is always Healthy. convoy sets
status.lastHealthy to the render of each attempt. This includes a render that the dry run or
the apply rejected, and that convoy never stored.
Effect#
If you add a failurePolicy later, a rollback can target a render that never ran and is not in
the render store. The rollback then holds without an apply, as in KB-1.
Workaround#
Set spec.healthAssessment on Releases that can later get a failurePolicy.
Fix direction#
Advance status.lastHealthy only for a render that convoy applied.
In the code
convoy v0.9.0
internal/controller/release.(*Controller).verdictinternal/controller/release/controller.go:1424internal/controller/release.lastHealthyinternal/controller/release/controller.go:1461