Skip to content

v1.17.0-beta27

Compare
Choose a tag to compare
@davidjumani davidjumani released this 13 May 20:04
· 25 commits to main since this release
0ec17c5

New Features

  • This change implements policy inheritance, specifically
    in the context of RouteOptions, such that a child route
    in a delegation chain may inherit RouteOptions from its
    ancestors. Parents higher in the hierarchy are given
    preference when merging the RouteOptions down the delegation
    chain, i.e. for a tree A->B->C the RouteOptions of A are
    prioritized first, then the RouteOptions of B augment that
    of A without overriding the options in A, then the options
    of C augment the merge of A and B without overriding fields.

Additionally, it does the following:

  • Refactors the RouteOption query API to perform merging
    and prioritization within the query.
  • Translator tests for the many scenarios of policy inheritance.
  • Converts delegation translator test to a table-driven test.
  • E2e tests to verify the inheritance and merge functionality. (solo-io/solo-projects#6161)

Fixes

  • This change updates the route sorting such that regex based matchers
    are prioritized over prefix based matchers to be consistent with
    Gloo gateway v1. The Gateway API states that the precedence of
    regex matches is implementation specific, so this change conforms
    to the API requirements.

Further, it avoids prioritizing regex based matchers based on their
lengths as this is rather abitrary. E.g., /a/b./. is longer than
/a/b./c but less specific, so it's relative order should be lower
in the sorted order but if prioritized based on length it would
appear before a more specific match. If there is a tie among
regex routes, the other precedence rules govern the relative
ordering among them. (solo-io/solo-projects#6175)