From 1bb625e6898feaf1d26f21e1737c47ced925ce1f Mon Sep 17 00:00:00 2001
From: Eric Bishop
Date: Thu, 20 Jun 2024 10:41:59 -0400
Subject: [PATCH 1/3] Add retry budget circuit breaker configuration to
Destination Rule
---
kubernetes/customresourcedefinitions.gen.yaml | 612 +++++++++++++
networking/v1/destination_rule_alias.gen.go | 2 +
networking/v1alpha3/destination_rule.pb.go | 837 ++++++++++--------
networking/v1alpha3/destination_rule.pb.html | 66 +-
networking/v1alpha3/destination_rule.proto | 20 +
.../v1alpha3/destination_rule_deepcopy.gen.go | 21 +
.../v1alpha3/destination_rule_json.gen.go | 11 +
.../v1beta1/destination_rule_alias.gen.go | 2 +
8 files changed, 1211 insertions(+), 360 deletions(-)
diff --git a/kubernetes/customresourcedefinitions.gen.yaml b/kubernetes/customresourcedefinitions.gen.yaml
index d95075b79b0..65fd2f9e73e 100644
--- a/kubernetes/customresourcedefinitions.gen.yaml
+++ b/kubernetes/customresourcedefinitions.gen.yaml
@@ -413,6 +413,28 @@ spec:
given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed
+ in the case of failure, a percentage of the active
+ requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries
+ as a percentage of active requests and active
+ pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent
+ retries allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will
be preserved while initiating connection to backend.
@@ -629,6 +651,25 @@ spec:
type: string
type: array
type: object
+ retryBudget:
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as
+ a percentage of active requests and active pending
+ requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
simple:
description: |2-
@@ -758,6 +799,28 @@ spec:
at a given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries
+ allowed in the case of failure, a percentage
+ of the active requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries
+ as a percentage of active requests and
+ active pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent
+ retries allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol
will be preserved while initiating connection
@@ -979,6 +1042,25 @@ spec:
type: string
type: array
type: object
+ retryBudget:
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries
+ as a percentage of active requests and active
+ pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent
+ retries allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
simple:
description: |2-
@@ -1269,6 +1351,27 @@ spec:
to all hosts in a cluster at a given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed
+ in the case of failure, a percentage of the active requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as a
+ percentage of active requests and active pending
+ requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will be preserved
while initiating connection to backend.
@@ -1476,6 +1579,24 @@ spec:
type: string
type: array
type: object
+ retryBudget:
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as a percentage
+ of active requests and active pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
simple:
description: |2-
@@ -1604,6 +1725,28 @@ spec:
given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed
+ in the case of failure, a percentage of the active
+ requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries
+ as a percentage of active requests and active
+ pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent
+ retries allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will
be preserved while initiating connection to backend.
@@ -1820,6 +1963,25 @@ spec:
type: string
type: array
type: object
+ retryBudget:
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as
+ a percentage of active requests and active pending
+ requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
simple:
description: |2-
@@ -2176,6 +2338,28 @@ spec:
given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed
+ in the case of failure, a percentage of the active
+ requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries
+ as a percentage of active requests and active
+ pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent
+ retries allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will
be preserved while initiating connection to backend.
@@ -2392,6 +2576,25 @@ spec:
type: string
type: array
type: object
+ retryBudget:
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as
+ a percentage of active requests and active pending
+ requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
simple:
description: |2-
@@ -2521,6 +2724,28 @@ spec:
at a given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries
+ allowed in the case of failure, a percentage
+ of the active requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries
+ as a percentage of active requests and
+ active pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent
+ retries allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol
will be preserved while initiating connection
@@ -2742,6 +2967,25 @@ spec:
type: string
type: array
type: object
+ retryBudget:
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries
+ as a percentage of active requests and active
+ pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent
+ retries allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
simple:
description: |2-
@@ -3032,6 +3276,27 @@ spec:
to all hosts in a cluster at a given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed
+ in the case of failure, a percentage of the active requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as a
+ percentage of active requests and active pending
+ requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will be preserved
while initiating connection to backend.
@@ -3239,6 +3504,24 @@ spec:
type: string
type: array
type: object
+ retryBudget:
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as a percentage
+ of active requests and active pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
simple:
description: |2-
@@ -3367,6 +3650,28 @@ spec:
given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed
+ in the case of failure, a percentage of the active
+ requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries
+ as a percentage of active requests and active
+ pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent
+ retries allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will
be preserved while initiating connection to backend.
@@ -3583,6 +3888,25 @@ spec:
type: string
type: array
type: object
+ retryBudget:
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as
+ a percentage of active requests and active pending
+ requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
simple:
description: |2-
@@ -3939,6 +4263,28 @@ spec:
given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed
+ in the case of failure, a percentage of the active
+ requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries
+ as a percentage of active requests and active
+ pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent
+ retries allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will
be preserved while initiating connection to backend.
@@ -4155,6 +4501,25 @@ spec:
type: string
type: array
type: object
+ retryBudget:
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as
+ a percentage of active requests and active pending
+ requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
simple:
description: |2-
@@ -4284,6 +4649,28 @@ spec:
at a given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries
+ allowed in the case of failure, a percentage
+ of the active requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries
+ as a percentage of active requests and
+ active pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent
+ retries allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol
will be preserved while initiating connection
@@ -4505,6 +4892,25 @@ spec:
type: string
type: array
type: object
+ retryBudget:
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries
+ as a percentage of active requests and active
+ pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent
+ retries allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
simple:
description: |2-
@@ -4795,6 +5201,27 @@ spec:
to all hosts in a cluster at a given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed
+ in the case of failure, a percentage of the active requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as a
+ percentage of active requests and active pending
+ requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will be preserved
while initiating connection to backend.
@@ -5002,6 +5429,24 @@ spec:
type: string
type: array
type: object
+ retryBudget:
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as a percentage
+ of active requests and active pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
simple:
description: |2-
@@ -5130,6 +5575,28 @@ spec:
given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed
+ in the case of failure, a percentage of the active
+ requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries
+ as a percentage of active requests and active
+ pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent
+ retries allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will
be preserved while initiating connection to backend.
@@ -5346,6 +5813,25 @@ spec:
type: string
type: array
type: object
+ retryBudget:
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as
+ a percentage of active requests and active pending
+ requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
simple:
description: |2-
@@ -7143,6 +7629,26 @@ spec:
to all hosts in a cluster at a given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed in the
+ case of failure, a percentage of the active requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as a percentage
+ of active requests and active pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will be preserved
while initiating connection to backend.
@@ -7268,6 +7774,28 @@ spec:
to all hosts in a cluster at a given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed
+ in the case of failure, a percentage of the active
+ requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as
+ a percentage of active requests and active pending
+ requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will be
preserved while initiating connection to backend.
@@ -7607,6 +8135,26 @@ spec:
to all hosts in a cluster at a given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed in the
+ case of failure, a percentage of the active requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as a percentage
+ of active requests and active pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will be preserved
while initiating connection to backend.
@@ -7732,6 +8280,28 @@ spec:
to all hosts in a cluster at a given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed
+ in the case of failure, a percentage of the active
+ requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as
+ a percentage of active requests and active pending
+ requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will be
preserved while initiating connection to backend.
@@ -8071,6 +8641,26 @@ spec:
to all hosts in a cluster at a given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed in the
+ case of failure, a percentage of the active requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as a percentage
+ of active requests and active pending requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will be preserved
while initiating connection to backend.
@@ -8196,6 +8786,28 @@ spec:
to all hosts in a cluster at a given time.
format: int32
type: integer
+ retryBudget:
+ description: The amount of concurrent retries allowed
+ in the case of failure, a percentage of the active
+ requests.
+ properties:
+ budgetPercent:
+ description: The limit on concurrent retries as
+ a percentage of active requests and active pending
+ requests.
+ properties:
+ value:
+ format: double
+ type: number
+ type: object
+ minRetryConcurrency:
+ description: The minimum number of concurrent retries
+ allowed for the retry budget.
+ maximum: 4294967295
+ minimum: 0
+ nullable: true
+ type: integer
+ type: object
useClientProtocol:
description: If set to true, client protocol will be
preserved while initiating connection to backend.
diff --git a/networking/v1/destination_rule_alias.gen.go b/networking/v1/destination_rule_alias.gen.go
index 3039c0fe0cf..cf1d1b2a104 100644
--- a/networking/v1/destination_rule_alias.gen.go
+++ b/networking/v1/destination_rule_alias.gen.go
@@ -270,6 +270,8 @@ const ConnectionPoolSettings_HTTPSettings_DO_NOT_UPGRADE ConnectionPoolSettings_
// This opt-in option overrides the default.
const ConnectionPoolSettings_HTTPSettings_UPGRADE ConnectionPoolSettings_HTTPSettings_H2UpgradePolicy = v1alpha3.ConnectionPoolSettings_HTTPSettings_UPGRADE
+type RetryBudget = v1alpha3.RetryBudget
+
// A Circuit breaker implementation that tracks the status of each
// individual host in the upstream service. Applicable to both HTTP and
// TCP services. For HTTP services, hosts that continually return 5xx
diff --git a/networking/v1alpha3/destination_rule.pb.go b/networking/v1alpha3/destination_rule.pb.go
index 4bd447f1fa6..3b56d6abffd 100644
--- a/networking/v1alpha3/destination_rule.pb.go
+++ b/networking/v1alpha3/destination_rule.pb.go
@@ -382,7 +382,7 @@ func (x ClientTLSSettings_TLSmode) Number() protoreflect.EnumNumber {
// Deprecated: Use ClientTLSSettings_TLSmode.Descriptor instead.
func (ClientTLSSettings_TLSmode) EnumDescriptor() ([]byte, []int) {
- return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{6, 0}
+ return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{7, 0}
}
// DestinationRule defines policies that apply to traffic intended for a service
@@ -823,6 +823,7 @@ type LoadBalancerSettings struct {
// amount of requests.
// Currently this is only supported for ROUND_ROBIN and LEAST_REQUEST load balancers.
WarmupDurationSecs *duration.Duration `protobuf:"bytes,4,opt,name=warmup_duration_secs,json=warmupDurationSecs,proto3" json:"warmup_duration_secs,omitempty"`
+ RetryBudget *RetryBudget `protobuf:"bytes,5,opt,name=retry_budget,json=retryBudget,proto3" json:"retry_budget,omitempty"`
}
func (x *LoadBalancerSettings) Reset() {
@@ -892,6 +893,13 @@ func (x *LoadBalancerSettings) GetWarmupDurationSecs() *duration.Duration {
return nil
}
+func (x *LoadBalancerSettings) GetRetryBudget() *RetryBudget {
+ if x != nil {
+ return x.RetryBudget
+ }
+ return nil
+}
+
type isLoadBalancerSettings_LbPolicy interface {
isLoadBalancerSettings_LbPolicy()
}
@@ -994,6 +1002,69 @@ func (x *ConnectionPoolSettings) GetHttp() *ConnectionPoolSettings_HTTPSettings
return nil
}
+type RetryBudget struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The limit on concurrent retries as a percentage of active requests and
+ // active pending requests.
+ // ex. if there are 100 active requests and the budget_percent is set
+ // to 25, there may be 25 active retries.
+ // This parameter is optional. Defaults to 20%.
+ BudgetPercent *Percent `protobuf:"bytes,1,opt,name=budget_percent,json=budgetPercent,proto3" json:"budget_percent,omitempty"`
+ // The minimum number of concurrent retries allowed for the retry budget.
+ // The limit on the number of active retries may never go below this number.
+ // This parameter is optional. Defaults to 3.
+ MinRetryConcurrency *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=min_retry_concurrency,json=minRetryConcurrency,proto3" json:"min_retry_concurrency,omitempty"`
+}
+
+func (x *RetryBudget) Reset() {
+ *x = RetryBudget{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RetryBudget) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RetryBudget) ProtoMessage() {}
+
+func (x *RetryBudget) ProtoReflect() protoreflect.Message {
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RetryBudget.ProtoReflect.Descriptor instead.
+func (*RetryBudget) Descriptor() ([]byte, []int) {
+ return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *RetryBudget) GetBudgetPercent() *Percent {
+ if x != nil {
+ return x.BudgetPercent
+ }
+ return nil
+}
+
+func (x *RetryBudget) GetMinRetryConcurrency() *wrappers.UInt32Value {
+ if x != nil {
+ return x.MinRetryConcurrency
+ }
+ return nil
+}
+
// A Circuit breaker implementation that tracks the status of each
// individual host in the upstream service. Applicable to both HTTP and
// TCP services. For HTTP services, hosts that continually return 5xx
@@ -1112,7 +1183,7 @@ type OutlierDetection struct {
func (x *OutlierDetection) Reset() {
*x = OutlierDetection{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[5]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1125,7 +1196,7 @@ func (x *OutlierDetection) String() string {
func (*OutlierDetection) ProtoMessage() {}
func (x *OutlierDetection) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[5]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1138,7 +1209,7 @@ func (x *OutlierDetection) ProtoReflect() protoreflect.Message {
// Deprecated: Use OutlierDetection.ProtoReflect.Descriptor instead.
func (*OutlierDetection) Descriptor() ([]byte, []int) {
- return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{5}
+ return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{6}
}
// Deprecated: Marked as deprecated in networking/v1alpha3/destination_rule.proto.
@@ -1337,7 +1408,7 @@ type ClientTLSSettings struct {
func (x *ClientTLSSettings) Reset() {
*x = ClientTLSSettings{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[6]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1350,7 +1421,7 @@ func (x *ClientTLSSettings) String() string {
func (*ClientTLSSettings) ProtoMessage() {}
func (x *ClientTLSSettings) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[6]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1363,7 +1434,7 @@ func (x *ClientTLSSettings) ProtoReflect() protoreflect.Message {
// Deprecated: Use ClientTLSSettings.ProtoReflect.Descriptor instead.
func (*ClientTLSSettings) Descriptor() ([]byte, []int) {
- return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{6}
+ return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{7}
}
func (x *ClientTLSSettings) GetMode() ClientTLSSettings_TLSmode {
@@ -1565,7 +1636,7 @@ type LocalityLoadBalancerSetting struct {
func (x *LocalityLoadBalancerSetting) Reset() {
*x = LocalityLoadBalancerSetting{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[7]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1578,7 +1649,7 @@ func (x *LocalityLoadBalancerSetting) String() string {
func (*LocalityLoadBalancerSetting) ProtoMessage() {}
func (x *LocalityLoadBalancerSetting) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[7]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1591,7 +1662,7 @@ func (x *LocalityLoadBalancerSetting) ProtoReflect() protoreflect.Message {
// Deprecated: Use LocalityLoadBalancerSetting.ProtoReflect.Descriptor instead.
func (*LocalityLoadBalancerSetting) Descriptor() ([]byte, []int) {
- return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{7}
+ return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{8}
}
func (x *LocalityLoadBalancerSetting) GetDistribute() []*LocalityLoadBalancerSetting_Distribute {
@@ -1644,7 +1715,7 @@ type TrafficPolicy_PortTrafficPolicy struct {
func (x *TrafficPolicy_PortTrafficPolicy) Reset() {
*x = TrafficPolicy_PortTrafficPolicy{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[8]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1657,7 +1728,7 @@ func (x *TrafficPolicy_PortTrafficPolicy) String() string {
func (*TrafficPolicy_PortTrafficPolicy) ProtoMessage() {}
func (x *TrafficPolicy_PortTrafficPolicy) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[8]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1732,7 +1803,7 @@ type TrafficPolicy_TunnelSettings struct {
func (x *TrafficPolicy_TunnelSettings) Reset() {
*x = TrafficPolicy_TunnelSettings{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[9]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1745,7 +1816,7 @@ func (x *TrafficPolicy_TunnelSettings) String() string {
func (*TrafficPolicy_TunnelSettings) ProtoMessage() {}
func (x *TrafficPolicy_TunnelSettings) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[9]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1795,7 +1866,7 @@ type TrafficPolicy_ProxyProtocol struct {
func (x *TrafficPolicy_ProxyProtocol) Reset() {
*x = TrafficPolicy_ProxyProtocol{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[10]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1808,7 +1879,7 @@ func (x *TrafficPolicy_ProxyProtocol) String() string {
func (*TrafficPolicy_ProxyProtocol) ProtoMessage() {}
func (x *TrafficPolicy_ProxyProtocol) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[10]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1881,7 +1952,7 @@ type LoadBalancerSettings_ConsistentHashLB struct {
func (x *LoadBalancerSettings_ConsistentHashLB) Reset() {
*x = LoadBalancerSettings_ConsistentHashLB{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[12]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1894,7 +1965,7 @@ func (x *LoadBalancerSettings_ConsistentHashLB) String() string {
func (*LoadBalancerSettings_ConsistentHashLB) ProtoMessage() {}
func (x *LoadBalancerSettings_ConsistentHashLB) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[12]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2047,7 +2118,7 @@ type LoadBalancerSettings_ConsistentHashLB_RingHash struct {
func (x *LoadBalancerSettings_ConsistentHashLB_RingHash) Reset() {
*x = LoadBalancerSettings_ConsistentHashLB_RingHash{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[13]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2060,7 +2131,7 @@ func (x *LoadBalancerSettings_ConsistentHashLB_RingHash) String() string {
func (*LoadBalancerSettings_ConsistentHashLB_RingHash) ProtoMessage() {}
func (x *LoadBalancerSettings_ConsistentHashLB_RingHash) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[13]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2099,7 +2170,7 @@ type LoadBalancerSettings_ConsistentHashLB_MagLev struct {
func (x *LoadBalancerSettings_ConsistentHashLB_MagLev) Reset() {
*x = LoadBalancerSettings_ConsistentHashLB_MagLev{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[14]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2112,7 +2183,7 @@ func (x *LoadBalancerSettings_ConsistentHashLB_MagLev) String() string {
func (*LoadBalancerSettings_ConsistentHashLB_MagLev) ProtoMessage() {}
func (x *LoadBalancerSettings_ConsistentHashLB_MagLev) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[14]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2155,7 +2226,7 @@ type LoadBalancerSettings_ConsistentHashLB_HTTPCookie struct {
func (x *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) Reset() {
*x = LoadBalancerSettings_ConsistentHashLB_HTTPCookie{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[15]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2168,7 +2239,7 @@ func (x *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) String() string {
func (*LoadBalancerSettings_ConsistentHashLB_HTTPCookie) ProtoMessage() {}
func (x *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[15]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2236,7 +2307,7 @@ type ConnectionPoolSettings_TCPSettings struct {
func (x *ConnectionPoolSettings_TCPSettings) Reset() {
*x = ConnectionPoolSettings_TCPSettings{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[16]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2249,7 +2320,7 @@ func (x *ConnectionPoolSettings_TCPSettings) String() string {
func (*ConnectionPoolSettings_TCPSettings) ProtoMessage() {}
func (x *ConnectionPoolSettings_TCPSettings) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[16]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2339,12 +2410,15 @@ type ConnectionPoolSettings_HTTPSettings struct {
// The maximum number of concurrent streams allowed for a peer on one HTTP/2 connection.
// Defaults to 2^31-1.
MaxConcurrentStreams int32 `protobuf:"varint,8,opt,name=max_concurrent_streams,json=maxConcurrentStreams,proto3" json:"max_concurrent_streams,omitempty"`
+ // The amount of concurrent retries allowed in the case of failure, a
+ // percentage of the active requests.
+ RetryBudget *RetryBudget `protobuf:"bytes,9,opt,name=retry_budget,json=retryBudget,proto3" json:"retry_budget,omitempty"`
}
func (x *ConnectionPoolSettings_HTTPSettings) Reset() {
*x = ConnectionPoolSettings_HTTPSettings{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[17]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2357,7 +2431,7 @@ func (x *ConnectionPoolSettings_HTTPSettings) String() string {
func (*ConnectionPoolSettings_HTTPSettings) ProtoMessage() {}
func (x *ConnectionPoolSettings_HTTPSettings) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[17]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2429,6 +2503,13 @@ func (x *ConnectionPoolSettings_HTTPSettings) GetMaxConcurrentStreams() int32 {
return 0
}
+func (x *ConnectionPoolSettings_HTTPSettings) GetRetryBudget() *RetryBudget {
+ if x != nil {
+ return x.RetryBudget
+ }
+ return nil
+}
+
// TCP keepalive.
type ConnectionPoolSettings_TCPSettings_TcpKeepalive struct {
state protoimpl.MessageState
@@ -2452,7 +2533,7 @@ type ConnectionPoolSettings_TCPSettings_TcpKeepalive struct {
func (x *ConnectionPoolSettings_TCPSettings_TcpKeepalive) Reset() {
*x = ConnectionPoolSettings_TCPSettings_TcpKeepalive{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[18]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2465,7 +2546,7 @@ func (x *ConnectionPoolSettings_TCPSettings_TcpKeepalive) String() string {
func (*ConnectionPoolSettings_TCPSettings_TcpKeepalive) ProtoMessage() {}
func (x *ConnectionPoolSettings_TCPSettings_TcpKeepalive) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[18]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2528,7 +2609,7 @@ type LocalityLoadBalancerSetting_Distribute struct {
func (x *LocalityLoadBalancerSetting_Distribute) Reset() {
*x = LocalityLoadBalancerSetting_Distribute{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[19]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2541,7 +2622,7 @@ func (x *LocalityLoadBalancerSetting_Distribute) String() string {
func (*LocalityLoadBalancerSetting_Distribute) ProtoMessage() {}
func (x *LocalityLoadBalancerSetting_Distribute) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[19]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2554,7 +2635,7 @@ func (x *LocalityLoadBalancerSetting_Distribute) ProtoReflect() protoreflect.Mes
// Deprecated: Use LocalityLoadBalancerSetting_Distribute.ProtoReflect.Descriptor instead.
func (*LocalityLoadBalancerSetting_Distribute) Descriptor() ([]byte, []int) {
- return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{7, 0}
+ return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{8, 0}
}
func (x *LocalityLoadBalancerSetting_Distribute) GetFrom() string {
@@ -2593,7 +2674,7 @@ type LocalityLoadBalancerSetting_Failover struct {
func (x *LocalityLoadBalancerSetting_Failover) Reset() {
*x = LocalityLoadBalancerSetting_Failover{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[20]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2606,7 +2687,7 @@ func (x *LocalityLoadBalancerSetting_Failover) String() string {
func (*LocalityLoadBalancerSetting_Failover) ProtoMessage() {}
func (x *LocalityLoadBalancerSetting_Failover) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[20]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2619,7 +2700,7 @@ func (x *LocalityLoadBalancerSetting_Failover) ProtoReflect() protoreflect.Messa
// Deprecated: Use LocalityLoadBalancerSetting_Failover.ProtoReflect.Descriptor instead.
func (*LocalityLoadBalancerSetting_Failover) Descriptor() ([]byte, []int) {
- return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{7, 1}
+ return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{8, 1}
}
func (x *LocalityLoadBalancerSetting_Failover) GetFrom() string {
@@ -2770,7 +2851,7 @@ var file_networking_v1alpha3_destination_rule_proto_rawDesc = []byte{
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
- 0x22, 0x84, 0x0a, 0x0a, 0x14, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65,
+ 0x22, 0xcf, 0x0a, 0x0a, 0x14, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65,
0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x06, 0x73, 0x69, 0x6d,
0x70, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x69, 0x73, 0x74, 0x69,
0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61,
@@ -2794,252 +2875,272 @@ var file_networking_v1alpha3_destination_rule_proto_rawDesc = []byte{
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x77, 0x61, 0x72,
- 0x6d, 0x75, 0x70, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x73, 0x1a,
- 0xf6, 0x05, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61,
- 0x73, 0x68, 0x4c, 0x42, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x68, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
- 0x52, 0x0e, 0x68, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65,
- 0x12, 0x6e, 0x0a, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65,
+ 0x6d, 0x75, 0x70, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x73, 0x12,
+ 0x49, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65,
0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
- 0x33, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, 0x65,
- 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e,
- 0x74, 0x48, 0x61, 0x73, 0x68, 0x4c, 0x42, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x43, 0x6f, 0x6f, 0x6b,
- 0x69, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65,
- 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69,
- 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x53, 0x6f,
- 0x75, 0x72, 0x63, 0x65, 0x49, 0x70, 0x12, 0x3b, 0x0a, 0x19, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x71,
- 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e,
- 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x16, 0x68, 0x74, 0x74,
- 0x70, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e,
- 0x61, 0x6d, 0x65, 0x12, 0x68, 0x0a, 0x09, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e,
- 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
- 0x61, 0x33, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53,
- 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65,
- 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x4c, 0x42, 0x2e, 0x52, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73,
- 0x68, 0x48, 0x01, 0x52, 0x08, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, 0x12, 0x61, 0x0a,
- 0x06, 0x6d, 0x61, 0x67, 0x6c, 0x65, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e,
- 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67,
- 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61,
- 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x43,
- 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x4c, 0x42, 0x2e,
- 0x4d, 0x61, 0x67, 0x4c, 0x65, 0x76, 0x48, 0x01, 0x52, 0x06, 0x6d, 0x61, 0x67, 0x6c, 0x65, 0x76,
- 0x12, 0x2e, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x69, 0x6e, 0x67,
- 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x18, 0x01, 0x52,
- 0x0f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x7a, 0x65,
- 0x1a, 0x36, 0x0a, 0x08, 0x52, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x0a, 0x11,
- 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x7a,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d,
- 0x52, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x27, 0x0a, 0x06, 0x4d, 0x61, 0x67, 0x4c,
- 0x65, 0x76, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a,
- 0x65, 0x1a, 0x67, 0x0a, 0x0a, 0x48, 0x54, 0x54, 0x50, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12,
- 0x18, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xe2,
- 0x41, 0x01, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
- 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2b, 0x0a,
- 0x03, 0x74, 0x74, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x68, 0x61,
- 0x73, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61,
- 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x22, 0x70, 0x0a, 0x08, 0x53, 0x69, 0x6d, 0x70,
- 0x6c, 0x65, 0x4c, 0x42, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
- 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0a, 0x4c, 0x45, 0x41, 0x53, 0x54, 0x5f, 0x43,
- 0x4f, 0x4e, 0x4e, 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x41, 0x4e,
- 0x44, 0x4f, 0x4d, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x41, 0x53, 0x53, 0x54, 0x48, 0x52,
- 0x4f, 0x55, 0x47, 0x48, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x55, 0x4e, 0x44, 0x5f,
- 0x52, 0x4f, 0x42, 0x49, 0x4e, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x45, 0x41, 0x53, 0x54,
- 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x05, 0x42, 0x0b, 0x0a, 0x09, 0x6c, 0x62,
- 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x88, 0x0a, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x6e,
- 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
- 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x3d, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69,
- 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x6e,
- 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
- 0x67, 0x73, 0x2e, 0x54, 0x43, 0x50, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x03,
- 0x74, 0x63, 0x70, 0x12, 0x52, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x3e, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
- 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x43, 0x6f,
- 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x74,
- 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
- 0x73, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x1a, 0x8b, 0x04, 0x0a, 0x0b, 0x54, 0x43, 0x50, 0x53,
- 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x63,
- 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
- 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x12, 0x42, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65,
- 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d,
- 0x65, 0x6f, 0x75, 0x74, 0x12, 0x6f, 0x0a, 0x0d, 0x74, 0x63, 0x70, 0x5f, 0x6b, 0x65, 0x65, 0x70,
- 0x61, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x69, 0x73,
- 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76,
- 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x54,
- 0x43, 0x50, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x54, 0x63, 0x70, 0x4b, 0x65,
- 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x52, 0x0c, 0x74, 0x63, 0x70, 0x4b, 0x65, 0x65, 0x70,
- 0x61, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x51, 0x0a, 0x17, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e,
- 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x0c, 0x69, 0x64, 0x6c, 0x65,
- 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
- 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x69, 0x64, 0x6c, 0x65, 0x54,
- 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0x8c, 0x01, 0x0a, 0x0c, 0x54, 0x63, 0x70, 0x4b, 0x65,
- 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x62, 0x65,
- 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x12,
- 0x2d, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
- 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x35,
- 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
- 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x69, 0x6e, 0x74,
- 0x65, 0x72, 0x76, 0x61, 0x6c, 0x1a, 0xba, 0x04, 0x0a, 0x0c, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65,
- 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x31, 0x5f,
- 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x68, 0x74, 0x74, 0x70,
- 0x31, 0x4d, 0x61, 0x78, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x68, 0x74, 0x74, 0x70, 0x32, 0x5f, 0x6d, 0x61, 0x78,
- 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
- 0x10, 0x68, 0x74, 0x74, 0x70, 0x32, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x73, 0x12, 0x3d, 0x0a, 0x1b, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65,
- 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
- 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x52, 0x0b, 0x69, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12,
- 0x7a, 0x0a, 0x11, 0x68, 0x32, 0x5f, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x70, 0x6f,
- 0x6c, 0x69, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4e, 0x2e, 0x69, 0x73, 0x74,
+ 0x33, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x52, 0x0b, 0x72,
+ 0x65, 0x74, 0x72, 0x79, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x1a, 0xf6, 0x05, 0x0a, 0x10, 0x43,
+ 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x4c, 0x42, 0x12,
+ 0x2a, 0x0a, 0x10, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x68, 0x74, 0x74,
+ 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x6e, 0x0a, 0x0b, 0x68,
+ 0x74, 0x74, 0x70, 0x5f, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x4b, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x4c, 0x6f, 0x61,
+ 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
+ 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68,
+ 0x4c, 0x42, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x48, 0x00, 0x52,
+ 0x0a, 0x68, 0x74, 0x74, 0x70, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x75,
+ 0x73, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x08, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49,
+ 0x70, 0x12, 0x3b, 0x0a, 0x19, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f,
+ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05,
+ 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x16, 0x68, 0x74, 0x74, 0x70, 0x51, 0x75, 0x65, 0x72,
+ 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x68,
+ 0x0a, 0x09, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x49, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
+ 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x4c, 0x6f,
+ 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
+ 0x67, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73,
+ 0x68, 0x4c, 0x42, 0x2e, 0x52, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, 0x48, 0x01, 0x52, 0x08,
+ 0x72, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, 0x12, 0x61, 0x0a, 0x06, 0x6d, 0x61, 0x67, 0x6c,
+ 0x65, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f,
+ 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0x33, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65,
+ 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73,
+ 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x4c, 0x42, 0x2e, 0x4d, 0x61, 0x67, 0x4c, 0x65,
+ 0x76, 0x48, 0x01, 0x52, 0x06, 0x6d, 0x61, 0x67, 0x6c, 0x65, 0x76, 0x12, 0x2e, 0x0a, 0x11, 0x6d,
+ 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x69,
+ 0x6d, 0x75, 0x6d, 0x52, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x36, 0x0a, 0x08, 0x52,
+ 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d,
+ 0x75, 0x6d, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x69, 0x6e, 0x67, 0x53,
+ 0x69, 0x7a, 0x65, 0x1a, 0x27, 0x0a, 0x06, 0x4d, 0x61, 0x67, 0x4c, 0x65, 0x76, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x04, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x67, 0x0a, 0x0a,
+ 0x48, 0x54, 0x54, 0x50, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x18, 0x0a, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xe2, 0x41, 0x01, 0x02, 0x52, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x52, 0x03, 0x74, 0x74, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6b, 0x65,
+ 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69,
+ 0x74, 0x68, 0x6d, 0x22, 0x70, 0x0a, 0x08, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x42, 0x12,
+ 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
+ 0x12, 0x12, 0x0a, 0x0a, 0x4c, 0x45, 0x41, 0x53, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x10, 0x01,
+ 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x02,
+ 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x41, 0x53, 0x53, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x10,
+ 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x52, 0x4f, 0x42, 0x49, 0x4e,
+ 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x45, 0x41, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x55,
+ 0x45, 0x53, 0x54, 0x10, 0x05, 0x42, 0x0b, 0x0a, 0x09, 0x6c, 0x62, 0x5f, 0x70, 0x6f, 0x6c, 0x69,
+ 0x63, 0x79, 0x22, 0xd3, 0x0a, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4f, 0x0a,
+ 0x03, 0x74, 0x63, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, 0x73, 0x74,
0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x48, 0x54,
- 0x54, 0x50, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x48, 0x32, 0x55, 0x70, 0x67,
- 0x72, 0x61, 0x64, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0f, 0x68, 0x32, 0x55, 0x70,
- 0x67, 0x72, 0x61, 0x64, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x75,
- 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
- 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x69,
- 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x34, 0x0a, 0x16, 0x6d,
- 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74,
- 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x6d, 0x61, 0x78,
- 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
- 0x73, 0x22, 0x3f, 0x0a, 0x0f, 0x48, 0x32, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x50, 0x6f,
- 0x6c, 0x69, 0x63, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10,
- 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x4f, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x55, 0x50, 0x47, 0x52,
- 0x41, 0x44, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45,
- 0x10, 0x02, 0x22, 0x8a, 0x05, 0x0a, 0x10, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x44, 0x65,
- 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x73, 0x65,
- 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75,
- 0x74, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x4a, 0x0a, 0x22, 0x73, 0x70,
- 0x6c, 0x69, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6c, 0x6f, 0x63,
- 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73,
- 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x45, 0x78, 0x74,
- 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e,
- 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x67, 0x0a, 0x21, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63,
- 0x75, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x69, 0x67,
- 0x69, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
- 0x1e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61,
- 0x6c, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x12,
- 0x5a, 0x0a, 0x1a, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67,
- 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x52, 0x18, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x47, 0x61,
- 0x74, 0x65, 0x77, 0x61, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x16, 0x63,
- 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x35, 0x78, 0x78, 0x5f, 0x65,
- 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49,
- 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x65,
- 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x35, 0x78, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12,
- 0x35, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x54, 0x43,
+ 0x50, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x03, 0x74, 0x63, 0x70, 0x12, 0x52,
+ 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69,
+ 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
+ 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e,
+ 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x04, 0x68, 0x74,
+ 0x74, 0x70, 0x1a, 0x8b, 0x04, 0x0a, 0x0b, 0x54, 0x43, 0x50, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
+ 0x67, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78,
+ 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x63,
+ 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
+ 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12,
+ 0x6f, 0x0a, 0x0d, 0x74, 0x63, 0x70, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e,
+ 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f,
+ 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x54, 0x43, 0x50, 0x53, 0x65, 0x74,
+ 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x54, 0x63, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69,
+ 0x76, 0x65, 0x52, 0x0c, 0x74, 0x63, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65,
+ 0x12, 0x51, 0x0a, 0x17, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x69, 0x6e,
- 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x47, 0x0a, 0x12, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65,
- 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x6d, 0x61,
+ 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x0c, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
+ 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x69, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75,
+ 0x74, 0x1a, 0x8c, 0x01, 0x0a, 0x0c, 0x54, 0x63, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69,
+ 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x69,
+ 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x6e, 0x74,
+ 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
+ 0x1a, 0x85, 0x05, 0x0a, 0x0c, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
+ 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x31, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x70,
+ 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x68, 0x74, 0x74, 0x70, 0x31, 0x4d, 0x61, 0x78, 0x50,
+ 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x2c,
+ 0x0a, 0x12, 0x68, 0x74, 0x74, 0x70, 0x32, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x68, 0x74, 0x74, 0x70,
+ 0x32, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x1b,
+ 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72,
+ 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x50, 0x65,
+ 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6d,
+ 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0c,
+ 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x62,
- 0x61, 0x73, 0x65, 0x45, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12,
- 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x6d,
- 0x61, 0x78, 0x45, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e,
- 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f,
- 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6d,
- 0x69, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22,
- 0xe4, 0x03, 0x0a, 0x11, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x4c, 0x53, 0x53, 0x65, 0x74,
- 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77,
- 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e,
- 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x4c, 0x53, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
- 0x73, 0x2e, 0x54, 0x4c, 0x53, 0x6d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12,
- 0x2d, 0x0a, 0x12, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66,
- 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6c, 0x69,
- 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x1f,
- 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12,
- 0x27, 0x0a, 0x0f, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
- 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x43, 0x65, 0x72, 0x74,
- 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x64,
- 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x4e, 0x61, 0x6d,
- 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x6c, 0x74,
- 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x10, 0x0a,
- 0x03, 0x73, 0x6e, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x6e, 0x69, 0x12,
- 0x4c, 0x0a, 0x14, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70,
- 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
- 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x69, 0x6e, 0x73, 0x65, 0x63,
- 0x75, 0x72, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a,
- 0x06, 0x63, 0x61, 0x5f, 0x63, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63,
- 0x61, 0x43, 0x72, 0x6c, 0x22, 0x40, 0x0a, 0x07, 0x54, 0x4c, 0x53, 0x6d, 0x6f, 0x64, 0x65, 0x12,
- 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06,
- 0x53, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x55, 0x54, 0x55,
- 0x41, 0x4c, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x53, 0x54, 0x49, 0x4f, 0x5f, 0x4d, 0x55,
- 0x54, 0x55, 0x41, 0x4c, 0x10, 0x03, 0x22, 0xa5, 0x04, 0x0a, 0x1b, 0x4c, 0x6f, 0x63, 0x61, 0x6c,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x69,
+ 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x7a, 0x0a, 0x11, 0x68, 0x32,
+ 0x5f, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4e, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65,
+ 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c,
+ 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x74,
+ 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x48, 0x32, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x50,
+ 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0f, 0x68, 0x32, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65,
+ 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c,
+ 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72,
+ 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f,
+ 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x63, 0x75,
+ 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x49, 0x0a, 0x0c,
+ 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f,
+ 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x52,
+ 0x65, 0x74, 0x72, 0x79, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x72,
+ 0x79, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x22, 0x3f, 0x0a, 0x0f, 0x48, 0x32, 0x55, 0x70, 0x67,
+ 0x72, 0x61, 0x64, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45,
+ 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x4f, 0x5f, 0x4e, 0x4f,
+ 0x54, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55,
+ 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x10, 0x02, 0x22, 0xaa, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x74,
+ 0x72, 0x79, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x12, 0x49, 0x0a, 0x0e, 0x62, 0x75, 0x64, 0x67,
+ 0x65, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x22, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x50, 0x65, 0x72,
+ 0x63, 0x65, 0x6e, 0x74, 0x52, 0x0d, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x50, 0x65, 0x72, 0x63,
+ 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79,
+ 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65,
+ 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72,
+ 0x72, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x8a, 0x05, 0x0a, 0x10, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x65,
+ 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x12, 0x63, 0x6f,
+ 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x73,
+ 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x4a, 0x0a,
+ 0x22, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f,
+ 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x65, 0x72, 0x72,
+ 0x6f, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1e, 0x73, 0x70, 0x6c, 0x69, 0x74,
+ 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4f, 0x72, 0x69,
+ 0x67, 0x69, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x67, 0x0a, 0x21, 0x63, 0x6f, 0x6e,
+ 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6f,
+ 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x09,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x52, 0x1e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x4c,
+ 0x6f, 0x63, 0x61, 0x6c, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72,
+ 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x1a, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76,
+ 0x65, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56,
+ 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76,
+ 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x52,
+ 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x35, 0x78,
+ 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x63, 0x6f,
+ 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x35, 0x78, 0x78, 0x45, 0x72, 0x72, 0x6f,
+ 0x72, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
+ 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x47, 0x0a, 0x12, 0x62, 0x61, 0x73,
+ 0x65, 0x5f, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, 0x45, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69,
+ 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x12, 0x6d, 0x61, 0x78, 0x45, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72,
+ 0x63, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x6c,
+ 0x74, 0x68, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x65, 0x72, 0x63, 0x65,
+ 0x6e, 0x74, 0x22, 0xe4, 0x03, 0x0a, 0x11, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x4c, 0x53,
+ 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e,
+ 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0x33, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x4c, 0x53, 0x53, 0x65, 0x74, 0x74,
+ 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x54, 0x4c, 0x53, 0x6d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f,
+ 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x65, 0x72,
+ 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11,
+ 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+ 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b,
+ 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+ 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x43,
+ 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63,
+ 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c,
+ 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f,
+ 0x61, 0x6c, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x0f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73,
+ 0x12, 0x10, 0x0a, 0x03, 0x73, 0x6e, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73,
+ 0x6e, 0x69, 0x12, 0x4c, 0x0a, 0x14, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73,
+ 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x69, 0x6e,
+ 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79,
+ 0x12, 0x15, 0x0a, 0x06, 0x63, 0x61, 0x5f, 0x63, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x63, 0x61, 0x43, 0x72, 0x6c, 0x22, 0x40, 0x0a, 0x07, 0x54, 0x4c, 0x53, 0x6d, 0x6f,
+ 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x00, 0x12,
+ 0x0a, 0x0a, 0x06, 0x53, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d,
+ 0x55, 0x54, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x53, 0x54, 0x49, 0x4f,
+ 0x5f, 0x4d, 0x55, 0x54, 0x55, 0x41, 0x4c, 0x10, 0x03, 0x22, 0xa5, 0x04, 0x0a, 0x1b, 0x4c, 0x6f,
+ 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63,
+ 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x61, 0x0a, 0x0a, 0x64, 0x69, 0x73,
+ 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e,
+ 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67,
+ 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69,
+ 0x74, 0x79, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, 0x65,
+ 0x74, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
+ 0x52, 0x0a, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x5b, 0x0a, 0x08,
+ 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f,
+ 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e,
+ 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c,
0x69, 0x74, 0x79, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53,
- 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x61, 0x0a, 0x0a, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69,
- 0x62, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x69, 0x73, 0x74,
- 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
- 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x4c,
- 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69,
- 0x6e, 0x67, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x64,
- 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x5b, 0x0a, 0x08, 0x66, 0x61, 0x69,
- 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x69, 0x73,
+ 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x52,
+ 0x08, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x66, 0x61, 0x69,
+ 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x72,
+ 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
+ 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0xb2, 0x01, 0x0a,
+ 0x0a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66,
+ 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12,
+ 0x59, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x69, 0x73,
0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76,
0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79,
0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74,
- 0x69, 0x6e, 0x67, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x08, 0x66, 0x61,
- 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76,
- 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6f, 0x72,
- 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
- 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0xb2, 0x01, 0x0a, 0x0a, 0x44, 0x69,
- 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x59, 0x0a, 0x02,
- 0x74, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f,
- 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c,
- 0x70, 0x68, 0x61, 0x33, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x4c, 0x6f, 0x61,
- 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
- 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x54, 0x6f, 0x45, 0x6e,
- 0x74, 0x72, 0x79, 0x52, 0x02, 0x74, 0x6f, 0x1a, 0x35, 0x0a, 0x07, 0x54, 0x6f, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x2e,
- 0x0a, 0x08, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72,
- 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e,
- 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x42, 0x22,
- 0x5a, 0x20, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6e,
- 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
- 0x61, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x69, 0x6e, 0x67, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x54,
+ 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x02, 0x74, 0x6f, 0x1a, 0x35, 0x0a, 0x07, 0x54, 0x6f,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+ 0x01, 0x1a, 0x2e, 0x0a, 0x08, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a,
+ 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f,
+ 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74,
+ 0x6f, 0x42, 0x22, 0x5a, 0x20, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70,
+ 0x69, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -3055,7 +3156,7 @@ func file_networking_v1alpha3_destination_rule_proto_rawDescGZIP() []byte {
}
var file_networking_v1alpha3_destination_rule_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
-var file_networking_v1alpha3_destination_rule_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
+var file_networking_v1alpha3_destination_rule_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_networking_v1alpha3_destination_rule_proto_goTypes = []any{
(TrafficPolicy_ProxyProtocol_VERSION)(0), // 0: istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol.VERSION
(LoadBalancerSettings_SimpleLB)(0), // 1: istio.networking.v1alpha3.LoadBalancerSettings.SimpleLB
@@ -3066,82 +3167,88 @@ var file_networking_v1alpha3_destination_rule_proto_goTypes = []any{
(*Subset)(nil), // 6: istio.networking.v1alpha3.Subset
(*LoadBalancerSettings)(nil), // 7: istio.networking.v1alpha3.LoadBalancerSettings
(*ConnectionPoolSettings)(nil), // 8: istio.networking.v1alpha3.ConnectionPoolSettings
- (*OutlierDetection)(nil), // 9: istio.networking.v1alpha3.OutlierDetection
- (*ClientTLSSettings)(nil), // 10: istio.networking.v1alpha3.ClientTLSSettings
- (*LocalityLoadBalancerSetting)(nil), // 11: istio.networking.v1alpha3.LocalityLoadBalancerSetting
- (*TrafficPolicy_PortTrafficPolicy)(nil), // 12: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy
- (*TrafficPolicy_TunnelSettings)(nil), // 13: istio.networking.v1alpha3.TrafficPolicy.TunnelSettings
- (*TrafficPolicy_ProxyProtocol)(nil), // 14: istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol
- nil, // 15: istio.networking.v1alpha3.Subset.LabelsEntry
- (*LoadBalancerSettings_ConsistentHashLB)(nil), // 16: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB
- (*LoadBalancerSettings_ConsistentHashLB_RingHash)(nil), // 17: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.RingHash
- (*LoadBalancerSettings_ConsistentHashLB_MagLev)(nil), // 18: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.MagLev
- (*LoadBalancerSettings_ConsistentHashLB_HTTPCookie)(nil), // 19: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie
- (*ConnectionPoolSettings_TCPSettings)(nil), // 20: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings
- (*ConnectionPoolSettings_HTTPSettings)(nil), // 21: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings
- (*ConnectionPoolSettings_TCPSettings_TcpKeepalive)(nil), // 22: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive
- (*LocalityLoadBalancerSetting_Distribute)(nil), // 23: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute
- (*LocalityLoadBalancerSetting_Failover)(nil), // 24: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Failover
- nil, // 25: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.ToEntry
- (*v1beta1.WorkloadSelector)(nil), // 26: istio.type.v1beta1.WorkloadSelector
- (*duration.Duration)(nil), // 27: google.protobuf.Duration
- (*wrappers.UInt32Value)(nil), // 28: google.protobuf.UInt32Value
- (*wrappers.BoolValue)(nil), // 29: google.protobuf.BoolValue
- (*PortSelector)(nil), // 30: istio.networking.v1alpha3.PortSelector
+ (*RetryBudget)(nil), // 9: istio.networking.v1alpha3.RetryBudget
+ (*OutlierDetection)(nil), // 10: istio.networking.v1alpha3.OutlierDetection
+ (*ClientTLSSettings)(nil), // 11: istio.networking.v1alpha3.ClientTLSSettings
+ (*LocalityLoadBalancerSetting)(nil), // 12: istio.networking.v1alpha3.LocalityLoadBalancerSetting
+ (*TrafficPolicy_PortTrafficPolicy)(nil), // 13: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy
+ (*TrafficPolicy_TunnelSettings)(nil), // 14: istio.networking.v1alpha3.TrafficPolicy.TunnelSettings
+ (*TrafficPolicy_ProxyProtocol)(nil), // 15: istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol
+ nil, // 16: istio.networking.v1alpha3.Subset.LabelsEntry
+ (*LoadBalancerSettings_ConsistentHashLB)(nil), // 17: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB
+ (*LoadBalancerSettings_ConsistentHashLB_RingHash)(nil), // 18: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.RingHash
+ (*LoadBalancerSettings_ConsistentHashLB_MagLev)(nil), // 19: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.MagLev
+ (*LoadBalancerSettings_ConsistentHashLB_HTTPCookie)(nil), // 20: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie
+ (*ConnectionPoolSettings_TCPSettings)(nil), // 21: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings
+ (*ConnectionPoolSettings_HTTPSettings)(nil), // 22: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings
+ (*ConnectionPoolSettings_TCPSettings_TcpKeepalive)(nil), // 23: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive
+ (*LocalityLoadBalancerSetting_Distribute)(nil), // 24: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute
+ (*LocalityLoadBalancerSetting_Failover)(nil), // 25: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Failover
+ nil, // 26: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.ToEntry
+ (*v1beta1.WorkloadSelector)(nil), // 27: istio.type.v1beta1.WorkloadSelector
+ (*duration.Duration)(nil), // 28: google.protobuf.Duration
+ (*Percent)(nil), // 29: istio.networking.v1alpha3.Percent
+ (*wrappers.UInt32Value)(nil), // 30: google.protobuf.UInt32Value
+ (*wrappers.BoolValue)(nil), // 31: google.protobuf.BoolValue
+ (*PortSelector)(nil), // 32: istio.networking.v1alpha3.PortSelector
}
var file_networking_v1alpha3_destination_rule_proto_depIdxs = []int32{
5, // 0: istio.networking.v1alpha3.DestinationRule.traffic_policy:type_name -> istio.networking.v1alpha3.TrafficPolicy
6, // 1: istio.networking.v1alpha3.DestinationRule.subsets:type_name -> istio.networking.v1alpha3.Subset
- 26, // 2: istio.networking.v1alpha3.DestinationRule.workload_selector:type_name -> istio.type.v1beta1.WorkloadSelector
+ 27, // 2: istio.networking.v1alpha3.DestinationRule.workload_selector:type_name -> istio.type.v1beta1.WorkloadSelector
7, // 3: istio.networking.v1alpha3.TrafficPolicy.load_balancer:type_name -> istio.networking.v1alpha3.LoadBalancerSettings
8, // 4: istio.networking.v1alpha3.TrafficPolicy.connection_pool:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings
- 9, // 5: istio.networking.v1alpha3.TrafficPolicy.outlier_detection:type_name -> istio.networking.v1alpha3.OutlierDetection
- 10, // 6: istio.networking.v1alpha3.TrafficPolicy.tls:type_name -> istio.networking.v1alpha3.ClientTLSSettings
- 12, // 7: istio.networking.v1alpha3.TrafficPolicy.port_level_settings:type_name -> istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy
- 13, // 8: istio.networking.v1alpha3.TrafficPolicy.tunnel:type_name -> istio.networking.v1alpha3.TrafficPolicy.TunnelSettings
- 14, // 9: istio.networking.v1alpha3.TrafficPolicy.proxy_protocol:type_name -> istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol
- 15, // 10: istio.networking.v1alpha3.Subset.labels:type_name -> istio.networking.v1alpha3.Subset.LabelsEntry
+ 10, // 5: istio.networking.v1alpha3.TrafficPolicy.outlier_detection:type_name -> istio.networking.v1alpha3.OutlierDetection
+ 11, // 6: istio.networking.v1alpha3.TrafficPolicy.tls:type_name -> istio.networking.v1alpha3.ClientTLSSettings
+ 13, // 7: istio.networking.v1alpha3.TrafficPolicy.port_level_settings:type_name -> istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy
+ 14, // 8: istio.networking.v1alpha3.TrafficPolicy.tunnel:type_name -> istio.networking.v1alpha3.TrafficPolicy.TunnelSettings
+ 15, // 9: istio.networking.v1alpha3.TrafficPolicy.proxy_protocol:type_name -> istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol
+ 16, // 10: istio.networking.v1alpha3.Subset.labels:type_name -> istio.networking.v1alpha3.Subset.LabelsEntry
5, // 11: istio.networking.v1alpha3.Subset.traffic_policy:type_name -> istio.networking.v1alpha3.TrafficPolicy
1, // 12: istio.networking.v1alpha3.LoadBalancerSettings.simple:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.SimpleLB
- 16, // 13: istio.networking.v1alpha3.LoadBalancerSettings.consistent_hash:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB
- 11, // 14: istio.networking.v1alpha3.LoadBalancerSettings.locality_lb_setting:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting
- 27, // 15: istio.networking.v1alpha3.LoadBalancerSettings.warmup_duration_secs:type_name -> google.protobuf.Duration
- 20, // 16: istio.networking.v1alpha3.ConnectionPoolSettings.tcp:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings
- 21, // 17: istio.networking.v1alpha3.ConnectionPoolSettings.http:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings
- 28, // 18: istio.networking.v1alpha3.OutlierDetection.consecutive_local_origin_failures:type_name -> google.protobuf.UInt32Value
- 28, // 19: istio.networking.v1alpha3.OutlierDetection.consecutive_gateway_errors:type_name -> google.protobuf.UInt32Value
- 28, // 20: istio.networking.v1alpha3.OutlierDetection.consecutive_5xx_errors:type_name -> google.protobuf.UInt32Value
- 27, // 21: istio.networking.v1alpha3.OutlierDetection.interval:type_name -> google.protobuf.Duration
- 27, // 22: istio.networking.v1alpha3.OutlierDetection.base_ejection_time:type_name -> google.protobuf.Duration
- 3, // 23: istio.networking.v1alpha3.ClientTLSSettings.mode:type_name -> istio.networking.v1alpha3.ClientTLSSettings.TLSmode
- 29, // 24: istio.networking.v1alpha3.ClientTLSSettings.insecure_skip_verify:type_name -> google.protobuf.BoolValue
- 23, // 25: istio.networking.v1alpha3.LocalityLoadBalancerSetting.distribute:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute
- 24, // 26: istio.networking.v1alpha3.LocalityLoadBalancerSetting.failover:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Failover
- 29, // 27: istio.networking.v1alpha3.LocalityLoadBalancerSetting.enabled:type_name -> google.protobuf.BoolValue
- 30, // 28: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.port:type_name -> istio.networking.v1alpha3.PortSelector
- 7, // 29: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.load_balancer:type_name -> istio.networking.v1alpha3.LoadBalancerSettings
- 8, // 30: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.connection_pool:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings
- 9, // 31: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.outlier_detection:type_name -> istio.networking.v1alpha3.OutlierDetection
- 10, // 32: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.tls:type_name -> istio.networking.v1alpha3.ClientTLSSettings
- 0, // 33: istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol.version:type_name -> istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol.VERSION
- 19, // 34: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.http_cookie:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie
- 17, // 35: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.ring_hash:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.RingHash
- 18, // 36: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.maglev:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.MagLev
- 27, // 37: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie.ttl:type_name -> google.protobuf.Duration
- 27, // 38: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.connect_timeout:type_name -> google.protobuf.Duration
- 22, // 39: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.tcp_keepalive:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive
- 27, // 40: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.max_connection_duration:type_name -> google.protobuf.Duration
- 27, // 41: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.idle_timeout:type_name -> google.protobuf.Duration
- 27, // 42: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.idle_timeout:type_name -> google.protobuf.Duration
- 2, // 43: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.h2_upgrade_policy:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy
- 27, // 44: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive.time:type_name -> google.protobuf.Duration
- 27, // 45: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive.interval:type_name -> google.protobuf.Duration
- 25, // 46: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.to:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.ToEntry
- 47, // [47:47] is the sub-list for method output_type
- 47, // [47:47] is the sub-list for method input_type
- 47, // [47:47] is the sub-list for extension type_name
- 47, // [47:47] is the sub-list for extension extendee
- 0, // [0:47] is the sub-list for field type_name
+ 17, // 13: istio.networking.v1alpha3.LoadBalancerSettings.consistent_hash:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB
+ 12, // 14: istio.networking.v1alpha3.LoadBalancerSettings.locality_lb_setting:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting
+ 28, // 15: istio.networking.v1alpha3.LoadBalancerSettings.warmup_duration_secs:type_name -> google.protobuf.Duration
+ 9, // 16: istio.networking.v1alpha3.LoadBalancerSettings.retry_budget:type_name -> istio.networking.v1alpha3.RetryBudget
+ 21, // 17: istio.networking.v1alpha3.ConnectionPoolSettings.tcp:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings
+ 22, // 18: istio.networking.v1alpha3.ConnectionPoolSettings.http:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings
+ 29, // 19: istio.networking.v1alpha3.RetryBudget.budget_percent:type_name -> istio.networking.v1alpha3.Percent
+ 30, // 20: istio.networking.v1alpha3.RetryBudget.min_retry_concurrency:type_name -> google.protobuf.UInt32Value
+ 30, // 21: istio.networking.v1alpha3.OutlierDetection.consecutive_local_origin_failures:type_name -> google.protobuf.UInt32Value
+ 30, // 22: istio.networking.v1alpha3.OutlierDetection.consecutive_gateway_errors:type_name -> google.protobuf.UInt32Value
+ 30, // 23: istio.networking.v1alpha3.OutlierDetection.consecutive_5xx_errors:type_name -> google.protobuf.UInt32Value
+ 28, // 24: istio.networking.v1alpha3.OutlierDetection.interval:type_name -> google.protobuf.Duration
+ 28, // 25: istio.networking.v1alpha3.OutlierDetection.base_ejection_time:type_name -> google.protobuf.Duration
+ 3, // 26: istio.networking.v1alpha3.ClientTLSSettings.mode:type_name -> istio.networking.v1alpha3.ClientTLSSettings.TLSmode
+ 31, // 27: istio.networking.v1alpha3.ClientTLSSettings.insecure_skip_verify:type_name -> google.protobuf.BoolValue
+ 24, // 28: istio.networking.v1alpha3.LocalityLoadBalancerSetting.distribute:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute
+ 25, // 29: istio.networking.v1alpha3.LocalityLoadBalancerSetting.failover:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Failover
+ 31, // 30: istio.networking.v1alpha3.LocalityLoadBalancerSetting.enabled:type_name -> google.protobuf.BoolValue
+ 32, // 31: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.port:type_name -> istio.networking.v1alpha3.PortSelector
+ 7, // 32: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.load_balancer:type_name -> istio.networking.v1alpha3.LoadBalancerSettings
+ 8, // 33: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.connection_pool:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings
+ 10, // 34: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.outlier_detection:type_name -> istio.networking.v1alpha3.OutlierDetection
+ 11, // 35: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.tls:type_name -> istio.networking.v1alpha3.ClientTLSSettings
+ 0, // 36: istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol.version:type_name -> istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol.VERSION
+ 20, // 37: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.http_cookie:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie
+ 18, // 38: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.ring_hash:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.RingHash
+ 19, // 39: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.maglev:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.MagLev
+ 28, // 40: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie.ttl:type_name -> google.protobuf.Duration
+ 28, // 41: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.connect_timeout:type_name -> google.protobuf.Duration
+ 23, // 42: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.tcp_keepalive:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive
+ 28, // 43: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.max_connection_duration:type_name -> google.protobuf.Duration
+ 28, // 44: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.idle_timeout:type_name -> google.protobuf.Duration
+ 28, // 45: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.idle_timeout:type_name -> google.protobuf.Duration
+ 2, // 46: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.h2_upgrade_policy:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy
+ 9, // 47: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.retry_budget:type_name -> istio.networking.v1alpha3.RetryBudget
+ 28, // 48: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive.time:type_name -> google.protobuf.Duration
+ 28, // 49: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive.interval:type_name -> google.protobuf.Duration
+ 26, // 50: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.to:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.ToEntry
+ 51, // [51:51] is the sub-list for method output_type
+ 51, // [51:51] is the sub-list for method input_type
+ 51, // [51:51] is the sub-list for extension type_name
+ 51, // [51:51] is the sub-list for extension extendee
+ 0, // [0:51] is the sub-list for field type_name
}
func init() { file_networking_v1alpha3_destination_rule_proto_init() }
@@ -3212,7 +3319,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
}
}
file_networking_v1alpha3_destination_rule_proto_msgTypes[5].Exporter = func(v any, i int) any {
- switch v := v.(*OutlierDetection); i {
+ switch v := v.(*RetryBudget); i {
case 0:
return &v.state
case 1:
@@ -3224,7 +3331,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
}
}
file_networking_v1alpha3_destination_rule_proto_msgTypes[6].Exporter = func(v any, i int) any {
- switch v := v.(*ClientTLSSettings); i {
+ switch v := v.(*OutlierDetection); i {
case 0:
return &v.state
case 1:
@@ -3236,7 +3343,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
}
}
file_networking_v1alpha3_destination_rule_proto_msgTypes[7].Exporter = func(v any, i int) any {
- switch v := v.(*LocalityLoadBalancerSetting); i {
+ switch v := v.(*ClientTLSSettings); i {
case 0:
return &v.state
case 1:
@@ -3248,7 +3355,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
}
}
file_networking_v1alpha3_destination_rule_proto_msgTypes[8].Exporter = func(v any, i int) any {
- switch v := v.(*TrafficPolicy_PortTrafficPolicy); i {
+ switch v := v.(*LocalityLoadBalancerSetting); i {
case 0:
return &v.state
case 1:
@@ -3260,7 +3367,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
}
}
file_networking_v1alpha3_destination_rule_proto_msgTypes[9].Exporter = func(v any, i int) any {
- switch v := v.(*TrafficPolicy_TunnelSettings); i {
+ switch v := v.(*TrafficPolicy_PortTrafficPolicy); i {
case 0:
return &v.state
case 1:
@@ -3272,6 +3379,18 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
}
}
file_networking_v1alpha3_destination_rule_proto_msgTypes[10].Exporter = func(v any, i int) any {
+ switch v := v.(*TrafficPolicy_TunnelSettings); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_networking_v1alpha3_destination_rule_proto_msgTypes[11].Exporter = func(v any, i int) any {
switch v := v.(*TrafficPolicy_ProxyProtocol); i {
case 0:
return &v.state
@@ -3283,7 +3402,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1alpha3_destination_rule_proto_msgTypes[12].Exporter = func(v any, i int) any {
+ file_networking_v1alpha3_destination_rule_proto_msgTypes[13].Exporter = func(v any, i int) any {
switch v := v.(*LoadBalancerSettings_ConsistentHashLB); i {
case 0:
return &v.state
@@ -3295,7 +3414,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1alpha3_destination_rule_proto_msgTypes[13].Exporter = func(v any, i int) any {
+ file_networking_v1alpha3_destination_rule_proto_msgTypes[14].Exporter = func(v any, i int) any {
switch v := v.(*LoadBalancerSettings_ConsistentHashLB_RingHash); i {
case 0:
return &v.state
@@ -3307,7 +3426,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1alpha3_destination_rule_proto_msgTypes[14].Exporter = func(v any, i int) any {
+ file_networking_v1alpha3_destination_rule_proto_msgTypes[15].Exporter = func(v any, i int) any {
switch v := v.(*LoadBalancerSettings_ConsistentHashLB_MagLev); i {
case 0:
return &v.state
@@ -3319,7 +3438,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1alpha3_destination_rule_proto_msgTypes[15].Exporter = func(v any, i int) any {
+ file_networking_v1alpha3_destination_rule_proto_msgTypes[16].Exporter = func(v any, i int) any {
switch v := v.(*LoadBalancerSettings_ConsistentHashLB_HTTPCookie); i {
case 0:
return &v.state
@@ -3331,7 +3450,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1alpha3_destination_rule_proto_msgTypes[16].Exporter = func(v any, i int) any {
+ file_networking_v1alpha3_destination_rule_proto_msgTypes[17].Exporter = func(v any, i int) any {
switch v := v.(*ConnectionPoolSettings_TCPSettings); i {
case 0:
return &v.state
@@ -3343,7 +3462,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1alpha3_destination_rule_proto_msgTypes[17].Exporter = func(v any, i int) any {
+ file_networking_v1alpha3_destination_rule_proto_msgTypes[18].Exporter = func(v any, i int) any {
switch v := v.(*ConnectionPoolSettings_HTTPSettings); i {
case 0:
return &v.state
@@ -3355,7 +3474,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1alpha3_destination_rule_proto_msgTypes[18].Exporter = func(v any, i int) any {
+ file_networking_v1alpha3_destination_rule_proto_msgTypes[19].Exporter = func(v any, i int) any {
switch v := v.(*ConnectionPoolSettings_TCPSettings_TcpKeepalive); i {
case 0:
return &v.state
@@ -3367,7 +3486,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1alpha3_destination_rule_proto_msgTypes[19].Exporter = func(v any, i int) any {
+ file_networking_v1alpha3_destination_rule_proto_msgTypes[20].Exporter = func(v any, i int) any {
switch v := v.(*LocalityLoadBalancerSetting_Distribute); i {
case 0:
return &v.state
@@ -3379,7 +3498,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1alpha3_destination_rule_proto_msgTypes[20].Exporter = func(v any, i int) any {
+ file_networking_v1alpha3_destination_rule_proto_msgTypes[21].Exporter = func(v any, i int) any {
switch v := v.(*LocalityLoadBalancerSetting_Failover); i {
case 0:
return &v.state
@@ -3396,7 +3515,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
(*LoadBalancerSettings_Simple)(nil),
(*LoadBalancerSettings_ConsistentHash)(nil),
}
- file_networking_v1alpha3_destination_rule_proto_msgTypes[12].OneofWrappers = []any{
+ file_networking_v1alpha3_destination_rule_proto_msgTypes[13].OneofWrappers = []any{
(*LoadBalancerSettings_ConsistentHashLB_HttpHeaderName)(nil),
(*LoadBalancerSettings_ConsistentHashLB_HttpCookie)(nil),
(*LoadBalancerSettings_ConsistentHashLB_UseSourceIp)(nil),
@@ -3410,7 +3529,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_networking_v1alpha3_destination_rule_proto_rawDesc,
NumEnums: 4,
- NumMessages: 22,
+ NumMessages: 23,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/networking/v1alpha3/destination_rule.pb.html b/networking/v1alpha3/destination_rule.pb.html
index 9646b7216da..77bb849be76 100644
--- a/networking/v1alpha3/destination_rule.pb.html
+++ b/networking/v1alpha3/destination_rule.pb.html
@@ -6,7 +6,7 @@
generator: protoc-gen-docs
schema: istio.networking.v1alpha3.DestinationRule
aliases: [/docs/reference/config/networking/v1alpha3/destination-rule]
-number_of_entries: 25
+number_of_entries: 26
---
DestinationRule
defines policies that apply to traffic intended for a
service after routing has occurred. These rules specify configuration
@@ -473,6 +473,15 @@
LoadBalancerSettings
amount of requests.
Currently this is only supported for ROUND_ROBIN and LEAST_REQUEST load balancers.
+
+
+No
+ |
+
+
+retryBudget |
+RetryBudget |
+
|
No
@@ -533,6 +542,49 @@ ConnectionPoolSettings
|
HTTP connection pool settings.
+ |
+
+No
+ |
+
+
+
+
+RetryBudget
+
+
+
+
+Field |
+Type |
+Description |
+Required |
+
+
+
+
+budgetPercent |
+Percent |
+
+ The limit on concurrent retries as a percentage of active requests and
+active pending requests.
+ex. if there are 100 active requests and the budget_percent is set
+to 25, there may be 25 active retries.
+This parameter is optional. Defaults to 20%.
+
+ |
+
+No
+ |
+
+
+minRetryConcurrency |
+UInt32Value |
+
+ The minimum number of concurrent retries allowed for the retry budget.
+The limit on the number of active retries may never go below this number.
+This parameter is optional. Defaults to 3.
+
|
No
@@ -1655,6 +1707,18 @@ ConnectionPoolSettings.HTTPSettings
The maximum number of concurrent streams allowed for a peer on one HTTP/2 connection.
Defaults to 2^31-1.
+ |
+
+No
+ |
+
+
+retryBudget |
+RetryBudget |
+
+ The amount of concurrent retries allowed in the case of failure, a
+percentage of the active requests.
+
|
No
diff --git a/networking/v1alpha3/destination_rule.proto b/networking/v1alpha3/destination_rule.proto
index dadc379395b..31e472cb6ab 100644
--- a/networking/v1alpha3/destination_rule.proto
+++ b/networking/v1alpha3/destination_rule.proto
@@ -514,6 +514,8 @@ message LoadBalancerSettings {
// amount of requests.
// Currently this is only supported for ROUND_ROBIN and LEAST_REQUEST load balancers.
google.protobuf.Duration warmup_duration_secs = 4;
+
+ RetryBudget retry_budget = 5;
}
// Connection pool settings for an upstream host. The settings apply to
@@ -642,6 +644,10 @@ message ConnectionPoolSettings {
// The maximum number of concurrent streams allowed for a peer on one HTTP/2 connection.
// Defaults to 2^31-1.
int32 max_concurrent_streams = 8;
+
+ // The amount of concurrent retries allowed in the case of failure, a
+ // percentage of the active requests.
+ RetryBudget retry_budget = 9;
};
// Settings common to both HTTP and TCP upstream connections.
@@ -650,6 +656,20 @@ message ConnectionPoolSettings {
HTTPSettings http = 2;
}
+message RetryBudget {
+ // The limit on concurrent retries as a percentage of active requests and
+ // active pending requests.
+ // ex. if there are 100 active requests and the budget_percent is set
+ // to 25, there may be 25 active retries.
+ // This parameter is optional. Defaults to 20%.
+ Percent budget_percent = 1;
+
+ // The minimum number of concurrent retries allowed for the retry budget.
+ // The limit on the number of active retries may never go below this number.
+ // This parameter is optional. Defaults to 3.
+ google.protobuf.UInt32Value min_retry_concurrency = 2;
+}
+
// A Circuit breaker implementation that tracks the status of each
// individual host in the upstream service. Applicable to both HTTP and
// TCP services. For HTTP services, hosts that continually return 5xx
diff --git a/networking/v1alpha3/destination_rule_deepcopy.gen.go b/networking/v1alpha3/destination_rule_deepcopy.gen.go
index 597753faf14..769112c9fb4 100644
--- a/networking/v1alpha3/destination_rule_deepcopy.gen.go
+++ b/networking/v1alpha3/destination_rule_deepcopy.gen.go
@@ -320,6 +320,27 @@ func (in *ConnectionPoolSettings_HTTPSettings) DeepCopyInterface() interface{} {
return in.DeepCopy()
}
+// DeepCopyInto supports using RetryBudget within kubernetes types, where deepcopy-gen is used.
+func (in *RetryBudget) DeepCopyInto(out *RetryBudget) {
+ p := proto.Clone(in).(*RetryBudget)
+ *out = *p
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetryBudget. Required by controller-gen.
+func (in *RetryBudget) DeepCopy() *RetryBudget {
+ if in == nil {
+ return nil
+ }
+ out := new(RetryBudget)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new RetryBudget. Required by controller-gen.
+func (in *RetryBudget) DeepCopyInterface() interface{} {
+ return in.DeepCopy()
+}
+
// DeepCopyInto supports using OutlierDetection within kubernetes types, where deepcopy-gen is used.
func (in *OutlierDetection) DeepCopyInto(out *OutlierDetection) {
p := proto.Clone(in).(*OutlierDetection)
diff --git a/networking/v1alpha3/destination_rule_json.gen.go b/networking/v1alpha3/destination_rule_json.gen.go
index 377644a0f1c..e99969611a3 100644
--- a/networking/v1alpha3/destination_rule_json.gen.go
+++ b/networking/v1alpha3/destination_rule_json.gen.go
@@ -171,6 +171,17 @@ func (this *ConnectionPoolSettings_HTTPSettings) UnmarshalJSON(b []byte) error {
return DestinationRuleUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}
+// MarshalJSON is a custom marshaler for RetryBudget
+func (this *RetryBudget) MarshalJSON() ([]byte, error) {
+ str, err := DestinationRuleMarshaler.MarshalToString(this)
+ return []byte(str), err
+}
+
+// UnmarshalJSON is a custom unmarshaler for RetryBudget
+func (this *RetryBudget) UnmarshalJSON(b []byte) error {
+ return DestinationRuleUnmarshaler.Unmarshal(bytes.NewReader(b), this)
+}
+
// MarshalJSON is a custom marshaler for OutlierDetection
func (this *OutlierDetection) MarshalJSON() ([]byte, error) {
str, err := DestinationRuleMarshaler.MarshalToString(this)
diff --git a/networking/v1beta1/destination_rule_alias.gen.go b/networking/v1beta1/destination_rule_alias.gen.go
index 46de656f5e6..58620b23109 100644
--- a/networking/v1beta1/destination_rule_alias.gen.go
+++ b/networking/v1beta1/destination_rule_alias.gen.go
@@ -270,6 +270,8 @@ const ConnectionPoolSettings_HTTPSettings_DO_NOT_UPGRADE ConnectionPoolSettings_
// This opt-in option overrides the default.
const ConnectionPoolSettings_HTTPSettings_UPGRADE ConnectionPoolSettings_HTTPSettings_H2UpgradePolicy = v1alpha3.ConnectionPoolSettings_HTTPSettings_UPGRADE
+type RetryBudget = v1alpha3.RetryBudget
+
// A Circuit breaker implementation that tracks the status of each
// individual host in the upstream service. Applicable to both HTTP and
// TCP services. For HTTP services, hosts that continually return 5xx
From 57cd116cb51d690e261bb9b18f33b8a9e0fa75d7 Mon Sep 17 00:00:00 2001
From: Eric Bishop
Date: Thu, 20 Jun 2024 10:47:09 -0400
Subject: [PATCH 2/3] Added comment to clarify necessity of VS retry policy
---
networking/v1alpha3/destination_rule.pb.go | 4 ++++
networking/v1alpha3/destination_rule.pb.html | 3 +++
networking/v1alpha3/destination_rule.proto | 4 ++++
3 files changed, 11 insertions(+)
diff --git a/networking/v1alpha3/destination_rule.pb.go b/networking/v1alpha3/destination_rule.pb.go
index 3b56d6abffd..38ef50f88f5 100644
--- a/networking/v1alpha3/destination_rule.pb.go
+++ b/networking/v1alpha3/destination_rule.pb.go
@@ -2412,6 +2412,10 @@ type ConnectionPoolSettings_HTTPSettings struct {
MaxConcurrentStreams int32 `protobuf:"varint,8,opt,name=max_concurrent_streams,json=maxConcurrentStreams,proto3" json:"max_concurrent_streams,omitempty"`
// The amount of concurrent retries allowed in the case of failure, a
// percentage of the active requests.
+ //
+ // NOTE: Including a retry budget requires a retry policy to exist within
+ // the [VirtualService](https://istio.io/latest/docs/reference/config/networking/virtual-service/#HTTPRetry) resource
+ // routing to this destination, in order for failed requests to be retried.
RetryBudget *RetryBudget `protobuf:"bytes,9,opt,name=retry_budget,json=retryBudget,proto3" json:"retry_budget,omitempty"`
}
diff --git a/networking/v1alpha3/destination_rule.pb.html b/networking/v1alpha3/destination_rule.pb.html
index 77bb849be76..ea192a4bf84 100644
--- a/networking/v1alpha3/destination_rule.pb.html
+++ b/networking/v1alpha3/destination_rule.pb.html
@@ -1718,6 +1718,9 @@ ConnectionPoolSettings.HTTPSettings
The amount of concurrent retries allowed in the case of failure, a
percentage of the active requests.
+NOTE: Including a retry budget requires a retry policy to exist within
+the VirtualService resource
+routing to this destination, in order for failed requests to be retried.
|
diff --git a/networking/v1alpha3/destination_rule.proto b/networking/v1alpha3/destination_rule.proto
index 31e472cb6ab..e8f7de17165 100644
--- a/networking/v1alpha3/destination_rule.proto
+++ b/networking/v1alpha3/destination_rule.proto
@@ -647,6 +647,10 @@ message ConnectionPoolSettings {
// The amount of concurrent retries allowed in the case of failure, a
// percentage of the active requests.
+ //
+ // NOTE: Including a retry budget requires a retry policy to exist within
+ // the [VirtualService](https://istio.io/latest/docs/reference/config/networking/virtual-service/#HTTPRetry) resource
+ // routing to this destination, in order for failed requests to be retried.
RetryBudget retry_budget = 9;
};
From 3182fb90de4829e74d55d239f1bd4212963d0712 Mon Sep 17 00:00:00 2001
From: Eric Bishop
Date: Tue, 2 Jul 2024 11:42:27 -0400
Subject: [PATCH 3/3] Add release notes
---
releasenotes/notes/dr-retry-budget.yaml | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 releasenotes/notes/dr-retry-budget.yaml
diff --git a/releasenotes/notes/dr-retry-budget.yaml b/releasenotes/notes/dr-retry-budget.yaml
new file mode 100644
index 00000000000..906f92f6775
--- /dev/null
+++ b/releasenotes/notes/dr-retry-budget.yaml
@@ -0,0 +1,8 @@
+apiVersion: release-notes/v2
+kind: feature
+area: traffic-management
+issue:
+ - https://github.com/istio/istio/issues/27419
+releaseNotes:
+ - |
+ **Added** configurable retry_budget under DestinationRule ConnectionPoolSettings.
| |