+requestVolume |
+UInt32Value |
+
+ The minimum number of total requests that must be collected in one
+interval (as defined by the interval duration above) to include this address
+in success rate based outlier detection. If the volume is lower than this
+setting, outlier detection via success rate statistics is not performed
+for that address.
+
|
No
diff --git a/networking/v1alpha3/destination_rule.proto b/networking/v1alpha3/destination_rule.proto
index b0c8501a124..904a4ce6bb0 100644
--- a/networking/v1alpha3/destination_rule.proto
+++ b/networking/v1alpha3/destination_rule.proto
@@ -946,6 +946,74 @@ message OutlierDetection {
// disabled by setting it to 0%. The default is 0% as it's not typically
// applicable in k8s environments with few pods per service.
int32 min_health_percent = 5;
+
+ // FailurePercent Algorithm for Grpc-xds proxyless for deciding
+ // if the host is an outlier or not.
+ FailurePercentageEjection failure_percentage_ejection = 10;
+
+ // SuccessRateEjection Algorithm for Grpc-xds proxyless for deciding
+ // if the host is an outlier or not.
+ SuccessRateEjection success_rate_ejection = 11;
+}
+
+// Parameters for the failure percentage algorithm.
+// This algorithm ejects individual endpoints whose failure rate is greater than
+// some threshold, independently of any other endpoint
+// Defaults to values declared in envoy.config.cluster.v3.OutlierDetection.SuccessRateEjection
+message FailurePercentageEjection {
+ // The failure percentage to use when determining failure percentage-based outlier detection. If
+ // the failure percentage of a given address is greater than or equal to this value, it will be
+ // ejected.
+ google.protobuf.UInt32Value threshold = 1;
+
+ // The % chance that an address will be actually ejected when an outlier status is detected through
+ // failure percentage statistics. This setting can be used to disable ejection or to ramp it up
+ // slowly.
+ google.protobuf.UInt32Value enforcement_percentage = 2;
+
+ // The minimum number of addresses in order to perform failure percentage-based ejection.
+ // If the total number of addresses is less than this value, failure percentage-based
+ // ejection will not be performed.
+ google.protobuf.UInt32Value minimum_hosts = 3;
+
+ // The minimum number of total requests that must be collected in one interval (as defined by the
+ // interval duration above) to perform failure percentage-based ejection for this address. If the
+ // volume is lower than this setting, failure percentage-based ejection will not be performed for
+ // this host.
+ google.protobuf.UInt32Value request_volume = 4;
+}
+
+// Parameters for the success rate ejection algorithm.
+// This algorithm monitors the request success rate for all endpoints and
+// ejects individual endpoints whose success rates are statistical outliers.
+// Defaults to values declared in envoy.config.cluster.v3.OutlierDetection.SuccessRateEjection
+message SuccessRateEjection {
+ // This factor is used to determine the ejection threshold for success rate
+ // outlier ejection. The ejection threshold is the difference between the
+ // mean success rate, and the product of this factor and the standard
+ // deviation of the mean success rate: mean - (stdev *
+ // success_rate_stdev_factor). This factor is divided by a thousand to get a
+ // double. That is, if the desired factor is 1.9, the runtime value should
+ // be 1900.
+ google.protobuf.UInt32Value stdev_factor = 1;
+
+ // The % chance that an address will be actually ejected when an outlier status
+ // is detected through success rate statistics. This setting can be used to
+ // disable ejection or to ramp it up slowly.
+ google.protobuf.UInt32Value enforcement_percentage = 2;
+
+ // The number of addresses that must have enough request volume to
+ // detect success rate outliers. If the number of addresses is less than this
+ // setting, outlier detection via success rate statistics is not performed
+ // for any addresses.
+ google.protobuf.UInt32Value minimum_hosts = 3;
+
+ // The minimum number of total requests that must be collected in one
+ // interval (as defined by the interval duration above) to include this address
+ // in success rate based outlier detection. If the volume is lower than this
+ // setting, outlier detection via success rate statistics is not performed
+ // for that address.
+ google.protobuf.UInt32Value request_volume = 4;
}
// SSL/TLS related settings for upstream connections. See Envoy's [TLS
diff --git a/networking/v1alpha3/destination_rule_deepcopy.gen.go b/networking/v1alpha3/destination_rule_deepcopy.gen.go
index d177dcb4d6e..53f0b627bd5 100644
--- a/networking/v1alpha3/destination_rule_deepcopy.gen.go
+++ b/networking/v1alpha3/destination_rule_deepcopy.gen.go
@@ -320,6 +320,48 @@ func (in *OutlierDetection) DeepCopyInterface() interface{} {
return in.DeepCopy()
}
+// DeepCopyInto supports using FailurePercentageEjection within kubernetes types, where deepcopy-gen is used.
+func (in *FailurePercentageEjection) DeepCopyInto(out *FailurePercentageEjection) {
+ p := proto.Clone(in).(*FailurePercentageEjection)
+ *out = *p
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FailurePercentageEjection. Required by controller-gen.
+func (in *FailurePercentageEjection) DeepCopy() *FailurePercentageEjection {
+ if in == nil {
+ return nil
+ }
+ out := new(FailurePercentageEjection)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new FailurePercentageEjection. Required by controller-gen.
+func (in *FailurePercentageEjection) DeepCopyInterface() interface{} {
+ return in.DeepCopy()
+}
+
+// DeepCopyInto supports using SuccessRateEjection within kubernetes types, where deepcopy-gen is used.
+func (in *SuccessRateEjection) DeepCopyInto(out *SuccessRateEjection) {
+ p := proto.Clone(in).(*SuccessRateEjection)
+ *out = *p
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SuccessRateEjection. Required by controller-gen.
+func (in *SuccessRateEjection) DeepCopy() *SuccessRateEjection {
+ if in == nil {
+ return nil
+ }
+ out := new(SuccessRateEjection)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new SuccessRateEjection. Required by controller-gen.
+func (in *SuccessRateEjection) DeepCopyInterface() interface{} {
+ return in.DeepCopy()
+}
+
// DeepCopyInto supports using ClientTLSSettings within kubernetes types, where deepcopy-gen is used.
func (in *ClientTLSSettings) DeepCopyInto(out *ClientTLSSettings) {
p := proto.Clone(in).(*ClientTLSSettings)
diff --git a/networking/v1alpha3/destination_rule_json.gen.go b/networking/v1alpha3/destination_rule_json.gen.go
index 3900fe48256..2e92cb2e059 100644
--- a/networking/v1alpha3/destination_rule_json.gen.go
+++ b/networking/v1alpha3/destination_rule_json.gen.go
@@ -171,6 +171,28 @@ func (this *OutlierDetection) UnmarshalJSON(b []byte) error {
return DestinationRuleUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}
+// MarshalJSON is a custom marshaler for FailurePercentageEjection
+func (this *FailurePercentageEjection) MarshalJSON() ([]byte, error) {
+ str, err := DestinationRuleMarshaler.MarshalToString(this)
+ return []byte(str), err
+}
+
+// UnmarshalJSON is a custom unmarshaler for FailurePercentageEjection
+func (this *FailurePercentageEjection) UnmarshalJSON(b []byte) error {
+ return DestinationRuleUnmarshaler.Unmarshal(bytes.NewReader(b), this)
+}
+
+// MarshalJSON is a custom marshaler for SuccessRateEjection
+func (this *SuccessRateEjection) MarshalJSON() ([]byte, error) {
+ str, err := DestinationRuleMarshaler.MarshalToString(this)
+ return []byte(str), err
+}
+
+// UnmarshalJSON is a custom unmarshaler for SuccessRateEjection
+func (this *SuccessRateEjection) UnmarshalJSON(b []byte) error {
+ return DestinationRuleUnmarshaler.Unmarshal(bytes.NewReader(b), this)
+}
+
// MarshalJSON is a custom marshaler for ClientTLSSettings
func (this *ClientTLSSettings) MarshalJSON() ([]byte, error) {
str, err := DestinationRuleMarshaler.MarshalToString(this)
diff --git a/networking/v1beta1/destination_rule.pb.go b/networking/v1beta1/destination_rule.pb.go
index bc53de57a15..a653833b40b 100644
--- a/networking/v1beta1/destination_rule.pb.go
+++ b/networking/v1beta1/destination_rule.pb.go
@@ -379,7 +379,7 @@ func (x ClientTLSSettings_TLSmode) Number() protoreflect.EnumNumber {
// Deprecated: Use ClientTLSSettings_TLSmode.Descriptor instead.
func (ClientTLSSettings_TLSmode) EnumDescriptor() ([]byte, []int) {
- return file_networking_v1beta1_destination_rule_proto_rawDescGZIP(), []int{6, 0}
+ return file_networking_v1beta1_destination_rule_proto_rawDescGZIP(), []int{8, 0}
}
// DestinationRule defines policies that apply to traffic intended for a service
@@ -1230,6 +1230,12 @@ type OutlierDetection struct {
// disabled by setting it to 0%. The default is 0% as it's not typically
// applicable in k8s environments with few pods per service.
MinHealthPercent int32 `protobuf:"varint,5,opt,name=min_health_percent,json=minHealthPercent,proto3" json:"min_health_percent,omitempty"`
+ // FailurePercent Algorithm for Grpc-xds proxyless for deciding
+ // if the host is an outlier or not.
+ FailurePercentageEjection *FailurePercentageEjection `protobuf:"bytes,10,opt,name=failure_percentage_ejection,json=failurePercentageEjection,proto3" json:"failure_percentage_ejection,omitempty"`
+ // SuccessRateEjection Algorithm for Grpc-xds proxyless for deciding
+ // if the host is an outlier or not.
+ SuccessRateEjection *SuccessRateEjection `protobuf:"bytes,11,opt,name=success_rate_ejection,json=successRateEjection,proto3" json:"success_rate_ejection,omitempty"`
}
func (x *OutlierDetection) Reset() {
@@ -1328,6 +1334,202 @@ func (x *OutlierDetection) GetMinHealthPercent() int32 {
return 0
}
+func (x *OutlierDetection) GetFailurePercentageEjection() *FailurePercentageEjection {
+ if x != nil {
+ return x.FailurePercentageEjection
+ }
+ return nil
+}
+
+func (x *OutlierDetection) GetSuccessRateEjection() *SuccessRateEjection {
+ if x != nil {
+ return x.SuccessRateEjection
+ }
+ return nil
+}
+
+// Parameters for the failure percentage algorithm.
+// This algorithm ejects individual endpoints whose failure rate is greater than
+// some threshold, independently of any other endpoint
+// Defaults to values declared in envoy.config.cluster.v3.OutlierDetection.SuccessRateEjection
+type FailurePercentageEjection struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The failure percentage to use when determining failure percentage-based outlier detection. If
+ // the failure percentage of a given address is greater than or equal to this value, it will be
+ // ejected.
+ Threshold *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=threshold,proto3" json:"threshold,omitempty"`
+ // The % chance that an address will be actually ejected when an outlier status is detected through
+ // failure percentage statistics. This setting can be used to disable ejection or to ramp it up
+ // slowly.
+ EnforcementPercentage *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=enforcement_percentage,json=enforcementPercentage,proto3" json:"enforcement_percentage,omitempty"`
+ // The minimum number of addresses in order to perform failure percentage-based ejection.
+ // If the total number of addresses is less than this value, failure percentage-based
+ // ejection will not be performed.
+ MinimumHosts *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=minimum_hosts,json=minimumHosts,proto3" json:"minimum_hosts,omitempty"`
+ // The minimum number of total requests that must be collected in one interval (as defined by the
+ // interval duration above) to perform failure percentage-based ejection for this address. If the
+ // volume is lower than this setting, failure percentage-based ejection will not be performed for
+ // this host.
+ RequestVolume *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=request_volume,json=requestVolume,proto3" json:"request_volume,omitempty"`
+}
+
+func (x *FailurePercentageEjection) Reset() {
+ *x = FailurePercentageEjection{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *FailurePercentageEjection) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FailurePercentageEjection) ProtoMessage() {}
+
+func (x *FailurePercentageEjection) ProtoReflect() protoreflect.Message {
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[6]
+ 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 FailurePercentageEjection.ProtoReflect.Descriptor instead.
+func (*FailurePercentageEjection) Descriptor() ([]byte, []int) {
+ return file_networking_v1beta1_destination_rule_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *FailurePercentageEjection) GetThreshold() *wrappers.UInt32Value {
+ if x != nil {
+ return x.Threshold
+ }
+ return nil
+}
+
+func (x *FailurePercentageEjection) GetEnforcementPercentage() *wrappers.UInt32Value {
+ if x != nil {
+ return x.EnforcementPercentage
+ }
+ return nil
+}
+
+func (x *FailurePercentageEjection) GetMinimumHosts() *wrappers.UInt32Value {
+ if x != nil {
+ return x.MinimumHosts
+ }
+ return nil
+}
+
+func (x *FailurePercentageEjection) GetRequestVolume() *wrappers.UInt32Value {
+ if x != nil {
+ return x.RequestVolume
+ }
+ return nil
+}
+
+// Parameters for the success rate ejection algorithm.
+// This algorithm monitors the request success rate for all endpoints and
+// ejects individual endpoints whose success rates are statistical outliers.
+// Defaults to values declared in envoy.config.cluster.v3.OutlierDetection.SuccessRateEjection
+type SuccessRateEjection struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // This factor is used to determine the ejection threshold for success rate
+ // outlier ejection. The ejection threshold is the difference between the
+ // mean success rate, and the product of this factor and the standard
+ // deviation of the mean success rate: mean - (stdev *
+ // success_rate_stdev_factor). This factor is divided by a thousand to get a
+ // double. That is, if the desired factor is 1.9, the runtime value should
+ // be 1900.
+ StdevFactor *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=stdev_factor,json=stdevFactor,proto3" json:"stdev_factor,omitempty"`
+ // The % chance that an address will be actually ejected when an outlier status
+ // is detected through success rate statistics. This setting can be used to
+ // disable ejection or to ramp it up slowly.
+ EnforcementPercentage *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=enforcement_percentage,json=enforcementPercentage,proto3" json:"enforcement_percentage,omitempty"`
+ // The number of addresses that must have enough request volume to
+ // detect success rate outliers. If the number of addresses is less than this
+ // setting, outlier detection via success rate statistics is not performed
+ // for any addresses.
+ MinimumHosts *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=minimum_hosts,json=minimumHosts,proto3" json:"minimum_hosts,omitempty"`
+ // The minimum number of total requests that must be collected in one
+ // interval (as defined by the interval duration above) to include this address
+ // in success rate based outlier detection. If the volume is lower than this
+ // setting, outlier detection via success rate statistics is not performed
+ // for that address.
+ RequestVolume *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=request_volume,json=requestVolume,proto3" json:"request_volume,omitempty"`
+}
+
+func (x *SuccessRateEjection) Reset() {
+ *x = SuccessRateEjection{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SuccessRateEjection) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SuccessRateEjection) ProtoMessage() {}
+
+func (x *SuccessRateEjection) ProtoReflect() protoreflect.Message {
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[7]
+ 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 SuccessRateEjection.ProtoReflect.Descriptor instead.
+func (*SuccessRateEjection) Descriptor() ([]byte, []int) {
+ return file_networking_v1beta1_destination_rule_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *SuccessRateEjection) GetStdevFactor() *wrappers.UInt32Value {
+ if x != nil {
+ return x.StdevFactor
+ }
+ return nil
+}
+
+func (x *SuccessRateEjection) GetEnforcementPercentage() *wrappers.UInt32Value {
+ if x != nil {
+ return x.EnforcementPercentage
+ }
+ return nil
+}
+
+func (x *SuccessRateEjection) GetMinimumHosts() *wrappers.UInt32Value {
+ if x != nil {
+ return x.MinimumHosts
+ }
+ return nil
+}
+
+func (x *SuccessRateEjection) GetRequestVolume() *wrappers.UInt32Value {
+ if x != nil {
+ return x.RequestVolume
+ }
+ return nil
+}
+
// SSL/TLS related settings for upstream connections. See Envoy's [TLS
// context](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/transport_sockets/tls/v3/common.proto.html#common-tls-configuration)
// for more details. These settings are common to both HTTP and TCP upstreams.
@@ -1533,7 +1735,7 @@ type ClientTLSSettings struct {
func (x *ClientTLSSettings) Reset() {
*x = ClientTLSSettings{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[6]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1546,7 +1748,7 @@ func (x *ClientTLSSettings) String() string {
func (*ClientTLSSettings) ProtoMessage() {}
func (x *ClientTLSSettings) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[6]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1559,7 +1761,7 @@ func (x *ClientTLSSettings) ProtoReflect() protoreflect.Message {
// Deprecated: Use ClientTLSSettings.ProtoReflect.Descriptor instead.
func (*ClientTLSSettings) Descriptor() ([]byte, []int) {
- return file_networking_v1beta1_destination_rule_proto_rawDescGZIP(), []int{6}
+ return file_networking_v1beta1_destination_rule_proto_rawDescGZIP(), []int{8}
}
func (x *ClientTLSSettings) GetMode() ClientTLSSettings_TLSmode {
@@ -1753,7 +1955,7 @@ type LocalityLoadBalancerSetting struct {
func (x *LocalityLoadBalancerSetting) Reset() {
*x = LocalityLoadBalancerSetting{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[7]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1766,7 +1968,7 @@ func (x *LocalityLoadBalancerSetting) String() string {
func (*LocalityLoadBalancerSetting) ProtoMessage() {}
func (x *LocalityLoadBalancerSetting) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[7]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1779,7 +1981,7 @@ func (x *LocalityLoadBalancerSetting) ProtoReflect() protoreflect.Message {
// Deprecated: Use LocalityLoadBalancerSetting.ProtoReflect.Descriptor instead.
func (*LocalityLoadBalancerSetting) Descriptor() ([]byte, []int) {
- return file_networking_v1beta1_destination_rule_proto_rawDescGZIP(), []int{7}
+ return file_networking_v1beta1_destination_rule_proto_rawDescGZIP(), []int{9}
}
func (x *LocalityLoadBalancerSetting) GetDistribute() []*LocalityLoadBalancerSetting_Distribute {
@@ -1832,7 +2034,7 @@ type TrafficPolicy_PortTrafficPolicy struct {
func (x *TrafficPolicy_PortTrafficPolicy) Reset() {
*x = TrafficPolicy_PortTrafficPolicy{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[8]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1845,7 +2047,7 @@ func (x *TrafficPolicy_PortTrafficPolicy) String() string {
func (*TrafficPolicy_PortTrafficPolicy) ProtoMessage() {}
func (x *TrafficPolicy_PortTrafficPolicy) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[8]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1920,7 +2122,7 @@ type TrafficPolicy_TunnelSettings struct {
func (x *TrafficPolicy_TunnelSettings) Reset() {
*x = TrafficPolicy_TunnelSettings{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[9]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1933,7 +2135,7 @@ func (x *TrafficPolicy_TunnelSettings) String() string {
func (*TrafficPolicy_TunnelSettings) ProtoMessage() {}
func (x *TrafficPolicy_TunnelSettings) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[9]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2020,7 +2222,7 @@ type LoadBalancerSettings_ConsistentHashLB struct {
func (x *LoadBalancerSettings_ConsistentHashLB) Reset() {
*x = LoadBalancerSettings_ConsistentHashLB{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[11]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2033,7 +2235,7 @@ func (x *LoadBalancerSettings_ConsistentHashLB) String() string {
func (*LoadBalancerSettings_ConsistentHashLB) ProtoMessage() {}
func (x *LoadBalancerSettings_ConsistentHashLB) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[11]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2186,7 +2388,7 @@ type LoadBalancerSettings_ConsistentHashLB_RingHash struct {
func (x *LoadBalancerSettings_ConsistentHashLB_RingHash) Reset() {
*x = LoadBalancerSettings_ConsistentHashLB_RingHash{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[12]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2199,7 +2401,7 @@ func (x *LoadBalancerSettings_ConsistentHashLB_RingHash) String() string {
func (*LoadBalancerSettings_ConsistentHashLB_RingHash) ProtoMessage() {}
func (x *LoadBalancerSettings_ConsistentHashLB_RingHash) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[12]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2236,7 +2438,7 @@ type LoadBalancerSettings_ConsistentHashLB_MagLev struct {
func (x *LoadBalancerSettings_ConsistentHashLB_MagLev) Reset() {
*x = LoadBalancerSettings_ConsistentHashLB_MagLev{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[13]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2249,7 +2451,7 @@ func (x *LoadBalancerSettings_ConsistentHashLB_MagLev) String() string {
func (*LoadBalancerSettings_ConsistentHashLB_MagLev) ProtoMessage() {}
func (x *LoadBalancerSettings_ConsistentHashLB_MagLev) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[13]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2292,7 +2494,7 @@ type LoadBalancerSettings_ConsistentHashLB_HTTPCookie struct {
func (x *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) Reset() {
*x = LoadBalancerSettings_ConsistentHashLB_HTTPCookie{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[14]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2305,7 +2507,7 @@ func (x *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) String() string {
func (*LoadBalancerSettings_ConsistentHashLB_HTTPCookie) ProtoMessage() {}
func (x *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[14]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2364,7 +2566,7 @@ type ConnectionPoolSettings_TCPSettings struct {
func (x *ConnectionPoolSettings_TCPSettings) Reset() {
*x = ConnectionPoolSettings_TCPSettings{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[15]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2377,7 +2579,7 @@ func (x *ConnectionPoolSettings_TCPSettings) String() string {
func (*ConnectionPoolSettings_TCPSettings) ProtoMessage() {}
func (x *ConnectionPoolSettings_TCPSettings) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[15]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2466,7 +2668,7 @@ type ConnectionPoolSettings_HTTPSettings struct {
func (x *ConnectionPoolSettings_HTTPSettings) Reset() {
*x = ConnectionPoolSettings_HTTPSettings{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[16]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2479,7 +2681,7 @@ func (x *ConnectionPoolSettings_HTTPSettings) String() string {
func (*ConnectionPoolSettings_HTTPSettings) ProtoMessage() {}
func (x *ConnectionPoolSettings_HTTPSettings) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[16]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2574,7 +2776,7 @@ type ConnectionPoolSettings_TCPSettings_TcpKeepalive struct {
func (x *ConnectionPoolSettings_TCPSettings_TcpKeepalive) Reset() {
*x = ConnectionPoolSettings_TCPSettings_TcpKeepalive{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[17]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2587,7 +2789,7 @@ func (x *ConnectionPoolSettings_TCPSettings_TcpKeepalive) String() string {
func (*ConnectionPoolSettings_TCPSettings_TcpKeepalive) ProtoMessage() {}
func (x *ConnectionPoolSettings_TCPSettings_TcpKeepalive) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[17]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2650,7 +2852,7 @@ type LocalityLoadBalancerSetting_Distribute struct {
func (x *LocalityLoadBalancerSetting_Distribute) Reset() {
*x = LocalityLoadBalancerSetting_Distribute{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[18]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2663,7 +2865,7 @@ func (x *LocalityLoadBalancerSetting_Distribute) String() string {
func (*LocalityLoadBalancerSetting_Distribute) ProtoMessage() {}
func (x *LocalityLoadBalancerSetting_Distribute) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[18]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2676,7 +2878,7 @@ func (x *LocalityLoadBalancerSetting_Distribute) ProtoReflect() protoreflect.Mes
// Deprecated: Use LocalityLoadBalancerSetting_Distribute.ProtoReflect.Descriptor instead.
func (*LocalityLoadBalancerSetting_Distribute) Descriptor() ([]byte, []int) {
- return file_networking_v1beta1_destination_rule_proto_rawDescGZIP(), []int{7, 0}
+ return file_networking_v1beta1_destination_rule_proto_rawDescGZIP(), []int{9, 0}
}
func (x *LocalityLoadBalancerSetting_Distribute) GetFrom() string {
@@ -2715,7 +2917,7 @@ type LocalityLoadBalancerSetting_Failover struct {
func (x *LocalityLoadBalancerSetting_Failover) Reset() {
*x = LocalityLoadBalancerSetting_Failover{}
if protoimpl.UnsafeEnabled {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[19]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2728,7 +2930,7 @@ func (x *LocalityLoadBalancerSetting_Failover) String() string {
func (*LocalityLoadBalancerSetting_Failover) ProtoMessage() {}
func (x *LocalityLoadBalancerSetting_Failover) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[19]
+ mi := &file_networking_v1beta1_destination_rule_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2741,7 +2943,7 @@ func (x *LocalityLoadBalancerSetting_Failover) ProtoReflect() protoreflect.Messa
// Deprecated: Use LocalityLoadBalancerSetting_Failover.ProtoReflect.Descriptor instead.
func (*LocalityLoadBalancerSetting_Failover) Descriptor() ([]byte, []int) {
- return file_networking_v1beta1_destination_rule_proto_rawDescGZIP(), []int{7, 1}
+ return file_networking_v1beta1_destination_rule_proto_rawDescGZIP(), []int{9, 1}
}
func (x *LocalityLoadBalancerSetting_Failover) GetFrom() string {
@@ -3032,7 +3234,7 @@ var file_networking_v1beta1_destination_rule_proto_rawDesc = []byte{
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,
+ 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x10, 0x02, 0x22, 0xe2, 0x06,
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,
@@ -3073,73 +3275,125 @@ var file_networking_v1beta1_destination_rule_proto_rawDesc = []byte{
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, 0xcc, 0x03, 0x0a, 0x11, 0x43,
- 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x4c, 0x53, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
- 0x12, 0x47, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33,
+ 0x6c, 0x74, 0x68, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x73, 0x0a, 0x1b, 0x66, 0x61,
+ 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65,
+ 0x5f, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x33, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69,
+ 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75,
+ 0x72, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x45, 0x6a, 0x65, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x19, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x50, 0x65, 0x72,
+ 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x45, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x61, 0x0a, 0x15, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f,
+ 0x65, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d,
0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e,
- 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 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, 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, 0xa2, 0x04, 0x0a, 0x1b, 0x4c, 0x6f,
+ 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73,
+ 0x73, 0x52, 0x61, 0x74, 0x65, 0x45, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x73,
+ 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x61, 0x74, 0x65, 0x45, 0x6a, 0x65, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x22, 0xb4, 0x02, 0x0a, 0x19, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x50, 0x65,
+ 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x45, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 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, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x53, 0x0a, 0x16,
+ 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x63,
+ 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 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, 0x15, 0x65, 0x6e, 0x66, 0x6f,
+ 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67,
+ 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x68, 0x6f, 0x73,
+ 0x74, 0x73, 0x18, 0x03, 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, 0x0c, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x48,
+ 0x6f, 0x73, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f,
+ 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x04, 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, 0x0d, 0x72, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x13, 0x53, 0x75,
+ 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x61, 0x74, 0x65, 0x45, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x74, 0x64, 0x65, 0x76, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f,
+ 0x72, 0x18, 0x01, 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, 0x0b, 0x73, 0x74, 0x64, 0x65, 0x76, 0x46, 0x61, 0x63, 0x74,
+ 0x6f, 0x72, 0x12, 0x53, 0x0a, 0x16, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e,
+ 0x74, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 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, 0x15, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x72,
+ 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x69, 0x6d,
+ 0x75, 0x6d, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x03, 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, 0x0c, 0x6d, 0x69,
+ 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x0e, 0x72, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x04, 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, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22,
+ 0xcc, 0x03, 0x0a, 0x11, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x4c, 0x53, 0x53, 0x65, 0x74,
+ 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x47, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77,
+ 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 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, 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, 0xa2,
+ 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, 0x60,
+ 0x0a, 0x0a, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f,
+ 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 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, 0x60, 0x0a, 0x0a, 0x64, 0x69, 0x73,
- 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e,
- 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67,
- 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 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, 0x5a, 0x0a, 0x08, 0x66,
- 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e,
- 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67,
- 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 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, 0xb1, 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, 0x58, 0x0a,
- 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x69, 0x73, 0x74, 0x69,
- 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62,
- 0x65, 0x74, 0x61, 0x31, 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, 0x21,
- 0x5a, 0x1f, 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, 0x62, 0x65, 0x74, 0x61,
- 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 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, 0x5a, 0x0a, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f,
+ 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 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,
+ 0xb1, 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, 0x58, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48,
+ 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e,
+ 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 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, 0x21, 0x5a, 0x1f, 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, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -3155,7 +3409,7 @@ func file_networking_v1beta1_destination_rule_proto_rawDescGZIP() []byte {
}
var file_networking_v1beta1_destination_rule_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
-var file_networking_v1beta1_destination_rule_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
+var file_networking_v1beta1_destination_rule_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_networking_v1beta1_destination_rule_proto_goTypes = []interface{}{
(LoadBalancerSettings_SimpleLB)(0), // 0: istio.networking.v1beta1.LoadBalancerSettings.SimpleLB
(ConnectionPoolSettings_HTTPSettings_H2UpgradePolicy)(0), // 1: istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy
@@ -3166,77 +3420,89 @@ var file_networking_v1beta1_destination_rule_proto_goTypes = []interface{}{
(*LoadBalancerSettings)(nil), // 6: istio.networking.v1beta1.LoadBalancerSettings
(*ConnectionPoolSettings)(nil), // 7: istio.networking.v1beta1.ConnectionPoolSettings
(*OutlierDetection)(nil), // 8: istio.networking.v1beta1.OutlierDetection
- (*ClientTLSSettings)(nil), // 9: istio.networking.v1beta1.ClientTLSSettings
- (*LocalityLoadBalancerSetting)(nil), // 10: istio.networking.v1beta1.LocalityLoadBalancerSetting
- (*TrafficPolicy_PortTrafficPolicy)(nil), // 11: istio.networking.v1beta1.TrafficPolicy.PortTrafficPolicy
- (*TrafficPolicy_TunnelSettings)(nil), // 12: istio.networking.v1beta1.TrafficPolicy.TunnelSettings
- nil, // 13: istio.networking.v1beta1.Subset.LabelsEntry
- (*LoadBalancerSettings_ConsistentHashLB)(nil), // 14: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB
- (*LoadBalancerSettings_ConsistentHashLB_RingHash)(nil), // 15: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.RingHash
- (*LoadBalancerSettings_ConsistentHashLB_MagLev)(nil), // 16: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.MagLev
- (*LoadBalancerSettings_ConsistentHashLB_HTTPCookie)(nil), // 17: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.HTTPCookie
- (*ConnectionPoolSettings_TCPSettings)(nil), // 18: istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings
- (*ConnectionPoolSettings_HTTPSettings)(nil), // 19: istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings
- (*ConnectionPoolSettings_TCPSettings_TcpKeepalive)(nil), // 20: istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.TcpKeepalive
- (*LocalityLoadBalancerSetting_Distribute)(nil), // 21: istio.networking.v1beta1.LocalityLoadBalancerSetting.Distribute
- (*LocalityLoadBalancerSetting_Failover)(nil), // 22: istio.networking.v1beta1.LocalityLoadBalancerSetting.Failover
- nil, // 23: istio.networking.v1beta1.LocalityLoadBalancerSetting.Distribute.ToEntry
- (*v1beta1.WorkloadSelector)(nil), // 24: istio.type.v1beta1.WorkloadSelector
- (*duration.Duration)(nil), // 25: google.protobuf.Duration
- (*wrappers.UInt32Value)(nil), // 26: google.protobuf.UInt32Value
- (*wrappers.BoolValue)(nil), // 27: google.protobuf.BoolValue
- (*PortSelector)(nil), // 28: istio.networking.v1beta1.PortSelector
+ (*FailurePercentageEjection)(nil), // 9: istio.networking.v1beta1.FailurePercentageEjection
+ (*SuccessRateEjection)(nil), // 10: istio.networking.v1beta1.SuccessRateEjection
+ (*ClientTLSSettings)(nil), // 11: istio.networking.v1beta1.ClientTLSSettings
+ (*LocalityLoadBalancerSetting)(nil), // 12: istio.networking.v1beta1.LocalityLoadBalancerSetting
+ (*TrafficPolicy_PortTrafficPolicy)(nil), // 13: istio.networking.v1beta1.TrafficPolicy.PortTrafficPolicy
+ (*TrafficPolicy_TunnelSettings)(nil), // 14: istio.networking.v1beta1.TrafficPolicy.TunnelSettings
+ nil, // 15: istio.networking.v1beta1.Subset.LabelsEntry
+ (*LoadBalancerSettings_ConsistentHashLB)(nil), // 16: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB
+ (*LoadBalancerSettings_ConsistentHashLB_RingHash)(nil), // 17: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.RingHash
+ (*LoadBalancerSettings_ConsistentHashLB_MagLev)(nil), // 18: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.MagLev
+ (*LoadBalancerSettings_ConsistentHashLB_HTTPCookie)(nil), // 19: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.HTTPCookie
+ (*ConnectionPoolSettings_TCPSettings)(nil), // 20: istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings
+ (*ConnectionPoolSettings_HTTPSettings)(nil), // 21: istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings
+ (*ConnectionPoolSettings_TCPSettings_TcpKeepalive)(nil), // 22: istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.TcpKeepalive
+ (*LocalityLoadBalancerSetting_Distribute)(nil), // 23: istio.networking.v1beta1.LocalityLoadBalancerSetting.Distribute
+ (*LocalityLoadBalancerSetting_Failover)(nil), // 24: istio.networking.v1beta1.LocalityLoadBalancerSetting.Failover
+ nil, // 25: istio.networking.v1beta1.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.v1beta1.PortSelector
}
var file_networking_v1beta1_destination_rule_proto_depIdxs = []int32{
4, // 0: istio.networking.v1beta1.DestinationRule.traffic_policy:type_name -> istio.networking.v1beta1.TrafficPolicy
5, // 1: istio.networking.v1beta1.DestinationRule.subsets:type_name -> istio.networking.v1beta1.Subset
- 24, // 2: istio.networking.v1beta1.DestinationRule.workload_selector:type_name -> istio.type.v1beta1.WorkloadSelector
+ 26, // 2: istio.networking.v1beta1.DestinationRule.workload_selector:type_name -> istio.type.v1beta1.WorkloadSelector
6, // 3: istio.networking.v1beta1.TrafficPolicy.load_balancer:type_name -> istio.networking.v1beta1.LoadBalancerSettings
7, // 4: istio.networking.v1beta1.TrafficPolicy.connection_pool:type_name -> istio.networking.v1beta1.ConnectionPoolSettings
8, // 5: istio.networking.v1beta1.TrafficPolicy.outlier_detection:type_name -> istio.networking.v1beta1.OutlierDetection
- 9, // 6: istio.networking.v1beta1.TrafficPolicy.tls:type_name -> istio.networking.v1beta1.ClientTLSSettings
- 11, // 7: istio.networking.v1beta1.TrafficPolicy.port_level_settings:type_name -> istio.networking.v1beta1.TrafficPolicy.PortTrafficPolicy
- 12, // 8: istio.networking.v1beta1.TrafficPolicy.tunnel:type_name -> istio.networking.v1beta1.TrafficPolicy.TunnelSettings
- 13, // 9: istio.networking.v1beta1.Subset.labels:type_name -> istio.networking.v1beta1.Subset.LabelsEntry
+ 11, // 6: istio.networking.v1beta1.TrafficPolicy.tls:type_name -> istio.networking.v1beta1.ClientTLSSettings
+ 13, // 7: istio.networking.v1beta1.TrafficPolicy.port_level_settings:type_name -> istio.networking.v1beta1.TrafficPolicy.PortTrafficPolicy
+ 14, // 8: istio.networking.v1beta1.TrafficPolicy.tunnel:type_name -> istio.networking.v1beta1.TrafficPolicy.TunnelSettings
+ 15, // 9: istio.networking.v1beta1.Subset.labels:type_name -> istio.networking.v1beta1.Subset.LabelsEntry
4, // 10: istio.networking.v1beta1.Subset.traffic_policy:type_name -> istio.networking.v1beta1.TrafficPolicy
0, // 11: istio.networking.v1beta1.LoadBalancerSettings.simple:type_name -> istio.networking.v1beta1.LoadBalancerSettings.SimpleLB
- 14, // 12: istio.networking.v1beta1.LoadBalancerSettings.consistent_hash:type_name -> istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB
- 10, // 13: istio.networking.v1beta1.LoadBalancerSettings.locality_lb_setting:type_name -> istio.networking.v1beta1.LocalityLoadBalancerSetting
- 25, // 14: istio.networking.v1beta1.LoadBalancerSettings.warmup_duration_secs:type_name -> google.protobuf.Duration
- 18, // 15: istio.networking.v1beta1.ConnectionPoolSettings.tcp:type_name -> istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings
- 19, // 16: istio.networking.v1beta1.ConnectionPoolSettings.http:type_name -> istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings
- 26, // 17: istio.networking.v1beta1.OutlierDetection.consecutive_local_origin_failures:type_name -> google.protobuf.UInt32Value
- 26, // 18: istio.networking.v1beta1.OutlierDetection.consecutive_gateway_errors:type_name -> google.protobuf.UInt32Value
- 26, // 19: istio.networking.v1beta1.OutlierDetection.consecutive_5xx_errors:type_name -> google.protobuf.UInt32Value
- 25, // 20: istio.networking.v1beta1.OutlierDetection.interval:type_name -> google.protobuf.Duration
- 25, // 21: istio.networking.v1beta1.OutlierDetection.base_ejection_time:type_name -> google.protobuf.Duration
- 2, // 22: istio.networking.v1beta1.ClientTLSSettings.mode:type_name -> istio.networking.v1beta1.ClientTLSSettings.TLSmode
- 27, // 23: istio.networking.v1beta1.ClientTLSSettings.insecure_skip_verify:type_name -> google.protobuf.BoolValue
- 21, // 24: istio.networking.v1beta1.LocalityLoadBalancerSetting.distribute:type_name -> istio.networking.v1beta1.LocalityLoadBalancerSetting.Distribute
- 22, // 25: istio.networking.v1beta1.LocalityLoadBalancerSetting.failover:type_name -> istio.networking.v1beta1.LocalityLoadBalancerSetting.Failover
- 27, // 26: istio.networking.v1beta1.LocalityLoadBalancerSetting.enabled:type_name -> google.protobuf.BoolValue
- 28, // 27: istio.networking.v1beta1.TrafficPolicy.PortTrafficPolicy.port:type_name -> istio.networking.v1beta1.PortSelector
- 6, // 28: istio.networking.v1beta1.TrafficPolicy.PortTrafficPolicy.load_balancer:type_name -> istio.networking.v1beta1.LoadBalancerSettings
- 7, // 29: istio.networking.v1beta1.TrafficPolicy.PortTrafficPolicy.connection_pool:type_name -> istio.networking.v1beta1.ConnectionPoolSettings
- 8, // 30: istio.networking.v1beta1.TrafficPolicy.PortTrafficPolicy.outlier_detection:type_name -> istio.networking.v1beta1.OutlierDetection
- 9, // 31: istio.networking.v1beta1.TrafficPolicy.PortTrafficPolicy.tls:type_name -> istio.networking.v1beta1.ClientTLSSettings
- 17, // 32: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.http_cookie:type_name -> istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.HTTPCookie
- 15, // 33: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.ring_hash:type_name -> istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.RingHash
- 16, // 34: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.maglev:type_name -> istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.MagLev
- 25, // 35: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.HTTPCookie.ttl:type_name -> google.protobuf.Duration
- 25, // 36: istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.connect_timeout:type_name -> google.protobuf.Duration
- 20, // 37: istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.tcp_keepalive:type_name -> istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.TcpKeepalive
- 25, // 38: istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.max_connection_duration:type_name -> google.protobuf.Duration
- 25, // 39: istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings.idle_timeout:type_name -> google.protobuf.Duration
- 1, // 40: istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings.h2_upgrade_policy:type_name -> istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy
- 25, // 41: istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.TcpKeepalive.time:type_name -> google.protobuf.Duration
- 25, // 42: istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.TcpKeepalive.interval:type_name -> google.protobuf.Duration
- 23, // 43: istio.networking.v1beta1.LocalityLoadBalancerSetting.Distribute.to:type_name -> istio.networking.v1beta1.LocalityLoadBalancerSetting.Distribute.ToEntry
- 44, // [44:44] is the sub-list for method output_type
- 44, // [44:44] is the sub-list for method input_type
- 44, // [44:44] is the sub-list for extension type_name
- 44, // [44:44] is the sub-list for extension extendee
- 0, // [0:44] is the sub-list for field type_name
+ 16, // 12: istio.networking.v1beta1.LoadBalancerSettings.consistent_hash:type_name -> istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB
+ 12, // 13: istio.networking.v1beta1.LoadBalancerSettings.locality_lb_setting:type_name -> istio.networking.v1beta1.LocalityLoadBalancerSetting
+ 27, // 14: istio.networking.v1beta1.LoadBalancerSettings.warmup_duration_secs:type_name -> google.protobuf.Duration
+ 20, // 15: istio.networking.v1beta1.ConnectionPoolSettings.tcp:type_name -> istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings
+ 21, // 16: istio.networking.v1beta1.ConnectionPoolSettings.http:type_name -> istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings
+ 28, // 17: istio.networking.v1beta1.OutlierDetection.consecutive_local_origin_failures:type_name -> google.protobuf.UInt32Value
+ 28, // 18: istio.networking.v1beta1.OutlierDetection.consecutive_gateway_errors:type_name -> google.protobuf.UInt32Value
+ 28, // 19: istio.networking.v1beta1.OutlierDetection.consecutive_5xx_errors:type_name -> google.protobuf.UInt32Value
+ 27, // 20: istio.networking.v1beta1.OutlierDetection.interval:type_name -> google.protobuf.Duration
+ 27, // 21: istio.networking.v1beta1.OutlierDetection.base_ejection_time:type_name -> google.protobuf.Duration
+ 9, // 22: istio.networking.v1beta1.OutlierDetection.failure_percentage_ejection:type_name -> istio.networking.v1beta1.FailurePercentageEjection
+ 10, // 23: istio.networking.v1beta1.OutlierDetection.success_rate_ejection:type_name -> istio.networking.v1beta1.SuccessRateEjection
+ 28, // 24: istio.networking.v1beta1.FailurePercentageEjection.threshold:type_name -> google.protobuf.UInt32Value
+ 28, // 25: istio.networking.v1beta1.FailurePercentageEjection.enforcement_percentage:type_name -> google.protobuf.UInt32Value
+ 28, // 26: istio.networking.v1beta1.FailurePercentageEjection.minimum_hosts:type_name -> google.protobuf.UInt32Value
+ 28, // 27: istio.networking.v1beta1.FailurePercentageEjection.request_volume:type_name -> google.protobuf.UInt32Value
+ 28, // 28: istio.networking.v1beta1.SuccessRateEjection.stdev_factor:type_name -> google.protobuf.UInt32Value
+ 28, // 29: istio.networking.v1beta1.SuccessRateEjection.enforcement_percentage:type_name -> google.protobuf.UInt32Value
+ 28, // 30: istio.networking.v1beta1.SuccessRateEjection.minimum_hosts:type_name -> google.protobuf.UInt32Value
+ 28, // 31: istio.networking.v1beta1.SuccessRateEjection.request_volume:type_name -> google.protobuf.UInt32Value
+ 2, // 32: istio.networking.v1beta1.ClientTLSSettings.mode:type_name -> istio.networking.v1beta1.ClientTLSSettings.TLSmode
+ 29, // 33: istio.networking.v1beta1.ClientTLSSettings.insecure_skip_verify:type_name -> google.protobuf.BoolValue
+ 23, // 34: istio.networking.v1beta1.LocalityLoadBalancerSetting.distribute:type_name -> istio.networking.v1beta1.LocalityLoadBalancerSetting.Distribute
+ 24, // 35: istio.networking.v1beta1.LocalityLoadBalancerSetting.failover:type_name -> istio.networking.v1beta1.LocalityLoadBalancerSetting.Failover
+ 29, // 36: istio.networking.v1beta1.LocalityLoadBalancerSetting.enabled:type_name -> google.protobuf.BoolValue
+ 30, // 37: istio.networking.v1beta1.TrafficPolicy.PortTrafficPolicy.port:type_name -> istio.networking.v1beta1.PortSelector
+ 6, // 38: istio.networking.v1beta1.TrafficPolicy.PortTrafficPolicy.load_balancer:type_name -> istio.networking.v1beta1.LoadBalancerSettings
+ 7, // 39: istio.networking.v1beta1.TrafficPolicy.PortTrafficPolicy.connection_pool:type_name -> istio.networking.v1beta1.ConnectionPoolSettings
+ 8, // 40: istio.networking.v1beta1.TrafficPolicy.PortTrafficPolicy.outlier_detection:type_name -> istio.networking.v1beta1.OutlierDetection
+ 11, // 41: istio.networking.v1beta1.TrafficPolicy.PortTrafficPolicy.tls:type_name -> istio.networking.v1beta1.ClientTLSSettings
+ 19, // 42: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.http_cookie:type_name -> istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.HTTPCookie
+ 17, // 43: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.ring_hash:type_name -> istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.RingHash
+ 18, // 44: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.maglev:type_name -> istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.MagLev
+ 27, // 45: istio.networking.v1beta1.LoadBalancerSettings.ConsistentHashLB.HTTPCookie.ttl:type_name -> google.protobuf.Duration
+ 27, // 46: istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.connect_timeout:type_name -> google.protobuf.Duration
+ 22, // 47: istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.tcp_keepalive:type_name -> istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.TcpKeepalive
+ 27, // 48: istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.max_connection_duration:type_name -> google.protobuf.Duration
+ 27, // 49: istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings.idle_timeout:type_name -> google.protobuf.Duration
+ 1, // 50: istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings.h2_upgrade_policy:type_name -> istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy
+ 27, // 51: istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.TcpKeepalive.time:type_name -> google.protobuf.Duration
+ 27, // 52: istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.TcpKeepalive.interval:type_name -> google.protobuf.Duration
+ 25, // 53: istio.networking.v1beta1.LocalityLoadBalancerSetting.Distribute.to:type_name -> istio.networking.v1beta1.LocalityLoadBalancerSetting.Distribute.ToEntry
+ 54, // [54:54] is the sub-list for method output_type
+ 54, // [54:54] is the sub-list for method input_type
+ 54, // [54:54] is the sub-list for extension type_name
+ 54, // [54:54] is the sub-list for extension extendee
+ 0, // [0:54] is the sub-list for field type_name
}
func init() { file_networking_v1beta1_destination_rule_proto_init() }
@@ -3319,7 +3585,7 @@ func file_networking_v1beta1_destination_rule_proto_init() {
}
}
file_networking_v1beta1_destination_rule_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ClientTLSSettings); i {
+ switch v := v.(*FailurePercentageEjection); i {
case 0:
return &v.state
case 1:
@@ -3331,7 +3597,7 @@ func file_networking_v1beta1_destination_rule_proto_init() {
}
}
file_networking_v1beta1_destination_rule_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*LocalityLoadBalancerSetting); i {
+ switch v := v.(*SuccessRateEjection); i {
case 0:
return &v.state
case 1:
@@ -3343,7 +3609,7 @@ func file_networking_v1beta1_destination_rule_proto_init() {
}
}
file_networking_v1beta1_destination_rule_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*TrafficPolicy_PortTrafficPolicy); i {
+ switch v := v.(*ClientTLSSettings); i {
case 0:
return &v.state
case 1:
@@ -3355,7 +3621,19 @@ func file_networking_v1beta1_destination_rule_proto_init() {
}
}
file_networking_v1beta1_destination_rule_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*TrafficPolicy_TunnelSettings); i {
+ switch v := v.(*LocalityLoadBalancerSetting); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_networking_v1beta1_destination_rule_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TrafficPolicy_PortTrafficPolicy); i {
case 0:
return &v.state
case 1:
@@ -3367,6 +3645,18 @@ func file_networking_v1beta1_destination_rule_proto_init() {
}
}
file_networking_v1beta1_destination_rule_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ 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_v1beta1_destination_rule_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LoadBalancerSettings_ConsistentHashLB); i {
case 0:
return &v.state
@@ -3378,7 +3668,7 @@ func file_networking_v1beta1_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1beta1_destination_rule_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ file_networking_v1beta1_destination_rule_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LoadBalancerSettings_ConsistentHashLB_RingHash); i {
case 0:
return &v.state
@@ -3390,7 +3680,7 @@ func file_networking_v1beta1_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1beta1_destination_rule_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+ file_networking_v1beta1_destination_rule_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LoadBalancerSettings_ConsistentHashLB_MagLev); i {
case 0:
return &v.state
@@ -3402,7 +3692,7 @@ func file_networking_v1beta1_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1beta1_destination_rule_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+ file_networking_v1beta1_destination_rule_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LoadBalancerSettings_ConsistentHashLB_HTTPCookie); i {
case 0:
return &v.state
@@ -3414,7 +3704,7 @@ func file_networking_v1beta1_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1beta1_destination_rule_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
+ file_networking_v1beta1_destination_rule_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ConnectionPoolSettings_TCPSettings); i {
case 0:
return &v.state
@@ -3426,7 +3716,7 @@ func file_networking_v1beta1_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1beta1_destination_rule_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
+ file_networking_v1beta1_destination_rule_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ConnectionPoolSettings_HTTPSettings); i {
case 0:
return &v.state
@@ -3438,7 +3728,7 @@ func file_networking_v1beta1_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1beta1_destination_rule_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
+ file_networking_v1beta1_destination_rule_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ConnectionPoolSettings_TCPSettings_TcpKeepalive); i {
case 0:
return &v.state
@@ -3450,7 +3740,7 @@ func file_networking_v1beta1_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1beta1_destination_rule_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
+ file_networking_v1beta1_destination_rule_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LocalityLoadBalancerSetting_Distribute); i {
case 0:
return &v.state
@@ -3462,7 +3752,7 @@ func file_networking_v1beta1_destination_rule_proto_init() {
return nil
}
}
- file_networking_v1beta1_destination_rule_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
+ file_networking_v1beta1_destination_rule_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LocalityLoadBalancerSetting_Failover); i {
case 0:
return &v.state
@@ -3479,7 +3769,7 @@ func file_networking_v1beta1_destination_rule_proto_init() {
(*LoadBalancerSettings_Simple)(nil),
(*LoadBalancerSettings_ConsistentHash)(nil),
}
- file_networking_v1beta1_destination_rule_proto_msgTypes[11].OneofWrappers = []interface{}{
+ file_networking_v1beta1_destination_rule_proto_msgTypes[13].OneofWrappers = []interface{}{
(*LoadBalancerSettings_ConsistentHashLB_HttpHeaderName)(nil),
(*LoadBalancerSettings_ConsistentHashLB_HttpCookie)(nil),
(*LoadBalancerSettings_ConsistentHashLB_UseSourceIp)(nil),
@@ -3493,7 +3783,7 @@ func file_networking_v1beta1_destination_rule_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_networking_v1beta1_destination_rule_proto_rawDesc,
NumEnums: 3,
- NumMessages: 21,
+ NumMessages: 23,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/networking/v1beta1/destination_rule.proto b/networking/v1beta1/destination_rule.proto
index 063524e576e..8e55774e1a3 100644
--- a/networking/v1beta1/destination_rule.proto
+++ b/networking/v1beta1/destination_rule.proto
@@ -895,6 +895,74 @@ message OutlierDetection {
// disabled by setting it to 0%. The default is 0% as it's not typically
// applicable in k8s environments with few pods per service.
int32 min_health_percent = 5;
+
+ // FailurePercent Algorithm for Grpc-xds proxyless for deciding
+ // if the host is an outlier or not.
+ FailurePercentageEjection failure_percentage_ejection = 10;
+
+ // SuccessRateEjection Algorithm for Grpc-xds proxyless for deciding
+ // if the host is an outlier or not.
+ SuccessRateEjection success_rate_ejection = 11;
+}
+
+// Parameters for the failure percentage algorithm.
+// This algorithm ejects individual endpoints whose failure rate is greater than
+// some threshold, independently of any other endpoint
+// Defaults to values declared in envoy.config.cluster.v3.OutlierDetection.SuccessRateEjection
+message FailurePercentageEjection {
+ // The failure percentage to use when determining failure percentage-based outlier detection. If
+ // the failure percentage of a given address is greater than or equal to this value, it will be
+ // ejected.
+ google.protobuf.UInt32Value threshold = 1;
+
+ // The % chance that an address will be actually ejected when an outlier status is detected through
+ // failure percentage statistics. This setting can be used to disable ejection or to ramp it up
+ // slowly.
+ google.protobuf.UInt32Value enforcement_percentage = 2;
+
+ // The minimum number of addresses in order to perform failure percentage-based ejection.
+ // If the total number of addresses is less than this value, failure percentage-based
+ // ejection will not be performed.
+ google.protobuf.UInt32Value minimum_hosts = 3;
+
+ // The minimum number of total requests that must be collected in one interval (as defined by the
+ // interval duration above) to perform failure percentage-based ejection for this address. If the
+ // volume is lower than this setting, failure percentage-based ejection will not be performed for
+ // this host.
+ google.protobuf.UInt32Value request_volume = 4;
+}
+
+// Parameters for the success rate ejection algorithm.
+// This algorithm monitors the request success rate for all endpoints and
+// ejects individual endpoints whose success rates are statistical outliers.
+// Defaults to values declared in envoy.config.cluster.v3.OutlierDetection.SuccessRateEjection
+message SuccessRateEjection {
+ // This factor is used to determine the ejection threshold for success rate
+ // outlier ejection. The ejection threshold is the difference between the
+ // mean success rate, and the product of this factor and the standard
+ // deviation of the mean success rate: mean - (stdev *
+ // success_rate_stdev_factor). This factor is divided by a thousand to get a
+ // double. That is, if the desired factor is 1.9, the runtime value should
+ // be 1900.
+ google.protobuf.UInt32Value stdev_factor = 1;
+
+ // The % chance that an address will be actually ejected when an outlier status
+ // is detected through success rate statistics. This setting can be used to
+ // disable ejection or to ramp it up slowly.
+ google.protobuf.UInt32Value enforcement_percentage = 2;
+
+ // The number of addresses that must have enough request volume to
+ // detect success rate outliers. If the number of addresses is less than this
+ // setting, outlier detection via success rate statistics is not performed
+ // for any addresses.
+ google.protobuf.UInt32Value minimum_hosts = 3;
+
+ // The minimum number of total requests that must be collected in one
+ // interval (as defined by the interval duration above) to include this address
+ // in success rate based outlier detection. If the volume is lower than this
+ // setting, outlier detection via success rate statistics is not performed
+ // for that address.
+ google.protobuf.UInt32Value request_volume = 4;
}
// SSL/TLS related settings for upstream connections. See Envoy's [TLS
diff --git a/networking/v1beta1/destination_rule_deepcopy.gen.go b/networking/v1beta1/destination_rule_deepcopy.gen.go
index a8f3018dad2..3760b1ce698 100644
--- a/networking/v1beta1/destination_rule_deepcopy.gen.go
+++ b/networking/v1beta1/destination_rule_deepcopy.gen.go
@@ -320,6 +320,48 @@ func (in *OutlierDetection) DeepCopyInterface() interface{} {
return in.DeepCopy()
}
+// DeepCopyInto supports using FailurePercentageEjection within kubernetes types, where deepcopy-gen is used.
+func (in *FailurePercentageEjection) DeepCopyInto(out *FailurePercentageEjection) {
+ p := proto.Clone(in).(*FailurePercentageEjection)
+ *out = *p
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FailurePercentageEjection. Required by controller-gen.
+func (in *FailurePercentageEjection) DeepCopy() *FailurePercentageEjection {
+ if in == nil {
+ return nil
+ }
+ out := new(FailurePercentageEjection)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new FailurePercentageEjection. Required by controller-gen.
+func (in *FailurePercentageEjection) DeepCopyInterface() interface{} {
+ return in.DeepCopy()
+}
+
+// DeepCopyInto supports using SuccessRateEjection within kubernetes types, where deepcopy-gen is used.
+func (in *SuccessRateEjection) DeepCopyInto(out *SuccessRateEjection) {
+ p := proto.Clone(in).(*SuccessRateEjection)
+ *out = *p
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SuccessRateEjection. Required by controller-gen.
+func (in *SuccessRateEjection) DeepCopy() *SuccessRateEjection {
+ if in == nil {
+ return nil
+ }
+ out := new(SuccessRateEjection)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new SuccessRateEjection. Required by controller-gen.
+func (in *SuccessRateEjection) DeepCopyInterface() interface{} {
+ return in.DeepCopy()
+}
+
// DeepCopyInto supports using ClientTLSSettings within kubernetes types, where deepcopy-gen is used.
func (in *ClientTLSSettings) DeepCopyInto(out *ClientTLSSettings) {
p := proto.Clone(in).(*ClientTLSSettings)
diff --git a/networking/v1beta1/destination_rule_json.gen.go b/networking/v1beta1/destination_rule_json.gen.go
index ffd201316d3..f0b805a61b8 100644
--- a/networking/v1beta1/destination_rule_json.gen.go
+++ b/networking/v1beta1/destination_rule_json.gen.go
@@ -171,6 +171,28 @@ func (this *OutlierDetection) UnmarshalJSON(b []byte) error {
return DestinationRuleUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}
+// MarshalJSON is a custom marshaler for FailurePercentageEjection
+func (this *FailurePercentageEjection) MarshalJSON() ([]byte, error) {
+ str, err := DestinationRuleMarshaler.MarshalToString(this)
+ return []byte(str), err
+}
+
+// UnmarshalJSON is a custom unmarshaler for FailurePercentageEjection
+func (this *FailurePercentageEjection) UnmarshalJSON(b []byte) error {
+ return DestinationRuleUnmarshaler.Unmarshal(bytes.NewReader(b), this)
+}
+
+// MarshalJSON is a custom marshaler for SuccessRateEjection
+func (this *SuccessRateEjection) MarshalJSON() ([]byte, error) {
+ str, err := DestinationRuleMarshaler.MarshalToString(this)
+ return []byte(str), err
+}
+
+// UnmarshalJSON is a custom unmarshaler for SuccessRateEjection
+func (this *SuccessRateEjection) UnmarshalJSON(b []byte) error {
+ return DestinationRuleUnmarshaler.Unmarshal(bytes.NewReader(b), this)
+}
+
// MarshalJSON is a custom marshaler for ClientTLSSettings
func (this *ClientTLSSettings) MarshalJSON() ([]byte, error) {
str, err := DestinationRuleMarshaler.MarshalToString(this)
diff --git a/proto.lock b/proto.lock
index bf66bb63ed8..3fc5ce414dd 100644
--- a/proto.lock
+++ b/proto.lock
@@ -39830,6 +39830,66 @@
"id": 5,
"name": "min_health_percent",
"type": "int32"
+ },
+ {
+ "id": 10,
+ "name": "failure_percentage_ejection",
+ "type": "FailurePercentageEjection"
+ },
+ {
+ "id": 11,
+ "name": "success_rate_ejection",
+ "type": "SuccessRateEjection"
+ }
+ ]
+ },
+ {
+ "name": "FailurePercentageEjection",
+ "fields": [
+ {
+ "id": 1,
+ "name": "threshold",
+ "type": "google.protobuf.UInt32Value"
+ },
+ {
+ "id": 2,
+ "name": "enforcement_percentage",
+ "type": "google.protobuf.UInt32Value"
+ },
+ {
+ "id": 3,
+ "name": "minimum_hosts",
+ "type": "google.protobuf.UInt32Value"
+ },
+ {
+ "id": 4,
+ "name": "request_volume",
+ "type": "google.protobuf.UInt32Value"
+ }
+ ]
+ },
+ {
+ "name": "SuccessRateEjection",
+ "fields": [
+ {
+ "id": 1,
+ "name": "stdev_factor",
+ "type": "google.protobuf.UInt32Value"
+ },
+ {
+ "id": 2,
+ "name": "enforcement_percentage",
+ "type": "google.protobuf.UInt32Value"
+ },
+ {
+ "id": 3,
+ "name": "minimum_hosts",
+ "type": "google.protobuf.UInt32Value"
+ },
+ {
+ "id": 4,
+ "name": "request_volume",
+ "type": "google.protobuf.UInt32Value"
}
]
},
@@ -42801,6 +42861,66 @@
"id": 5,
"name": "min_health_percent",
"type": "int32"
+ },
+ {
+ "id": 10,
+ "name": "failure_percentage_ejection",
+ "type": "FailurePercentageEjection"
+ },
+ {
+ "id": 11,
+ "name": "success_rate_ejection",
+ "type": "SuccessRateEjection"
+ }
+ ]
+ },
+ {
+ "name": "FailurePercentageEjection",
+ "fields": [
+ {
+ "id": 1,
+ "name": "threshold",
+ "type": "google.protobuf.UInt32Value"
+ },
+ {
+ "id": 2,
+ "name": "enforcement_percentage",
+ "type": "google.protobuf.UInt32Value"
+ },
+ {
+ "id": 3,
+ "name": "minimum_hosts",
+ "type": "google.protobuf.UInt32Value"
+ },
+ {
+ "id": 4,
+ "name": "request_volume",
+ "type": "google.protobuf.UInt32Value"
+ }
+ ]
+ },
+ {
+ "name": "SuccessRateEjection",
+ "fields": [
+ {
+ "id": 1,
+ "name": "stdev_factor",
+ "type": "google.protobuf.UInt32Value"
+ },
+ {
+ "id": 2,
+ "name": "enforcement_percentage",
+ "type": "google.protobuf.UInt32Value"
+ },
+ {
+ "id": 3,
+ "name": "minimum_hosts",
+ "type": "google.protobuf.UInt32Value"
+ },
+ {
+ "id": 4,
+ "name": "request_volume",
+ "type": "google.protobuf.UInt32Value"
}
]
},
From f5dff3632295f3b1d52eebaadb4d377024d6dc20 Mon Sep 17 00:00:00 2001
From: aditya-32
Date: Fri, 1 Dec 2023 15:30:31 +0530
Subject: [PATCH 2/2] updated comments
---
kubernetes/customresourcedefinitions.gen.yaml | 152 ++++++++----------
networking/v1alpha3/destination_rule.pb.go | 19 +--
networking/v1alpha3/destination_rule.pb.html | 19 +--
networking/v1alpha3/destination_rule.proto | 19 +--
networking/v1beta1/destination_rule.pb.go | 19 +--
networking/v1beta1/destination_rule.proto | 19 +--
6 files changed, 104 insertions(+), 143 deletions(-)
diff --git a/kubernetes/customresourcedefinitions.gen.yaml b/kubernetes/customresourcedefinitions.gen.yaml
index 4cb481771df..000e8621683 100644
--- a/kubernetes/customresourcedefinitions.gen.yaml
+++ b/kubernetes/customresourcedefinitions.gen.yaml
@@ -542,8 +542,8 @@ spec:
nullable: true
type: integer
failurePercentageEjection:
- description: FailurePercent Algorithm for Grpc-xds proxyless
- for deciding if the host is an outlier or not.
+ description: FailurePercent Algorithm for deciding if
+ the host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address will be
@@ -558,9 +558,8 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests
- that must be collected in one interval (as defined
- by the interval duration above) to perform failure
- percentage-based ejection for this address.
+ that must be collected in one interval to perform
+ failure percentage-based ejection for this address.
nullable: true
type: integer
threshold:
@@ -588,9 +587,8 @@ spec:
origin failures from external errors.
type: boolean
successRateEjection:
- description: SuccessRateEjection Algorithm for Grpc-xds
- proxyless for deciding if the host is an outlier or
- not.
+ description: SuccessRateEjection Algorithm for deciding
+ if the host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address will be
@@ -605,9 +603,8 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests
- that must be collected in one interval (as defined
- by the interval duration above) to include this
- address in success rate based outlier detection.
+ that must be collected in one interval to include
+ this address in success rate based outlier detection.
nullable: true
type: integer
stdevFactor:
@@ -889,9 +886,8 @@ spec:
nullable: true
type: integer
failurePercentageEjection:
- description: FailurePercent Algorithm for Grpc-xds
- proxyless for deciding if the host is an outlier
- or not.
+ description: FailurePercent Algorithm for deciding
+ if the host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address
@@ -908,9 +904,8 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests
- that must be collected in one interval (as
- defined by the interval duration above)
- to perform failure percentage-based ejection
+ that must be collected in one interval to
+ perform failure percentage-based ejection
for this address.
nullable: true
type: integer
@@ -943,8 +938,7 @@ spec:
type: boolean
successRateEjection:
description: SuccessRateEjection Algorithm for
- Grpc-xds proxyless for deciding if the host
- is an outlier or not.
+ deciding if the host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address
@@ -961,10 +955,9 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests
- that must be collected in one interval (as
- defined by the interval duration above)
- to include this address in success rate
- based outlier detection.
+ that must be collected in one interval to
+ include this address in success rate based
+ outlier detection.
nullable: true
type: integer
stdevFactor:
@@ -1371,8 +1364,8 @@ spec:
nullable: true
type: integer
failurePercentageEjection:
- description: FailurePercent Algorithm for Grpc-xds proxyless
- for deciding if the host is an outlier or not.
+ description: FailurePercent Algorithm for deciding if the
+ host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address will be actually
@@ -1387,9 +1380,8 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests that
- must be collected in one interval (as defined by the
- interval duration above) to perform failure percentage-based
- ejection for this address.
+ must be collected in one interval to perform failure
+ percentage-based ejection for this address.
nullable: true
type: integer
threshold:
@@ -1417,8 +1409,8 @@ spec:
failures from external errors.
type: boolean
successRateEjection:
- description: SuccessRateEjection Algorithm for Grpc-xds proxyless
- for deciding if the host is an outlier or not.
+ description: SuccessRateEjection Algorithm for deciding if
+ the host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address will be actually
@@ -1433,9 +1425,8 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests that
- must be collected in one interval (as defined by the
- interval duration above) to include this address in
- success rate based outlier detection.
+ must be collected in one interval to include this address
+ in success rate based outlier detection.
nullable: true
type: integer
stdevFactor:
@@ -1710,8 +1701,8 @@ spec:
nullable: true
type: integer
failurePercentageEjection:
- description: FailurePercent Algorithm for Grpc-xds proxyless
- for deciding if the host is an outlier or not.
+ description: FailurePercent Algorithm for deciding if
+ the host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address will be
@@ -1726,9 +1717,8 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests
- that must be collected in one interval (as defined
- by the interval duration above) to perform failure
- percentage-based ejection for this address.
+ that must be collected in one interval to perform
+ failure percentage-based ejection for this address.
nullable: true
type: integer
threshold:
@@ -1756,9 +1746,8 @@ spec:
origin failures from external errors.
type: boolean
successRateEjection:
- description: SuccessRateEjection Algorithm for Grpc-xds
- proxyless for deciding if the host is an outlier or
- not.
+ description: SuccessRateEjection Algorithm for deciding
+ if the host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address will be
@@ -1773,9 +1762,8 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests
- that must be collected in one interval (as defined
- by the interval duration above) to include this
- address in success rate based outlier detection.
+ that must be collected in one interval to include
+ this address in success rate based outlier detection.
nullable: true
type: integer
stdevFactor:
@@ -2245,8 +2233,8 @@ spec:
nullable: true
type: integer
failurePercentageEjection:
- description: FailurePercent Algorithm for Grpc-xds proxyless
- for deciding if the host is an outlier or not.
+ description: FailurePercent Algorithm for deciding if
+ the host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address will be
@@ -2261,9 +2249,8 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests
- that must be collected in one interval (as defined
- by the interval duration above) to perform failure
- percentage-based ejection for this address.
+ that must be collected in one interval to perform
+ failure percentage-based ejection for this address.
nullable: true
type: integer
threshold:
@@ -2291,9 +2278,8 @@ spec:
origin failures from external errors.
type: boolean
successRateEjection:
- description: SuccessRateEjection Algorithm for Grpc-xds
- proxyless for deciding if the host is an outlier or
- not.
+ description: SuccessRateEjection Algorithm for deciding
+ if the host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address will be
@@ -2308,9 +2294,8 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests
- that must be collected in one interval (as defined
- by the interval duration above) to include this
- address in success rate based outlier detection.
+ that must be collected in one interval to include
+ this address in success rate based outlier detection.
nullable: true
type: integer
stdevFactor:
@@ -2592,9 +2577,8 @@ spec:
nullable: true
type: integer
failurePercentageEjection:
- description: FailurePercent Algorithm for Grpc-xds
- proxyless for deciding if the host is an outlier
- or not.
+ description: FailurePercent Algorithm for deciding
+ if the host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address
@@ -2611,9 +2595,8 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests
- that must be collected in one interval (as
- defined by the interval duration above)
- to perform failure percentage-based ejection
+ that must be collected in one interval to
+ perform failure percentage-based ejection
for this address.
nullable: true
type: integer
@@ -2646,8 +2629,7 @@ spec:
type: boolean
successRateEjection:
description: SuccessRateEjection Algorithm for
- Grpc-xds proxyless for deciding if the host
- is an outlier or not.
+ deciding if the host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address
@@ -2664,10 +2646,9 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests
- that must be collected in one interval (as
- defined by the interval duration above)
- to include this address in success rate
- based outlier detection.
+ that must be collected in one interval to
+ include this address in success rate based
+ outlier detection.
nullable: true
type: integer
stdevFactor:
@@ -3074,8 +3055,8 @@ spec:
nullable: true
type: integer
failurePercentageEjection:
- description: FailurePercent Algorithm for Grpc-xds proxyless
- for deciding if the host is an outlier or not.
+ description: FailurePercent Algorithm for deciding if the
+ host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address will be actually
@@ -3090,9 +3071,8 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests that
- must be collected in one interval (as defined by the
- interval duration above) to perform failure percentage-based
- ejection for this address.
+ must be collected in one interval to perform failure
+ percentage-based ejection for this address.
nullable: true
type: integer
threshold:
@@ -3120,8 +3100,8 @@ spec:
failures from external errors.
type: boolean
successRateEjection:
- description: SuccessRateEjection Algorithm for Grpc-xds proxyless
- for deciding if the host is an outlier or not.
+ description: SuccessRateEjection Algorithm for deciding if
+ the host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address will be actually
@@ -3136,9 +3116,8 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests that
- must be collected in one interval (as defined by the
- interval duration above) to include this address in
- success rate based outlier detection.
+ must be collected in one interval to include this address
+ in success rate based outlier detection.
nullable: true
type: integer
stdevFactor:
@@ -3413,8 +3392,8 @@ spec:
nullable: true
type: integer
failurePercentageEjection:
- description: FailurePercent Algorithm for Grpc-xds proxyless
- for deciding if the host is an outlier or not.
+ description: FailurePercent Algorithm for deciding if
+ the host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address will be
@@ -3429,9 +3408,8 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests
- that must be collected in one interval (as defined
- by the interval duration above) to perform failure
- percentage-based ejection for this address.
+ that must be collected in one interval to perform
+ failure percentage-based ejection for this address.
nullable: true
type: integer
threshold:
@@ -3459,9 +3437,8 @@ spec:
origin failures from external errors.
type: boolean
successRateEjection:
- description: SuccessRateEjection Algorithm for Grpc-xds
- proxyless for deciding if the host is an outlier or
- not.
+ description: SuccessRateEjection Algorithm for deciding
+ if the host is an outlier or not.
properties:
enforcementPercentage:
description: The % chance that an address will be
@@ -3476,9 +3453,8 @@ spec:
type: integer
requestVolume:
description: The minimum number of total requests
- that must be collected in one interval (as defined
- by the interval duration above) to include this
- address in success rate based outlier detection.
+ that must be collected in one interval to include
+ this address in success rate based outlier detection.
nullable: true
type: integer
stdevFactor:
diff --git a/networking/v1alpha3/destination_rule.pb.go b/networking/v1alpha3/destination_rule.pb.go
index 79cb04595e8..c41075a91a5 100644
--- a/networking/v1alpha3/destination_rule.pb.go
+++ b/networking/v1alpha3/destination_rule.pb.go
@@ -1338,11 +1338,9 @@ type OutlierDetection struct {
// disabled by setting it to 0%. The default is 0% as it's not typically
// applicable in k8s environments with few pods per service.
MinHealthPercent int32 `protobuf:"varint,5,opt,name=min_health_percent,json=minHealthPercent,proto3" json:"min_health_percent,omitempty"`
- // FailurePercent Algorithm for Grpc-xds proxyless for deciding
- // if the host is an outlier or not.
+ // FailurePercent Algorithm for deciding if the host is an outlier or not.
FailurePercentageEjection *FailurePercentageEjection `protobuf:"bytes,10,opt,name=failure_percentage_ejection,json=failurePercentageEjection,proto3" json:"failure_percentage_ejection,omitempty"`
- // SuccessRateEjection Algorithm for Grpc-xds proxyless for deciding
- // if the host is an outlier or not.
+ // SuccessRateEjection Algorithm for deciding if the host is an outlier or not.
SuccessRateEjection *SuccessRateEjection `protobuf:"bytes,11,opt,name=success_rate_ejection,json=successRateEjection,proto3" json:"success_rate_ejection,omitempty"`
}
@@ -1477,8 +1475,8 @@ type FailurePercentageEjection struct {
// If the total number of addresses is less than this value, failure percentage-based
// ejection will not be performed.
MinimumHosts *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=minimum_hosts,json=minimumHosts,proto3" json:"minimum_hosts,omitempty"`
- // The minimum number of total requests that must be collected in one interval (as defined by the
- // interval duration above) to perform failure percentage-based ejection for this address. If the
+ // The minimum number of total requests that must be collected in one interval
+ // to perform failure percentage-based ejection for this address. If the
// volume is lower than this setting, failure percentage-based ejection will not be performed for
// this host.
RequestVolume *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=request_volume,json=requestVolume,proto3" json:"request_volume,omitempty"`
@@ -1571,10 +1569,9 @@ type SuccessRateEjection struct {
// for any addresses.
MinimumHosts *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=minimum_hosts,json=minimumHosts,proto3" json:"minimum_hosts,omitempty"`
// The minimum number of total requests that must be collected in one
- // interval (as defined by the interval duration above) to include this address
- // in success rate based outlier detection. If the volume is lower than this
- // setting, outlier detection via success rate statistics is not performed
- // for that address.
+ // interval to include this address in success rate based outlier detection.
+ // If the volume is lower than this setting, outlier detection via success
+ // rate statistics is not performed for that address.
RequestVolume *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=request_volume,json=requestVolume,proto3" json:"request_volume,omitempty"`
}
@@ -1646,7 +1643,7 @@ func (x *SuccessRateEjection) GetRequestVolume() *wrappers.UInt32Value {
// for connections to upstream database cluster.
//
// {{}}
-// {{}}
+// {{}}
// ```yaml
// apiVersion: networking.istio.io/v1alpha3
// kind: DestinationRule
diff --git a/networking/v1alpha3/destination_rule.pb.html b/networking/v1alpha3/destination_rule.pb.html
index 00cc73febba..bd70345028e 100644
--- a/networking/v1alpha3/destination_rule.pb.html
+++ b/networking/v1alpha3/destination_rule.pb.html
@@ -910,8 +910,7 @@ OutlierDetection
failurePercentageEjection |
FailurePercentageEjection |
- FailurePercent Algorithm for Grpc-xds proxyless for deciding
-if the host is an outlier or not.
+FailurePercent Algorithm for deciding if the host is an outlier or not.
|
@@ -922,8 +921,7 @@ OutlierDetection
| successRateEjection |
SuccessRateEjection |
- SuccessRateEjection Algorithm for Grpc-xds proxyless for deciding
-if the host is an outlier or not.
+SuccessRateEjection Algorithm for deciding if the host is an outlier or not.
|
@@ -993,8 +991,8 @@ FailurePercentageEjection
| requestVolume |
UInt32Value |
- The minimum number of total requests that must be collected in one interval (as defined by the
-interval duration above) to perform failure percentage-based ejection for this address. If the
+ The minimum number of total requests that must be collected in one interval
+to perform failure percentage-based ejection for this address. If the
volume is lower than this setting, failure percentage-based ejection will not be performed for
this host.
@@ -1072,10 +1070,9 @@ SuccessRateEjection
| UInt32Value |
The minimum number of total requests that must be collected in one
-interval (as defined by the interval duration above) to include this address
-in success rate based outlier detection. If the volume is lower than this
-setting, outlier detection via success rate statistics is not performed
-for that address.
+interval to include this address in success rate based outlier detection.
+If the volume is lower than this setting, outlier detection via success
+rate statistics is not performed for that address.
|
@@ -1093,7 +1090,7 @@ ClientTLSSettings
For example, the following rule configures a client to use mutual TLS
for connections to upstream database cluster.
{{}}
-{{}}
+{{}}
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
diff --git a/networking/v1alpha3/destination_rule.proto b/networking/v1alpha3/destination_rule.proto
index 9d4eda774d6..3e1c97500a6 100644
--- a/networking/v1alpha3/destination_rule.proto
+++ b/networking/v1alpha3/destination_rule.proto
@@ -963,12 +963,10 @@ message OutlierDetection {
// applicable in k8s environments with few pods per service.
int32 min_health_percent = 5;
- // FailurePercent Algorithm for Grpc-xds proxyless for deciding
- // if the host is an outlier or not.
+ // FailurePercent Algorithm for deciding if the host is an outlier or not.
FailurePercentageEjection failure_percentage_ejection = 10;
- // SuccessRateEjection Algorithm for Grpc-xds proxyless for deciding
- // if the host is an outlier or not.
+ // SuccessRateEjection Algorithm for deciding if the host is an outlier or not.
SuccessRateEjection success_rate_ejection = 11;
}
@@ -992,8 +990,8 @@ message FailurePercentageEjection {
// ejection will not be performed.
google.protobuf.UInt32Value minimum_hosts = 3;
- // The minimum number of total requests that must be collected in one interval (as defined by the
- // interval duration above) to perform failure percentage-based ejection for this address. If the
+ // The minimum number of total requests that must be collected in one interval
+ // to perform failure percentage-based ejection for this address. If the
// volume is lower than this setting, failure percentage-based ejection will not be performed for
// this host.
google.protobuf.UInt32Value request_volume = 4;
@@ -1025,10 +1023,9 @@ message SuccessRateEjection {
google.protobuf.UInt32Value minimum_hosts = 3;
// The minimum number of total requests that must be collected in one
- // interval (as defined by the interval duration above) to include this address
- // in success rate based outlier detection. If the volume is lower than this
- // setting, outlier detection via success rate statistics is not performed
- // for that address.
+ // interval to include this address in success rate based outlier detection.
+ // If the volume is lower than this setting, outlier detection via success
+ // rate statistics is not performed for that address.
google.protobuf.UInt32Value request_volume = 4;
}
@@ -1040,7 +1037,7 @@ message SuccessRateEjection {
// for connections to upstream database cluster.
//
// {{}}
-// {{}}
+// {{}}
// ```yaml
// apiVersion: networking.istio.io/v1alpha3
// kind: DestinationRule
diff --git a/networking/v1beta1/destination_rule.pb.go b/networking/v1beta1/destination_rule.pb.go
index eeaef9db3ca..4d050df44f0 100644
--- a/networking/v1beta1/destination_rule.pb.go
+++ b/networking/v1beta1/destination_rule.pb.go
@@ -1287,11 +1287,9 @@ type OutlierDetection struct {
// disabled by setting it to 0%. The default is 0% as it's not typically
// applicable in k8s environments with few pods per service.
MinHealthPercent int32 `protobuf:"varint,5,opt,name=min_health_percent,json=minHealthPercent,proto3" json:"min_health_percent,omitempty"`
- // FailurePercent Algorithm for Grpc-xds proxyless for deciding
- // if the host is an outlier or not.
+ // FailurePercent Algorithm for deciding if the host is an outlier or not.
FailurePercentageEjection *FailurePercentageEjection `protobuf:"bytes,10,opt,name=failure_percentage_ejection,json=failurePercentageEjection,proto3" json:"failure_percentage_ejection,omitempty"`
- // SuccessRateEjection Algorithm for Grpc-xds proxyless for deciding
- // if the host is an outlier or not.
+ // SuccessRateEjection Algorithm for deciding if the host is an outlier or not.
SuccessRateEjection *SuccessRateEjection `protobuf:"bytes,11,opt,name=success_rate_ejection,json=successRateEjection,proto3" json:"success_rate_ejection,omitempty"`
}
@@ -1426,8 +1424,8 @@ type FailurePercentageEjection struct {
// If the total number of addresses is less than this value, failure percentage-based
// ejection will not be performed.
MinimumHosts *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=minimum_hosts,json=minimumHosts,proto3" json:"minimum_hosts,omitempty"`
- // The minimum number of total requests that must be collected in one interval (as defined by the
- // interval duration above) to perform failure percentage-based ejection for this address. If the
+ // The minimum number of total requests that must be collected in one interval
+ // to perform failure percentage-based ejection for this address. If the
// volume is lower than this setting, failure percentage-based ejection will not be performed for
// this host.
RequestVolume *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=request_volume,json=requestVolume,proto3" json:"request_volume,omitempty"`
@@ -1520,10 +1518,9 @@ type SuccessRateEjection struct {
// for any addresses.
MinimumHosts *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=minimum_hosts,json=minimumHosts,proto3" json:"minimum_hosts,omitempty"`
// The minimum number of total requests that must be collected in one
- // interval (as defined by the interval duration above) to include this address
- // in success rate based outlier detection. If the volume is lower than this
- // setting, outlier detection via success rate statistics is not performed
- // for that address.
+ // interval to include this address in success rate based outlier detection.
+ // If the volume is lower than this setting, outlier detection via success
+ // rate statistics is not performed for that address.
RequestVolume *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=request_volume,json=requestVolume,proto3" json:"request_volume,omitempty"`
}
@@ -1595,7 +1592,7 @@ func (x *SuccessRateEjection) GetRequestVolume() *wrappers.UInt32Value {
// for connections to upstream database cluster.
//
// {{}}
-// {{}}
+// {{}}
// ```yaml
// apiVersion: networking.istio.io/v1alpha3
// kind: DestinationRule
diff --git a/networking/v1beta1/destination_rule.proto b/networking/v1beta1/destination_rule.proto
index f9899357408..cd20218268c 100644
--- a/networking/v1beta1/destination_rule.proto
+++ b/networking/v1beta1/destination_rule.proto
@@ -912,12 +912,10 @@ message OutlierDetection {
// applicable in k8s environments with few pods per service.
int32 min_health_percent = 5;
- // FailurePercent Algorithm for Grpc-xds proxyless for deciding
- // if the host is an outlier or not.
+ // FailurePercent Algorithm for deciding if the host is an outlier or not.
FailurePercentageEjection failure_percentage_ejection = 10;
- // SuccessRateEjection Algorithm for Grpc-xds proxyless for deciding
- // if the host is an outlier or not.
+ // SuccessRateEjection Algorithm for deciding if the host is an outlier or not.
SuccessRateEjection success_rate_ejection = 11;
}
@@ -941,8 +939,8 @@ message FailurePercentageEjection {
// ejection will not be performed.
google.protobuf.UInt32Value minimum_hosts = 3;
- // The minimum number of total requests that must be collected in one interval (as defined by the
- // interval duration above) to perform failure percentage-based ejection for this address. If the
+ // The minimum number of total requests that must be collected in one interval
+ // to perform failure percentage-based ejection for this address. If the
// volume is lower than this setting, failure percentage-based ejection will not be performed for
// this host.
google.protobuf.UInt32Value request_volume = 4;
@@ -974,10 +972,9 @@ message SuccessRateEjection {
google.protobuf.UInt32Value minimum_hosts = 3;
// The minimum number of total requests that must be collected in one
- // interval (as defined by the interval duration above) to include this address
- // in success rate based outlier detection. If the volume is lower than this
- // setting, outlier detection via success rate statistics is not performed
- // for that address.
+ // interval to include this address in success rate based outlier detection.
+ // If the volume is lower than this setting, outlier detection via success
+ // rate statistics is not performed for that address.
google.protobuf.UInt32Value request_volume = 4;
}
@@ -989,7 +986,7 @@ message SuccessRateEjection {
// for connections to upstream database cluster.
//
// {{}}
-// {{}}
+// {{}}
// ```yaml
// apiVersion: networking.istio.io/v1alpha3
// kind: DestinationRule
| |