Closed juliev0 closed 4 weeks ago
close this as it should be covered by #181
@xdevxy we are currently not doing any field-specific checks for isbsvc at all, so that's why this issue is here (because of that, I actually updated the wording of https://github.com/numaproj/numaplane/issues/181 to just be for Pipeline fields (sorry for not mentioning))
We want to make the isbservicerollout_controller more similar to pipelinerollout_controller.
The pseudocode should be:
// determine if we're trying to update the ISBService spec, and if so, is it a simple change that would be "direct apply" or is it a non-trivial change that would require PPND or Progressive?
isbServiceNeedsToUpdate, upgradeStrategyType, err := usde.ResourceNeedsUpdating
Is there currently an in-progress-strategy set for this ISBServiceRollout?
If not, do we need to set it?:
If the user-prefered strategy is PPND && upgradeStrategyType==PPND: set in-progress-strategy to PPND
If the user-prefered strategy is Progressive && upgradeStrategyType==Progressive: set in-progress-strategy to Progressive
Now do whatever the in-progress-strategy says to do
Summary
Integrate the USDE logic to derive an upgrade strategy into the reconciliation process of the ISBServiceRollout for the purpose of selectively handling different strategies for isbsvc field changes.
Relates to this
Similar to PipelineRolloutController, the ISBServiceRolloutController should have an
InProgressManager
, so that it can maintain the current strategy that's in Progress (Progressive, PPND, or none) such that if 2 subsequent requests come in, or if the user's preferred strategy changes, it will finish what it's in the middle of doing first.Message from the maintainers:
If you wish to see this enhancement implemented please add a 👍 reaction to this issue! We often sort issues this way to know what to prioritize.