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

Extend DestinationRule with retry budget #2585

Closed
wants to merge 0 commits into from

Conversation

quraynai
Copy link

@quraynai quraynai commented Nov 28, 2022

@quraynai quraynai requested a review from a team as a code owner November 28, 2022 07:06
@istio-testing istio-testing added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Nov 28, 2022
@istio-testing
Copy link
Collaborator

Hi @quraynai. Thanks for your PR.

I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@@ -791,6 +791,9 @@ message ConnectionPoolSettings {
// Note that when this is set to true, h2_upgrade_policy will be ineffective i.e. the client
// connections will not be upgraded to http2.
bool use_client_protocol = 7;

// Specifies a limit on concurrent retries in relation to the number of active requests. This parameter is optional.
RetryBudget retry_budget = 8;
Copy link
Member

Choose a reason for hiding this comment

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

It seems confusing to configure retries in virtual service, but a retry budget in destination rule. Wouldn't a user configure those together?

Copy link
Author

Choose a reason for hiding this comment

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

@howardjohn
Retry in virtualservice I think it's for configuring route.

But base on envoy document this is for configuring cluster.
cluster.circuit_breakers.thresholds.retry_budget

Also other fields of HTTPSettings will try to configure
cluster.circuit_breakers.thresholds.*

I think it might be reasonable to put it here.

https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/circuit_breaker.proto

Copy link
Member

Choose a reason for hiding this comment

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

I agree with @howardjohn 's concern on DR. With your porposal, what if user configures retry budget on DR but forgot to configure retry in VS?

Copy link
Author

Choose a reason for hiding this comment

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

@linsun
I understand that this will make user to maintain 2 different resources (VS, DR) in case if they want to include retry_budget

but not sure if we move this configuration to VS will cause another confusion to user or not?
due to DR is for configuring cluster and VS is for configuring route

if user create VS user has to check into envoy config about route only. then user has to check for route and cluster instead

and another point is retry_budget from istio is about playing around with max_retries that already existed in DR.
also base on envoy Circuit Breaker other related config is already in DR as well
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/circuit_breaker.proto#envoy-v3-api-msg-config-cluster-v3-circuitbreakers-thresholds-retrybudget
https://istio.io/latest/docs/reference/config/networking/destination-rule/#ConnectionPoolSettings-HTTPSettings

Copy link
Author

Choose a reason for hiding this comment

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

also this will make implementation on istio/istio more align with current implementation
https://github.com/istio/istio/pull/42232/files

Copy link
Author

Choose a reason for hiding this comment

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

@linsun
from @ramaraochavali replied. Is it okay to have it on istioAnalyze instead?

Copy link
Author

Choose a reason for hiding this comment

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

@linsun hi could you please help check this MR again?

Copy link
Author

Choose a reason for hiding this comment

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

@linsun can you help on this? 1.17 is already released. we will try to aim for 1.18 instead.
In our company we are running 1.16 forked to support retry budget at the moment.
we really want this functionality support from istio and then we can aim for next istio upgrade.

Copy link
Author

Choose a reason for hiding this comment

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

@howardjohn @hzxuzhonghu can you help on this?

Copy link
Author

Choose a reason for hiding this comment

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

@linsun @howardjohn @hzxuzhonghu could you please help review this again?
About confusion of retry is it okay to go with IstioAnalayze instead?

@quraynai
Copy link
Author

@howardjohn hi can you help review this again?

@istio-testing istio-testing added the needs-rebase Indicates a PR needs to be rebased before being merged label Mar 13, 2023
@istio-testing
Copy link
Collaborator

PR needs rebase.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@quraynai quraynai closed this Mar 20, 2023
@istio-testing istio-testing added size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Mar 20, 2023
@quraynai quraynai mentioned this pull request Mar 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-ok-to-test needs-rebase Indicates a PR needs to be rebased before being merged size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants