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

Use path_separated_prefix Route match #1004

Merged
merged 3 commits into from
Feb 9, 2023

Conversation

arkodg
Copy link
Contributor

@arkodg arkodg commented Feb 8, 2023

We were using prefix Route match in xds for
the PathPrefix Gateway API match defined here
https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1beta1.HTTPPathMatch

The match translates to a path_separated_prefix instead https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#config-route-v3-routematch

This should fix the HTTPRouteMatching conformance test where requests with /v2example should match / and not /v2

Fixes: #995

Signed-off-by: Arko Dasgupta arko@tetrate.io

We were using `prefix` Route match in xds for
the `PathPrefix` Gateway API match defined here
https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1beta1.HTTPPathMatch

The match translates to a `path_separated_prefix` instead
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#config-route-v3-routematch

This should fix the `HTTPRouteMatching` conformance test where requests
with `/v2example` should match `/` and not `/v2`

Fixes: envoyproxy#995

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
@arkodg arkodg requested a review from a team as a code owner February 8, 2023 22:53
@codecov-commenter
Copy link

codecov-commenter commented Feb 8, 2023

Codecov Report

Merging #1004 (8aae8f8) into main (d01daec) will decrease coverage by 0.16%.
The diff coverage is 100.00%.

📣 This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more

@@            Coverage Diff             @@
##             main    #1004      +/-   ##
==========================================
- Coverage   62.17%   62.02%   -0.16%     
==========================================
  Files          55       55              
  Lines        8804     8798       -6     
==========================================
- Hits         5474     5457      -17     
- Misses       2957     2967      +10     
- Partials      373      374       +1     
Impacted Files Coverage Δ
internal/gatewayapi/route.go 85.12% <100.00%> (-0.11%) ⬇️
internal/xds/translator/route.go 82.60% <100.00%> (ø)
internal/provider/kubernetes/helpers.go 79.72% <0.00%> (-5.41%) ⬇️
internal/provider/kubernetes/controller.go 50.56% <0.00%> (-0.34%) ⬇️
internal/gatewayapi/listener.go 100.00% <0.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@arkodg arkodg marked this pull request as draft February 8, 2023 23:11
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
@arkodg arkodg marked this pull request as ready for review February 9, 2023 01:38
Copy link
Contributor

@zirain zirain left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@arkodg arkodg merged commit c26d894 into envoyproxy:main Feb 9, 2023
@arkodg arkodg deleted the path-seperated-prefix branch February 9, 2023 01:48
@danehans danehans added this to the 0.3.0 milestone Feb 9, 2023
@danehans danehans added kind/bug Something isn't working area/translator Issues related to Gateway's translation service, e.g. translating Gateway APIs into the IR. priority/high Label used to express the "high" priority level labels Feb 9, 2023
arkodg added a commit to arkodg/gateway that referenced this pull request Feb 10, 2023
* Use `path_separated_prefix` Route match

We were using `prefix` Route match in xds for
the `PathPrefix` Gateway API match defined here
https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1beta1.HTTPPathMatch

The match translates to a `path_separated_prefix` instead
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#config-route-v3-routematch

This should fix the `HTTPRouteMatching` conformance test where requests
with `/v2example` should match `/` and not `/v2`

Fixes: envoyproxy#995

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* rewrite empty match case

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* use prefix match for `/`

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

---------

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
(cherry picked from commit c26d894)
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Xunzhuo pushed a commit to Xunzhuo/gateway that referenced this pull request Feb 10, 2023
* Use `path_separated_prefix` Route match

We were using `prefix` Route match in xds for
the `PathPrefix` Gateway API match defined here
https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1beta1.HTTPPathMatch

The match translates to a `path_separated_prefix` instead
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#config-route-v3-routematch

This should fix the `HTTPRouteMatching` conformance test where requests
with `/v2example` should match `/` and not `/v2`

Fixes: envoyproxy#995

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* rewrite empty match case

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* use prefix match for `/`

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

---------

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
(cherry picked from commit c26d894)
Signed-off-by: bitliu <bitliu@tencent.com>
Xunzhuo added a commit that referenced this pull request Feb 10, 2023
* fix: incorrect command in release schedule (#973)

* chore: rename release-notes v0.3.0-rc1.yaml to v0.3.0-rc.1.yaml

Signed-off-by: bitliu <bitliu@tencent.com>

* fix: incorrect command in release schedule

Signed-off-by: bitliu <bitliu@tencent.com>

---------

Signed-off-by: bitliu <bitliu@tencent.com>
(cherry picked from commit 7639637)
Signed-off-by: bitliu <bitliu@tencent.com>

* xds: Deprecated http2_protocol_options (#974)

* xds: Deprecated http2_protocol_options

Signed-off-by: hejianpeng <hejianpeng2@huawei.com>
(cherry picked from commit 4a04915)
Signed-off-by: bitliu <bitliu@tencent.com>

* Use HTTP1.1 to connect to upstream jwks endpoint (#977)

Use HTTP1.1 to connec to upstream jwks endpoint

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
(cherry picked from commit 82e7672)
Signed-off-by: bitliu <bitliu@tencent.com>

* Add status in HTTPRoute when Ratelimit is disabled (#982)

* Add status in HTTPRoute when Ratelimit is disabled

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
(cherry picked from commit ebb902b)
Signed-off-by: bitliu <bitliu@tencent.com>

* build(deps): bump actions/deploy-pages from 1.2.3 to 1.2.4 (#984)

Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](actions/deploy-pages@v1.2.3...v1.2.4)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit 1bea44e)
Signed-off-by: bitliu <bitliu@tencent.com>

* build(deps): bump sigs.k8s.io/controller-runtime from 0.14.2 to 0.14.4 (#985)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.14.2 to 0.14.4.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/master/RELEASE.md)
- [Commits](kubernetes-sigs/controller-runtime@v0.14.2...v0.14.4)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit fadc142)
Signed-off-by: bitliu <bitliu@tencent.com>

* fix function names for RL Infra (#976)

The create and delete function names were incorrectly swapped.

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
(cherry picked from commit 265c419)
Signed-off-by: bitliu <bitliu@tencent.com>

* Add docs for GRPCRoute (#969)

* Add docs for GRPCRoute

Fixes: #642

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
(cherry picked from commit 3516d10)
Signed-off-by: bitliu <bitliu@tencent.com>

* align wellknown package (#981)

Signed-off-by: hejianpeng <hejianpeng2@huawei.com>
(cherry picked from commit eec43d2)
Signed-off-by: bitliu <bitliu@tencent.com>

* Plug in rate limit service URL into xds cluster (#983)

* Plug in rate limit service URL into xds cluster

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* more guardrails

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* set to grpcPort and pin image

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
(cherry picked from commit 1b26380)
Signed-off-by: bitliu <bitliu@tencent.com>

* Adds JWT Authn User Docs (#991)

Signed-off-by: danehans <daneyonhansen@gmail.com>
(cherry picked from commit 2a431c1)
Signed-off-by: bitliu <bitliu@tencent.com>

* user docs for global rate limit (#989)

* user docs for global rate limit

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
(cherry picked from commit ab47d2e)
Signed-off-by: bitliu <bitliu@tencent.com>

* docs: add ref to global ratelimit (#999)

Signed-off-by: bitliu <bitliu@tencent.com>
(cherry picked from commit 5115330)
Signed-off-by: bitliu <bitliu@tencent.com>

* Update gateway-api to v0.6.1 (#1003)

https://github.com/kubernetes-sigs/gateway-api/releases/tag/v0.6.1

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
(cherry picked from commit d01daec)
Signed-off-by: bitliu <bitliu@tencent.com>

* Add GRPCRoute to SupportedKinds (#990)

Fixes: #950

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
(cherry picked from commit beb6eae)
Signed-off-by: bitliu <bitliu@tencent.com>

* Use `path_separated_prefix` Route match (#1004)

* Use `path_separated_prefix` Route match

We were using `prefix` Route match in xds for
the `PathPrefix` Gateway API match defined here
https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1beta1.HTTPPathMatch

The match translates to a `path_separated_prefix` instead
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#config-route-v3-routematch

This should fix the `HTTPRouteMatching` conformance test where requests
with `/v2example` should match `/` and not `/v2`

Fixes: #995

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* rewrite empty match case

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* use prefix match for `/`

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

---------

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
(cherry picked from commit c26d894)
Signed-off-by: bitliu <bitliu@tencent.com>

* Adds API Docs Tooling (#980)

Signed-off-by: danehans <daneyonhansen@gmail.com>
(cherry picked from commit d5a5b25)
Signed-off-by: bitliu <bitliu@tencent.com>

* Updates API godocs for improved markdown rendering (#1010)

Updates API godocs for improved html rendering

Signed-off-by: danehans <daneyonhansen@gmail.com>
(cherry picked from commit b43574a)
Signed-off-by: bitliu <bitliu@tencent.com>

* chore: bump testdata to gwapi v0.6.1 (#1011)

Signed-off-by: bitliu <bitliu@tencent.com>
(cherry picked from commit f39b025)
Signed-off-by: bitliu <bitliu@tencent.com>

* conformance: enable GatewayClassObservedGenerationBump (#896)

Signed-off-by: bitliu <bitliu@tencent.com>
(cherry picked from commit b668002)
Signed-off-by: bitliu <bitliu@tencent.com>

* Run all conformance tests except redirect tests (#1014)

Redirect tests are failing due to a possible issue
with the way upstream conformance tests have made assumptions
Skipping them for now until below issues are resolved

#992
#993
#994

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
(cherry picked from commit 38a6ddd)
Signed-off-by: bitliu <bitliu@tencent.com>

* remove empty route error check in auth xds logic (#1019)

the Xds translator should not error out when the IR routes
are empty

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
(cherry picked from commit 821b7d5)
Signed-off-by: bitliu <bitliu@tencent.com>

* Removes GatewayObservedGenerationBump and HTTPRouteObservedGenerationBump Tests (#1021)

(cherry picked from commit d016a66)
Signed-off-by: bitliu <bitliu@tencent.com>

* Add Gateway API support doc (#1017)

add gatewayapi support doc

Signed-off-by: AliceProxy <alicewasko@datawire.io>
(cherry picked from commit a33e627)
Signed-off-by: bitliu <bitliu@tencent.com>

* Adds Cherry-Pick Steps to Release Doc (#1018)

Signed-off-by: danehans <daneyonhansen@gmail.com>
(cherry picked from commit 3d8120e)
Signed-off-by: bitliu <bitliu@tencent.com>

* update to validate 1.26 (#1020)

* update to validate 1.26

Signed-off-by: Held, Jarad <jaradheld@gmail.com>

* correct the tag for kubernetes version for comformance tests

Signed-off-by: Held, Jarad <jaradheld@gmail.com>

---------

Signed-off-by: Held, Jarad <jaradheld@gmail.com>
(cherry picked from commit 6bf8617)
Signed-off-by: bitliu <bitliu@tencent.com>

* Bumps Compatibility Matrix for v0.3 (#1002)

Signed-off-by: danehans <daneyonhansen@gmail.com>
(cherry picked from commit d7a2e19)
Signed-off-by: bitliu <bitliu@tencent.com>

* update gateway api support doc (#1022)

* add note about not supported `filters` for `HTTPBackendRef`
* rm `extensionRef` support for `GRPCRoute`
* move the link under docs/latest

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
(cherry picked from commit 9991359)
Signed-off-by: bitliu <bitliu@tencent.com>

* release(v0.3.0): add release notes and release announcement (#1013)

* release(v0.3.0): add release notes and release announcement

Signed-off-by: bitliu <bitliu@tencent.com>

* update

Signed-off-by: bitliu <bitliu@tencent.com>

---------

Signed-off-by: bitliu <bitliu@tencent.com>
(cherry picked from commit e55c15f)
Signed-off-by: bitliu <bitliu@tencent.com>

* release: cut v0.3.0 versioned docs (#1025)

Signed-off-by: bitliu <bitliu@tencent.com>
(cherry picked from commit 5b316b4)
Signed-off-by: bitliu <bitliu@tencent.com>

---------

Signed-off-by: bitliu <bitliu@tencent.com>
Signed-off-by: hejianpeng <hejianpeng2@huawei.com>
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: danehans <daneyonhansen@gmail.com>
Signed-off-by: AliceProxy <alicewasko@datawire.io>
Signed-off-by: Held, Jarad <jaradheld@gmail.com>
Co-authored-by: zirain <hejianpeng2@huawei.com>
Co-authored-by: Arko Dasgupta <arkodg@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daneyon Hansen <daneyonhansen@gmail.com>
Co-authored-by: Alice Wasko <alicewasko@datawire.io>
Co-authored-by: Jarad <76065018+jcheld@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/translator Issues related to Gateway's translation service, e.g. translating Gateway APIs into the IR. kind/bug Something isn't working priority/high Label used to express the "high" priority level
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Enable HTTPRouteMatching conformance test
4 participants