feat(policy): Adding BTP support for UDP/TCPRoute#3004
feat(policy): Adding BTP support for UDP/TCPRoute#3004guydc merged 19 commits intoenvoyproxy:mainfrom alexwo:btp_support_for_tcp_udp_routes
Conversation
Signed-off-by: Alexander Volchok <alex.volchok@sap.com>
Signed-off-by: Alexander Volchok <alex.volchok@sap.com>
…lexwo/gateway into btp_support_for_tcp_udp_routes Signed-off-by: Alexander Volchok <alex.volchok@sap.com>
Signed-off-by: Alexander Volchok <alex.volchok@sap.com>
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3004 +/- ##
==========================================
- Coverage 64.55% 64.52% -0.04%
==========================================
Files 121 121
Lines 21235 21344 +109
==========================================
+ Hits 13709 13772 +63
- Misses 6672 6706 +34
- Partials 854 866 +12 ☔ View full report in Codecov by Sentry. |
Signed-off-by: Alexander Volchok <alex.volchok@sap.com>
|
/retest |
|
Should we enforce BTP setting validation on TCP/UDP route and update the status? For example, HTTP-related settings such as |
|
Can I also please ask to add TLSRoute support too? |
|
Sounds good to me. Alternatively, we could update the status of each route to indicate which policies from the BTP are in effect, providing clarity to the user on how their route is affected. Since this functionality isn't available currently, it might be best to introduce it through a separate change. |
Sounds good. Could you please raise an issue to track this? |
|
hey @zhaohuabing we can't enforce validation here, because if the policy is applied to the Gateway, they could apply to |
| outlierDetection: {} | ||
| perConnectionBufferLimitBytes: 32768 | ||
| type: EDS | ||
| upstreamConnectionOptions: |
There was a problem hiding this comment.
the test is for listener side keep alive, how did this config come here (cluster) ?
There was a problem hiding this comment.
The TCP keep-alive setting is specified in the IR, resulting in a keep-alive configuration for the TCP listener cluster. Typically, such settings are adjusted through a traffic policy, i'm not certain if this make sense in this context.
- name: "fourth-listener"
address: "0.0.0.0"
tcpKeepalive:
probes: 10
port: 10083
destination:
name: "tcp-route-dest"
settings:
- endpoints:
- host: "1.2.3.4"
port: 50000
There was a problem hiding this comment.
can you raise a follow up issue for this ?
| } | ||
|
|
||
| if tcpkeepalive.Probes != nil { | ||
| if tcpkeepalive.IdleTime != nil { |
| if t.MergeGateways && gatewayName != policyTarget { | ||
| continue | ||
| } | ||
|
|
There was a problem hiding this comment.
you probably also need some code similar to L500-510
// If any of the features are already set, it means that a more specific
// policy(targeting xRoute) has already set it, so we skip it.
// TODO: zhaohuabing group the features into a struct and check if all of them are set
if r.RateLimit != nil || r.LoadBalancer != nil ||
r.ProxyProtocol != nil || r.HealthCheck != nil ||
r.CircuitBreaker != nil || r.FaultInjection != nil ||
r.TCPKeepalive != nil || r.Retry != nil ||
r.Timeout != nil {
continue
}
| continue | ||
| } | ||
|
|
||
| udp.LoadBalancer = lb |
|
thanks for adding support for this @alexwo ! |
Should we enforce validation when the target is a xRoute? It would be confusing if HTTP-related setting is configured for TCP/UDP route. And it would be nice if we could allow users to know which settings in the BTP can be applied to which type of route. Probably add some comments to BTP settings? |
|
/retest |
1 similar comment
|
/retest |
|
/retest |
1 similar comment
|
/retest |
|
/retest |
Signed-off-by: Alexander Volchok <alex.volchok@sap.com>
|
/retest |
guydc
left a comment
There was a problem hiding this comment.
LGTM, thanks for fixing the coverage check!
|
/retest |
|
/retest |
|
/retest |
|
I just migrated to the latest commit and it works with TLSRoute! Thanks! |
* Adding BTP support for UDP/TCP Routes Signed-off-by: Alexander Volchok <alex.volchok@sap.com> * fixining lint Signed-off-by: Alexander Volchok <alex.volchok@sap.com> * fix IdleTime check Signed-off-by: Alexander Volchok <alex.volchok@sap.com> * adding missing generates Signed-off-by: Alexander Volchok <alex.volchok@sap.com> * fixing code review comments Signed-off-by: Alexander Volchok <alex.volchok@sap.com> * incresing code coverage Signed-off-by: Alexander Volchok <alex.volchok@sap.com> --------- Signed-off-by: Alexander Volchok <alex.volchok@sap.com> Co-authored-by: zirain <zirain2009@gmail.com> Co-authored-by: Huabing Zhao <zhaohuabing@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com>
* build(deps): bump github.com/prometheus/common from 0.50.0 to 0.51.1 (#3010) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.50.0 to 0.51.1. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](prometheus/common@v0.50.0...v0.51.1) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Huabing Zhao <zhaohuabing@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * docs: fix squash link (#3013) Signed-off-by: zirain <zirain2009@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * api: support IdleTimeout in clientTrafficPolicy Signed-off-by: Yael Shechter <yael.shechter@sap.com> * build(deps): bump fortio.org/fortio from 1.63.4 to 1.63.5 (#3011) Bumps [fortio.org/fortio](https://github.com/fortio/fortio) from 1.63.4 to 1.63.5. - [Release notes](https://github.com/fortio/fortio/releases) - [Commits](fortio/fortio@v1.63.4...v1.63.5) --- updated-dependencies: - dependency-name: fortio.org/fortio 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> Co-authored-by: Huabing Zhao <zhaohuabing@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * ci: trigger docs action (#3017) Signed-off-by: zirain <zirain2009@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * ci: fix cherrypick permission (#2985) Signed-off-by: zirain <zirain2009@gmail.com> Co-authored-by: Huabing Zhao <zhaohuabing@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * fix: set path prefix for http ext auth service (#3018) Signed-off-by: huabing zhao <zhaohuabing@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * feat: add Chinese language support for doc site (#2532) * Add Chinese support for doc site Signed-off-by: Wilson Wu <iwilsonwu@gmail.com> * Add zh i18n for menus Signed-off-by: Wilson Wu <iwilsonwu@gmail.com> * Add zh content placeholders Signed-off-by: Wilson Wu <iwilsonwu@gmail.com> * Fix about zh page Signed-off-by: Wilson Wu <iwilsonwu@gmail.com> * Apply suggestions from code review Co-authored-by: Huabing Zhao <zhaohuabing@gmail.com> Signed-off-by: Wilson Wu <iwilsonwu@gmail.com> * docs: `%s/Application/API/g` (#2929) Signed-off-by: Wilson Wu <iwilsonwu@gmail.com> * remove old version for zh content Signed-off-by: Wilson Wu <iwilsonwu@gmail.com> * Update the latest version link Signed-off-by: Wilson Wu <iwilsonwu@gmail.com> * Fix default content dir Signed-off-by: Wilson Wu <iwilsonwu@gmail.com> * Translate landing page and fix broken link Signed-off-by: Wilson Wu <iwilsonwu@gmail.com> * Fix broken link Signed-off-by: Wilson Wu <iwilsonwu@gmail.com> * Add a contribution page Signed-off-by: Wilson Wu <iwilsonwu@gmail.com> --------- Signed-off-by: Wilson Wu <iwilsonwu@gmail.com> Co-authored-by: Huabing Zhao <zhaohuabing@gmail.com> Co-authored-by: Arko Dasgupta <arkodg@users.noreply.github.com> Co-authored-by: zirain <zirain2009@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * feat(translator): implement connection limit (#2952) * implement connection limit Signed-off-by: Guy Daich <guy.daich@sap.com> * fix lint Signed-off-by: Guy Daich <guy.daich@sap.com> * fix lint 2 Signed-off-by: Guy Daich <guy.daich@sap.com> * fix ir, coverage Signed-off-by: Guy Daich <guy.daich@sap.com> * fix lint 3 Signed-off-by: Guy Daich <guy.daich@sap.com> * open more connection in e2e Signed-off-by: Guy Daich <guy.daich@sap.com> * fix error type Signed-off-by: Guy Daich <guy.daich@sap.com> * add additional connections Signed-off-by: Guy Daich <guy.daich@sap.com> * make limit value required Signed-off-by: Guy Daich <guy.daich@sap.com> * add error-flow unit test Signed-off-by: Guy Daich <guy.daich@sap.com> * fix lint 4 Signed-off-by: Guy Daich <guy.daich@sap.com> * assert policy accepted in test Signed-off-by: Guy Daich <guy.daich@sap.com> * rename limit => connectionLimit Signed-off-by: Guy Daich <guy.daich@sap.com> --------- Signed-off-by: Guy Daich <guy.daich@sap.com> Co-authored-by: zirain <zirain2009@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * docs: remove 0.1.0 from linkinator ignore list (#3015) Signed-off-by: yuluo <karashouk.pan@gmail.com> Co-authored-by: zirain <zirain2009@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * disable connection limit test (#3025) Signed-off-by: huabing zhao <zhaohuabing@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * fix: use correct connection limit attribute name in e2e, docs (#3028) fix attribute name Signed-off-by: Guy Daich <guy.daich@sap.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * docs: document patches in envoy proxy (#3027) * docs: document patches in envoy proxy Signed-off-by: Yael Shechter <yael.shechter@sap.com> * fix linting issue Signed-off-by: Yael Shechter <yael.shechter@sap.com> * fix pr comment Signed-off-by: Yael Shechter <yael.shechter@sap.com> --------- Signed-off-by: Yael Shechter <yael.shechter@sap.com> * feat(policy): Adding BTP support for UDP/TCPRoute (#3004) * Adding BTP support for UDP/TCP Routes Signed-off-by: Alexander Volchok <alex.volchok@sap.com> * fixining lint Signed-off-by: Alexander Volchok <alex.volchok@sap.com> * fix IdleTime check Signed-off-by: Alexander Volchok <alex.volchok@sap.com> * adding missing generates Signed-off-by: Alexander Volchok <alex.volchok@sap.com> * fixing code review comments Signed-off-by: Alexander Volchok <alex.volchok@sap.com> * incresing code coverage Signed-off-by: Alexander Volchok <alex.volchok@sap.com> --------- Signed-off-by: Alexander Volchok <alex.volchok@sap.com> Co-authored-by: zirain <zirain2009@gmail.com> Co-authored-by: Huabing Zhao <zhaohuabing@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * fix: add missing http filters to the http filter chain (#2970) * fix: add missing http filters to the http filter chain Signed-off-by: huabing zhao <zhaohuabing@gmail.com> * refactor Signed-off-by: huabing zhao <zhaohuabing@gmail.com> * fix lint Signed-off-by: huabing zhao <zhaohuabing@gmail.com> * add comments Signed-off-by: huabing zhao <zhaohuabing@gmail.com> * remove refactor Signed-off-by: huabing zhao <zhaohuabing@gmail.com> * remove refactor Signed-off-by: huabing zhao <zhaohuabing@gmail.com> * fix gen Signed-off-by: huabing zhao <zhaohuabing@gmail.com> * fix lint Signed-off-by: Huabing Zhao <zhaohuabing@gmail.com> --------- Signed-off-by: huabing zhao <zhaohuabing@gmail.com> Signed-off-by: Huabing Zhao <zhaohuabing@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * fix pr comment Signed-off-by: Yael Shechter <yael.shechter@sap.com> * ci: grant pull-requests permission to cherrypick action (#3039) Signed-off-by: zirain <zirain2009@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * Update ADOPTERS.md for Airspace Link (#3045) Signed-off-by: Fabrice Aneche <akhenakh@users.noreply.github.com> Co-authored-by: zirain <zirain2009@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * feat: added option to specify resources on the OIDC security policy (#3030) added option to specify resources on the OIDC filter Signed-off-by: jaynis <kranz.jannis@googlemail.com> Co-authored-by: Huabing Zhao <zhaohuabing@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> * run make commands Signed-off-by: Yael Shechter <yael.shechter@sap.com> * fix: allow websockets in url rewrite (#3022) allow websockets in url rewrite Signed-off-by: Jesse Haka <haka.jesse@gmail.com> Co-authored-by: zirain <zirain2009@gmail.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Yael Shechter <yael.shechter@sap.com> Signed-off-by: zirain <zirain2009@gmail.com> Signed-off-by: huabing zhao <zhaohuabing@gmail.com> Signed-off-by: Wilson Wu <iwilsonwu@gmail.com> Signed-off-by: Guy Daich <guy.daich@sap.com> Signed-off-by: yuluo <karashouk.pan@gmail.com> Signed-off-by: Alexander Volchok <alex.volchok@sap.com> Signed-off-by: Huabing Zhao <zhaohuabing@gmail.com> Signed-off-by: Fabrice Aneche <akhenakh@users.noreply.github.com> Signed-off-by: jaynis <kranz.jannis@googlemail.com> Signed-off-by: Jesse Haka <haka.jesse@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Huabing Zhao <zhaohuabing@gmail.com> Co-authored-by: zirain <zirain2009@gmail.com> Co-authored-by: Wilson Wu <iwilsonwu@gmail.com> Co-authored-by: Arko Dasgupta <arkodg@users.noreply.github.com> Co-authored-by: Guy Daich <guy.daich@sap.com> Co-authored-by: YuLuo <karashouk.pan@gmail.com> Co-authored-by: Alex Volchok <alex.volchok@sap.com> Co-authored-by: Fabrice Aneche <akhenakh@users.noreply.github.com> Co-authored-by: jaynis <kranz.jannis@googlemail.com> Co-authored-by: Jesse Haka <haka.jesse@gmail.com>
What this PR does / why we need it:
Enables the application of BTP rules on gateway and TCP/UDP routes.
Modifications have been incorporated into the IR mapper and XDS translator.
Adds below BTP rules for tcp and tls routes:
Adds below BTP rules for UDP routes:
Which issue(s) this PR fixes:
#2880