Skip to content

Commit 1bb625e

Browse files
committed
Add retry budget circuit breaker configuration to Destination Rule
1 parent 74890bf commit 1bb625e

8 files changed

+1211
-360
lines changed

kubernetes/customresourcedefinitions.gen.yaml

Lines changed: 612 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

networking/v1/destination_rule_alias.gen.go

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

networking/v1alpha3/destination_rule.pb.go

Lines changed: 478 additions & 359 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

networking/v1alpha3/destination_rule.pb.html

Lines changed: 65 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

networking/v1alpha3/destination_rule.proto

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,8 @@ message LoadBalancerSettings {
514514
// amount of requests.
515515
// Currently this is only supported for ROUND_ROBIN and LEAST_REQUEST load balancers.
516516
google.protobuf.Duration warmup_duration_secs = 4;
517+
518+
RetryBudget retry_budget = 5;
517519
}
518520

519521
// Connection pool settings for an upstream host. The settings apply to
@@ -642,6 +644,10 @@ message ConnectionPoolSettings {
642644
// The maximum number of concurrent streams allowed for a peer on one HTTP/2 connection.
643645
// Defaults to 2^31-1.
644646
int32 max_concurrent_streams = 8;
647+
648+
// The amount of concurrent retries allowed in the case of failure, a
649+
// percentage of the active requests.
650+
RetryBudget retry_budget = 9;
645651
};
646652

647653
// Settings common to both HTTP and TCP upstream connections.
@@ -650,6 +656,20 @@ message ConnectionPoolSettings {
650656
HTTPSettings http = 2;
651657
}
652658

659+
message RetryBudget {
660+
// The limit on concurrent retries as a percentage of active requests and
661+
// active pending requests.
662+
// ex. if there are 100 active requests and the budget_percent is set
663+
// to 25, there may be 25 active retries.
664+
// This parameter is optional. Defaults to 20%.
665+
Percent budget_percent = 1;
666+
667+
// The minimum number of concurrent retries allowed for the retry budget.
668+
// The limit on the number of active retries may never go below this number.
669+
// This parameter is optional. Defaults to 3.
670+
google.protobuf.UInt32Value min_retry_concurrency = 2;
671+
}
672+
653673
// A Circuit breaker implementation that tracks the status of each
654674
// individual host in the upstream service. Applicable to both HTTP and
655675
// TCP services. For HTTP services, hosts that continually return 5xx

networking/v1alpha3/destination_rule_deepcopy.gen.go

Lines changed: 21 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

networking/v1alpha3/destination_rule_json.gen.go

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

networking/v1beta1/destination_rule_alias.gen.go

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)