feature: implement the ListenerSets experimental API#7998
feature: implement the ListenerSets experimental API#7998zhaohuabing merged 38 commits intoenvoyproxy:mainfrom
Conversation
✅ Deploy Preview for cerulean-figolla-1f9435 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #7998 +/- ##
==========================================
- Coverage 73.84% 73.69% -0.15%
==========================================
Files 237 239 +2
Lines 35847 36311 +464
==========================================
+ Hits 26471 26760 +289
- Misses 7512 7660 +148
- Partials 1864 1891 +27 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
bf1ce64 to
9811829
Compare
7a6cfe1 to
1b7027b
Compare
Should we include extra status handling to communicate lack of support for these? Edit: |
cc3858a to
115ca97
Compare
Added support to all the other route types in this PR. |
6093336 to
8d5b078
Compare
5feb815 to
4018ea0
Compare
|
|
||
| // Drop Status to reduce memory | ||
| xls.Status = gwapixv1a1.ListenerSetStatus{} | ||
| resourceMap.allAssociatedNamespaces.Insert(xls.Namespace) |
There was a problem hiding this comment.
we should insert in the resoureTree only when it doesnt exist in the resourceMap, this is what we've done for other resources afaik
There was a problem hiding this comment.
It returns early at line 1879 to avoid unnecessary processing.
line 1879
if resourceMap.allAssociatedXListenerSets.Has(key) {
continue
}
for _, listener := range xls.Spec.Listeners {
....
Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com>
Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com>
Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com>
Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com>
Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com>
Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com>
Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com>
6e068f8 to
be2689a
Compare
|
/retest |
|
LGTM, thanks Great work! |
|
Can we make the e2e's more reliable? |
|
/retest |
jukie
left a comment
There was a problem hiding this comment.
LGTM thanks, we can improve the E2Es before full release
* implement XListenerSet Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * add e2e test Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * update status Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * add debug info Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * fix routes Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * fix lint Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * support GRPCRoute Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * add https test Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * fix https test Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * fix test Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * update provider Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * update e2e Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * update gateway api translator Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * simplify status udpate Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * update xlistenerset status Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * update release note Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * remove debugging log Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * rename API Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * add gateway api test for UDPRoute, TCPRoute, and TLSRoute Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * feat(kubernetes): add XListenerSet support for TCPRoute, TLSRoute, and UDPRoute fix lint Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> fix test Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> add TCPRoute test Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * add udp test Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * polish code Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * fix lint Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * add tls test Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * add debug info Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * add debug info Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * add debug info Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * fix test Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * fix tls route Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * remove debugging log Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * fixt test Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * fix gateway name extraction logic Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * add test for no matching section Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * fix test Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * address comments Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * fix gen Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> --------- Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> Signed-off-by: Sadmi Bouhafs <sadmibouhafs@gmail.com>
This PR implements the experimental
XListenerSetAPI, as proposed in GEP-1713, allowing listeners to be defined in a separate resource and attached to a Gateway. This feature is enabled via theXListenerSetfeature flag in theEnvoyGatewayconfiguration.Changes
XListenerSetresources.XListenerSetresources are attached to a parent Gateway, and their listeners are processed and merged with the Gateway's own listeners.XListenerSetand its listeners is updated to reflect whether they have been accepted and programmed.xlistenersetsandxlistenersets/statushave been added to the Helm charts andconfig/rbac/role.yaml.XListenerSetfunctionality for HTTPRoute(HTTP and HTTPS), gRPCRoute, TLSRoute, TCPRoute and UDPRoute.TODOs
XListenerSetasTargetReffor xPolicies.XListenerSetsto theGatewaystatus - depend on the next Gateway API release.To keep this PR focused, these TODOs will be tracked in separate issues and implemented in follow-up PRs.
implement: #5323
release note: yes