envoyproxy/envoy

enhance router_check_tool to allow going through listeners as well

Open

#12,393 opened on Jul 30, 2020

View on GitHub
 (7 comments) (0 reactions) (0 assignees)C++ (5,373 forks)batch import
area/route_check_toolhelp wanted

Repository metrics

Stars
 (27,997 stars)
PR merge metrics
 (Avg merge 8d) (378 merged PRs in 30d)

Description

Currently, router_check_tool takes in a route as input. This makes the tool somewhat whitebox - the user first needs to figure out which route they care about, then they can write a test for it. Ideally, its completely black box - the user gives the full Envoy config (really just Listeners and Routes) and a set of queries, and checks the result.

This is useful as well to test complex listeners with many different filter chain matches.

Alternatives considered:

  • Implement the logic for determining a route from the request ourselves. This would involve re-implementing the filter chain/listener matching logic which is likely to be incorrect and fall out of sync
  • Use the tool as is. This doesn't mean the requirement of black box testing, relies test writers to know Envoy implementation details
  • Send real traffic against a real envoy instead. This is slower and more complex

Contributor guide