feat(delivery): support maximum backoff duration - #802
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: kahirokunn The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
7c6bffb to
9e11239
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #802 +/- ##
==========================================
+ Coverage 43.50% 44.83% +1.33%
==========================================
Files 68 72 +4
Lines 4259 4447 +188
==========================================
+ Hits 1853 1994 +141
- Misses 2282 2321 +39
- Partials 124 132 +8 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
9e11239 to
860eb5d
Compare
860eb5d to
a63a362
Compare
a63a362 to
31d966b
Compare
31d966b to
823cbdb
Compare
823cbdb to
ed9c354
Compare
Signed-off-by: kahirokunn <okinakahiro@gmail.com>
Signed-off-by: kahirokunn <okinakahiro@gmail.com>
Signed-off-by: kahirokunn <okinakahiro@gmail.com>
Signed-off-by: kahirokunn <okinakahiro@gmail.com>
Signed-off-by: kahirokunn <okinakahiro@gmail.com>
ed9c354 to
63c3105
Compare
22c29c6 to
05cd7b8
Compare
|
@kahirokunn , AFAIK knative-eventing does not support |
05cd7b8 to
1d920b9
Compare
Run the regular E2E suite against supported Kubernetes minors using the Kind setup from Eventing. Cover both the supported release and the revision selected by go.mod. Signed-off-by: kahirokunn <okinakahiro@gmail.com>
Exercise BackoffMax and RetryAfterMax through both the NATS broker and channel in the experimental Eventing suite. Signed-off-by: kahirokunn <okinakahiro@gmail.com>
1d920b9 to
f85abce
Compare
|
@astelmashenko Thank you for your review 🙏 |
|
@Cali0707 Since you seem to have looked at my issue, I'll ping you! 🙏 |
Related upstream: knative/eventing#9278, implemented by knative/eventing#9279.
Proposed Changes
This PR adds native NATS support for Eventing's experimental
DeliverySpec.backoffMax. The Eventing revision selected bygo.modis the merge commit of knative/eventing#9279, which definesbackoffMaxandretryAfterMaxand their feature-gated validation.backoffMaxto Broker and Trigger delivery, and expose it throughNatsJetStreamChanneldefaults and subscriber delivery.DeliverySpecvalidation with Eventing feature flags available to the channel webhook.Retry behavior
backoffMaxbackoffDelayandbackoffPolicyretryAfterMaxRetry-Afteron HTTP 429 and 503 responsesThe limits are independent. Eventing caps each delay separately and uses the larger result. Operators enable
delivery-backoff-max, and additionally enabledelivery-retryafterwhen usingretryAfterMax.Tests
Unit tests cover retry numbering, delivery propagation, feature-gated validation, and response-aware delay calculation. Experimental E2E tests cover
backoffMaxandretryAfterMaxthrough both the NATS Broker andNatsJetStreamChannel, following Eventing's upstreambackoffMaxscenario andRetry-Afterassertions.The KinD workflow follows Eventing's Kubernetes and suite matrix, Kind setup, and experimental-suite execution.
knative-v1.23.0releasev1.34.x,v1.35.xgo.modv1.34.x,v1.35.xRelease Note
Docs
Provider documentation is included for Broker delivery and
NatsJetStreamChanneldelivery. Upstream user documentation is tracked in knative/docs#6686.