Traffic split should only be applied after a revision is ready once. #2735
Labels
area/API
API objects and controllers
area/networking
kind/feature
Well-understood/specified features, ready for coding.
Milestone
Expected Behavior
When applying a traffic split to a service in
release
mode, I expect the traffic to be routed to the new revision only after the image has been built, a pod has been brought up and that pod is verified to work properly. In other words: When the Revision is considered Ready.Actual Behavior
The traffic split is applied right away, causing the traffic to the new revision to go into a black hole until the revision finally comes up. This is especially notable, if that involves a build, where it can take comparably long to bring the revision up.
Steps to Reproduce the Problem
Additional Info
This doesn't need to apply to service rollouts only. I'm wondering if routes themselves should have this behavior, where traffic splits are only applied to Ready revisions. More precisely, we could maybe gate this behavior via the
ContainerHealthy
condition of the revision to decouple it from scale to 0 scenarios.Having looked at it briefly, this could be a violation in terms of layering (Route controller vs. Revision controller). A more simple approach would be to only apply a split once the targeted service has endpoints available to overcome that layering violation.
The text was updated successfully, but these errors were encountered: