Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run conformance tests with expression router enabled #4352

Closed
1 of 2 tasks
mlavacca opened this issue Jul 14, 2023 · 1 comment · Fixed by #4359
Closed
1 of 2 tasks

Run conformance tests with expression router enabled #4352

mlavacca opened this issue Jul 14, 2023 · 1 comment · Fixed by #4359
Assignees
Labels
area/gateway-api Relating to upstream Kubernetes SIG Networking Gateway API
Milestone

Comments

@mlavacca
Copy link
Member

Is there an existing issue for this?

  • I have searched the existing issues

Problem Statement

#4296 implemented HTTPRoute priority translation when using Kong with the expression router. This was mandatory to fix the HTTPRouteHeaderMatching conformance test.
As it is possible to see from #4351, where the expression router has been enabled in conformance tests, the new HTTPRoute translation and the priority setting fixed such a test, but broke a bunch of others:

  • HTTPExactPathMatching
  • HTTPRouteHostnameIntersection
  • HTTPRouteMatchingAcrossRoutes
  • HTTPRouteMatching
  • HTTPRoutePathMatchOrder
  • HTTPRouteRequestHeaderModifier

Proposed Solution

Debug test by test and figure out what's the reason why they are failing. The conformance tests logs for such failures can be found here.

Additional information

The following are the failing test cases:

  • HTTPExactPathMatching (subset of cases)
    • 1_request_to_'/two'_should_go_to_infra-backend-v2
    • 0_request_to_'/one'_should_go_to_infra-backend-v1
  • HTTPRouteHostnameIntersection (subset of cases)
    • 1_request_to_'very.specific.com:1234/s1'_should_go_to_infra-backend-v1
    • 13_request_to_'very.specific.com/s3'_should_go_to_infra-backend-v3
    • 8_request_to_'foo.bar.wildcard.io/s2'_should_go_to_infra-backend-v2
    • 6_request_to_'foo.wildcard.io/s2'_should_go_to_infra-backend-v2
    • 7_request_to_'bar.wildcard.io/s2'_should_go_to_infra-backend-v2
    • 0_request_to_'very.specific.com/s1'_should_go_to_infra-backend-v1
    • 20_request_to_'foo.bar.anotherwildcard.io/s4'_should_go_to_infra-backend-v1
    • 18_request_to_'foo.anotherwildcard.io/s4'_should_go_to_infra-backend-v1
    • 19_request_to_'bar.anotherwildcard.io/s4'_should_go_to_infra-backend-v1
  • HTTPRouteMatchingAcrossRoutes (subset of cases)
    • 6_request_to_'example.com/v2/example'_should_go_to_infra-backend-v2
    • 4_request_to_'example.com/v2'_should_go_to_infra-backend-v2
  • HTTPRouteMatching (subset of cases)
    • 6_request_to_'/v2/'_should_go_to_infra-backend-v2
    • 3_request_to_'/v2'_should_go_to_infra-backend-v2
    • 4_request_to_'/v2/example'_should_go_to_infra-backend-v2
  • HTTPRoutePathMatchOrder (all cases)
    • 0_request_to_'/match/exact/one'_should_go_to_infra-backend-v3
    • 5_request_to_'/match/any'_should_go_to_infra-backend-v3
    • 4_request_to_'/match/prefix/any'_should_go_to_infra-backend-v1
    • 1_request_to_'/match/exact'_should_go_to_infra-backend-v2
    • 2_request_to_'/match'_should_go_to_infra-backend-v1
    • 3_request_to_'/match/prefix/one/any'_should_go_to_infra-backend-v2
  • HTTPRouteRequestHeaderModifier (all cases)
    • 6_request_to_'/case-insensitivity'_with_headers_should_go_to_infra-backend-v1
    • 2_request_to_'/add'_with_headers_should_go_to_infra-backend-v1
    • 3_request_to_'/add'_with_headers_should_go_to_infra-backend-v1
    • 5_request_to_'/multiple'_with_headers_should_go_to_infra-backend-v1
    • 4_request_to_'/remove'_with_headers_should_go_to_infra-backend-v1
    • 1_request_to_'/set'_with_headers_should_go_to_infra-backend-v1
    • 0_request_to_'/set'_with_headers_should_go_to_infra-backend-v1

Acceptance Criteria

  • All the core HTTP conformance tests pass with the expression router enabled.
@mlavacca mlavacca added the area/gateway-api Relating to upstream Kubernetes SIG Networking Gateway API label Jul 14, 2023
@randmonkey randmonkey self-assigned this Jul 17, 2023
@randmonkey randmonkey added this to the KIC v2.11.0 milestone Jul 17, 2023
@randmonkey
Copy link
Contributor

The errors are caused by a missing StripPath: false setting in translated Kong routes. will fix in #4359.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/gateway-api Relating to upstream Kubernetes SIG Networking Gateway API
Projects
None yet
2 participants