-
Notifications
You must be signed in to change notification settings - Fork 690
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
internal/dag: Fix comparison of include match conditions (#4931)
Previously includeMatchConditionsIdentical was just comparing adjacent includes and comparing conditions element by element rather than as a whole, ANDed together Also don't exit processor early so other routes etc. are configured to preserve traffic as much as possible. This behavior is more similar to how other types of invalid match conditions are processed Signed-off-by: Sunjay Bhatia <[email protected]>
- Loading branch information
1 parent
2664a86
commit bbc88a1
Showing
6 changed files
with
283 additions
and
37 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
## Fix handling of duplicate HTTPProxy Include Conditions | ||
|
||
Duplicate include conditions are now correctly identified and HTTPProxies are marked with the condition `IncludeError` and reason `DuplicateMatchConditions`. | ||
Previously the HTTPProxy processor was only comparing adjacent includes and comparing conditions element by element rather than as a whole, ANDed together. | ||
|
||
In addition, the previous behavior when duplicate Include Conditions were identified was to throw out all routes, including valid ones, on the offending HTTPProxy. | ||
Any referenced child HTTPProxies were marked as `Orphaned` as a result, even if they were included correctly. | ||
With this change, all valid Includes and Route rules are processed and programmed in the data plane, which is a difference in behavior from previous releases. | ||
An Include is deemed to be a duplicate if it has the exact same match Conditions as an Include that precedes it in the list. | ||
Only child HTTPProxies that are referenced by a duplicate Include and not in any other valid Include are marked as `Orphaned` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.