-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Describe the feature
Please reconcile to a ConditionReady to ConditionFalse only when it's clear that multi-reconcile action fails overall. The use case is when a user creates a Service then multiple other dependency resources are created in parallel, like a Route and a Revision. However, the route can be only ready when the revision is ready, so there is the chance of a race. Currently, when the route can't find the referenced revision because of this race, the overall Service goes from ConditionUnknown to ConditionFalse for the ready condition, but switches to ConditionTrue as soon as the revision is ready and the route is reconciled.
This confuses clients who are waiting synchronously on a service creation (or update) and return immediately with "ok" for a transition unknown -> true, or an error for unknown -> false. In the situation above this would falsely detect an error as the overall action very quickly reconciles to ready == true (but with the temporary false state).
For the Knative client, this caused a 50% flake in the E2E tests which is solved now by introducing an error window to wait on an eventual true ready state.
It would be very helpful also for other clients if exercising this kind of patience on the server-side, so that the first transition to false indicates the error of a combined reconciliation step.
// cc: @dprotaso @evankanderson