Clarification on documentation FAQ: downtime window
The documentation states the following:
Why is there a window of downtime during the canary initializing process when analysis is disabled?
A window of downtime is the intended behavior when the analysis is disabled. This allows instant rollback and also mimics the way a Kubernetes deployment initialization works. To avoid this, enable the analysis (skipAnalysis: true), wait for the initialization to finish, and disable it afterward (skipAnalysis: false).
https://github.com/fluxcd/flagger/blob/a1e519b35204f3a47372fc3ff85c70d9ae6dbbb2/docs/gitbook/faq.md?plain=1#L71
It seems to me that in order to enable the analysis, skipAnalysis should be set to false and not true. WDYT ?
If we skip the analysis phase, that means the canary is promoted immediately instead of waiting for analysis to permit the progressive delivery promotion to proceed by shifting 5% of traffic at a time. That is what we want, skipAnalysis: true I think the documentation is correct.
I agree the language is confusing. I think the difference that is not really stated is, before initializing there is no primary, and so we must wait for promotion, as we are initializing for the first time, there is no reason to wait for analysis, so skip it.
At any other time, after initialization, setting skipAnalysis: true would result in a window of downtime for the opposite reason. Since the canary is not online yet at the time progressing begins, if we skip the analysis then, we will be routing all traffic toward the canary when it is not ready yet, obviating the point of a progressive delivery.
I don't think that I've explained it well, and I'm open to suggestions about what the language should say to express all this any better. 🤷