diff --git a/kubernetes/customresourcedefinitions.gen.yaml b/kubernetes/customresourcedefinitions.gen.yaml index ba00e7cb59..e7b0c25155 100644 --- a/kubernetes/customresourcedefinitions.gen.yaml +++ b/kubernetes/customresourcedefinitions.gen.yaml @@ -1788,6 +1788,68 @@ spec: description: 'Configuration affecting network reachability of a sidecar. See more details at: https://istio.io/docs/reference/config/networking/sidecar.html' properties: + connectionPool: + properties: + http: + description: HTTP connection pool settings. + properties: + h2UpgradePolicy: + description: Specify if http1.1 connection should be upgraded + to http2 for the associated destination. + enum: + - DEFAULT + - DO_NOT_UPGRADE + - UPGRADE + type: string + http1MaxPendingRequests: + description: Maximum number of pending HTTP requests to a destination. + format: int32 + type: integer + http2MaxRequests: + description: Maximum number of requests to a backend. + format: int32 + type: integer + idleTimeout: + description: The idle timeout for upstream connection pool connections. + type: string + maxRequestsPerConnection: + description: Maximum number of requests per connection to a + backend. + format: int32 + type: integer + maxRetries: + format: int32 + type: integer + useClientProtocol: + description: If set to true, client protocol will be preserved + while initiating connection to backend. + type: boolean + type: object + tcp: + description: Settings common to both HTTP and TCP upstream connections. + properties: + connectTimeout: + description: TCP connection timeout. + type: string + maxConnections: + description: Maximum number of HTTP1 /TCP connections to a destination + host. + format: int32 + type: integer + tcpKeepalive: + description: If set then set SO_KEEPALIVE on the socket to enable + TCP Keepalives. + properties: + interval: + description: The time duration between keep-alive probes. + type: string + probes: + type: integer + time: + type: string + type: object + type: object + type: object egress: items: properties: diff --git a/networking/v1alpha3/sidecar.gen.json b/networking/v1alpha3/sidecar.gen.json index 9fce0a3587..81fac75526 100644 --- a/networking/v1alpha3/sidecar.gen.json +++ b/networking/v1alpha3/sidecar.gen.json @@ -6,6 +6,18 @@ }, "components": { "schemas": { + "istio.networking.v1alpha3.ConnectionPoolSettings": { + "description": "Connection pool settings for an upstream host. The settings apply to each individual host in the upstream service. See Envoy's [circuit breaker](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/circuit_breaking) for more details. Connection pool settings can be applied at the TCP level as well as at HTTP level.", + "type": "object", + "properties": { + "tcp": { + "$ref": "#/components/schemas/istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings" + }, + "http": { + "$ref": "#/components/schemas/istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings" + } + } + }, "istio.networking.v1alpha3.PortSelector": { "description": "PortSelector specifies the number of a port to be used for matching or selection for final routing.", "type": "object", @@ -16,6 +28,88 @@ } } }, + "istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings": { + "description": "Settings common to both HTTP and TCP upstream connections.", + "type": "object", + "properties": { + "maxConnections": { + "description": "Maximum number of HTTP1 /TCP connections to a destination host. Default 2^32-1.", + "type": "integer", + "format": "int32" + }, + "connectTimeout": { + "description": "TCP connection timeout. format: 1h/1m/1s/1ms. MUST BE \u003e=1ms. Default is 10s.", + "type": "string" + }, + "tcpKeepalive": { + "$ref": "#/components/schemas/istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive" + } + } + }, + "istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings": { + "description": "Settings applicable to HTTP1.1/HTTP2/GRPC connections.", + "type": "object", + "properties": { + "http1MaxPendingRequests": { + "description": "Maximum number of pending HTTP requests to a destination. Default 2^32-1.", + "type": "integer", + "format": "int32" + }, + "http2MaxRequests": { + "description": "Maximum number of requests to a backend. Default 2^32-1.", + "type": "integer", + "format": "int32" + }, + "maxRequestsPerConnection": { + "description": "Maximum number of requests per connection to a backend. Setting this parameter to 1 disables keep alive. Default 0, meaning \"unlimited\", up to 2^29.", + "type": "integer", + "format": "int32" + }, + "maxRetries": { + "description": "Maximum number of retries that can be outstanding to all hosts in a cluster at a given time. Defaults to 2^32-1.", + "type": "integer", + "format": "int32" + }, + "idleTimeout": { + "description": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests. If not set, the default is 1 hour. When the idle timeout is reached, the connection will be closed. If the connection is an HTTP/2 connection a drain sequence will occur prior to closing the connection. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive. Applies to both HTTP1.1 and HTTP2 connections.", + "type": "string" + }, + "h2UpgradePolicy": { + "$ref": "#/components/schemas/istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy" + }, + "useClientProtocol": { + "description": "If set to true, client protocol will be preserved while initiating connection to backend. Note that when this is set to true, h2_upgrade_policy will be ineffective i.e. the client connections will not be upgraded to http2.", + "type": "boolean" + } + } + }, + "istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive": { + "description": "TCP keepalive.", + "type": "object", + "properties": { + "time": { + "description": "The time duration a connection needs to be idle before keep-alive probes start being sent. Default is to use the OS level configuration (unless overridden, Linux defaults to 7200s (ie 2 hours.)", + "type": "string" + }, + "probes": { + "description": "Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.)", + "type": "integer" + }, + "interval": { + "description": "The time duration between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.)", + "type": "string" + } + } + }, + "istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy": { + "description": "Policy for upgrading http1.1 connections to http2.", + "type": "string", + "enum": [ + "DEFAULT", + "DO_NOT_UPGRADE", + "UPGRADE" + ] + }, "istio.networking.v1alpha3.WorkloadSelector": { "description": "`WorkloadSelector` specifies the criteria used to determine if the `Gateway`, `Sidecar`, or `EnvoyFilter` or `ServiceEntry` configuration can be applied to a proxy. The matching criteria includes the metadata associated with a proxy, workload instance info such as labels attached to the pod/VM, or any other info that the proxy provides to Istio during the initial handshake. If multiple conditions are specified, all conditions need to match in order for the workload instance to be selected. Currently, only label based selection mechanism is supported.", "type": "object", @@ -58,6 +152,9 @@ "description": "`Sidecar` describes the configuration of the sidecar proxy that mediates inbound and outbound communication of the workload instance to which it is attached.", "type": "object", "properties": { + "connectionPool": { + "$ref": "#/components/schemas/istio.networking.v1alpha3.ConnectionPoolSettings" + }, "workloadSelector": { "$ref": "#/components/schemas/istio.networking.v1alpha3.WorkloadSelector" }, diff --git a/networking/v1alpha3/sidecar.pb.go b/networking/v1alpha3/sidecar.pb.go index 7e45845c18..4bc7209dcf 100644 --- a/networking/v1alpha3/sidecar.pb.go +++ b/networking/v1alpha3/sidecar.pb.go @@ -506,6 +506,8 @@ type Sidecar struct { // services in the mesh. If not specified, inherits the system // detected defaults from the namespace-wide or the global default Sidecar. Egress []*IstioEgressListener `protobuf:"bytes,3,rep,name=egress,proto3" json:"egress,omitempty"` + // Settings controlling the volume of connections to an upstream service + ConnectionPool *ConnectionPoolSettings `protobuf:"bytes,7,opt,name=connection_pool,json=connectionPool,proto3" json:"connection_pool,omitempty"` // Configuration for the outbound traffic policy. If your // application uses one or more external services that are not known // apriori, setting the policy to `ALLOW_ANY` will cause the @@ -573,6 +575,13 @@ func (m *Sidecar) GetEgress() []*IstioEgressListener { return nil } +func (m *Sidecar) GetConnectionPool() *ConnectionPoolSettings { + if m != nil { + return m.ConnectionPool + } + return nil +} + func (m *Sidecar) GetOutboundTrafficPolicy() *OutboundTrafficPolicy { if m != nil { return m.OutboundTrafficPolicy @@ -948,51 +957,53 @@ func init() { func init() { proto.RegisterFile("networking/v1alpha3/sidecar.proto", fileDescriptor_b5c11342f04ad3d1) } var fileDescriptor_b5c11342f04ad3d1 = []byte{ - // 693 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x4d, 0x4f, 0xdb, 0x4a, - 0x14, 0x65, 0x12, 0x93, 0x8f, 0x31, 0xbc, 0x67, 0xe6, 0x81, 0x5e, 0x60, 0x01, 0x79, 0x59, 0x3c, - 0xa5, 0x54, 0x72, 0xda, 0xa0, 0xaa, 0xb4, 0xbb, 0x50, 0x42, 0x15, 0xe4, 0x26, 0x91, 0x93, 0x8a, - 0xd2, 0x8d, 0x35, 0xb1, 0x27, 0xc9, 0x88, 0xa9, 0xc7, 0x1a, 0x8f, 0x43, 0xb3, 0xec, 0x6f, 0xe9, - 0x9f, 0xe9, 0xb2, 0xbb, 0x6e, 0x11, 0x8b, 0xfe, 0x85, 0x6e, 0x2b, 0x8f, 0x4d, 0xf9, 0x90, 0x49, - 0xc5, 0xa6, 0x3b, 0x7b, 0xe6, 0x9c, 0xa3, 0x7b, 0xce, 0x9d, 0x7b, 0xe1, 0x7f, 0x3e, 0x91, 0xe7, - 0x5c, 0x9c, 0x51, 0x7f, 0xd2, 0x98, 0x3d, 0xc5, 0x2c, 0x98, 0xe2, 0xbd, 0x46, 0x48, 0x3d, 0xe2, - 0x62, 0x61, 0x06, 0x82, 0x4b, 0x8e, 0x36, 0x69, 0x28, 0x29, 0x37, 0xaf, 0x81, 0xe6, 0x15, 0x70, - 0x6b, 0x67, 0xc2, 0xf9, 0x84, 0x91, 0x06, 0x0e, 0x68, 0x63, 0x4c, 0x09, 0xf3, 0x9c, 0x11, 0x99, - 0xe2, 0x19, 0xe5, 0x29, 0x77, 0x2b, 0x53, 0x7e, 0x82, 0x25, 0x39, 0xc7, 0xf3, 0x14, 0xf2, 0x28, - 0x0b, 0x32, 0xa3, 0x42, 0x46, 0x98, 0x39, 0x21, 0x11, 0x33, 0xea, 0x92, 0x14, 0xba, 0x9b, 0x05, - 0xf5, 0x48, 0x28, 0xa9, 0x8f, 0x25, 0xe5, 0xbe, 0x23, 0x22, 0x96, 0x62, 0x6b, 0x3f, 0x72, 0xb0, - 0x38, 0x48, 0x7c, 0xa0, 0x77, 0x70, 0x2d, 0xa6, 0x31, 0x8e, 0x3d, 0x27, 0x24, 0x8c, 0xb8, 0x92, - 0x8b, 0x0a, 0xa8, 0x82, 0xba, 0xde, 0x7c, 0x6c, 0xde, 0xeb, 0xce, 0x3c, 0x49, 0x39, 0x83, 0x94, - 0x62, 0x1b, 0xe7, 0x77, 0x4e, 0x50, 0x07, 0x16, 0xa9, 0x3f, 0x11, 0x24, 0x0c, 0x2b, 0xb9, 0x6a, - 0xbe, 0xae, 0x37, 0x1b, 0x0b, 0xf4, 0x3a, 0xf1, 0x4d, 0x27, 0x81, 0x5b, 0x34, 0x94, 0xc4, 0x27, - 0xc2, 0xbe, 0xe2, 0xa3, 0x23, 0x58, 0x20, 0x89, 0x52, 0x5e, 0x29, 0x99, 0xbf, 0x53, 0x6a, 0xdf, - 0x16, 0x4a, 0xd9, 0x68, 0x0a, 0xff, 0xe5, 0x91, 0x1c, 0xf1, 0xc8, 0xf7, 0x1c, 0x29, 0xf0, 0x78, - 0x4c, 0x5d, 0x27, 0xe0, 0x8c, 0xba, 0xf3, 0x8a, 0xa6, 0x2c, 0x3f, 0x59, 0x20, 0xdc, 0x4b, 0x99, - 0xc3, 0x84, 0xd8, 0x57, 0x3c, 0x7b, 0x83, 0x67, 0x1d, 0x1f, 0x6b, 0xa5, 0x65, 0xa3, 0x70, 0xac, - 0x95, 0x0a, 0x46, 0xd1, 0x2e, 0x33, 0xee, 0x62, 0x36, 0xe5, 0xa1, 0xac, 0x7d, 0xca, 0xc1, 0xf5, - 0x2c, 0xab, 0x68, 0x1f, 0x6a, 0x01, 0x17, 0x32, 0x4d, 0x7e, 0x67, 0x41, 0x19, 0x7d, 0x2e, 0xe4, - 0x41, 0xfe, 0xa2, 0x95, 0xb3, 0x15, 0x03, 0x21, 0xa8, 0x8d, 0xa8, 0xef, 0x55, 0x72, 0x55, 0x50, - 0x2f, 0xdb, 0xea, 0x1b, 0x75, 0xe0, 0x8a, 0x8b, 0x03, 0x19, 0x09, 0xe2, 0x7c, 0xe0, 0x1e, 0xa9, - 0xe4, 0xab, 0xa0, 0xfe, 0x57, 0xf3, 0xff, 0x05, 0xaa, 0xaf, 0x12, 0xf8, 0x1b, 0xee, 0x11, 0x5b, - 0x77, 0xaf, 0x7f, 0x90, 0x09, 0x0d, 0x8f, 0x8c, 0x71, 0xc4, 0xa4, 0x43, 0x7c, 0x2f, 0xe0, 0xd4, - 0x97, 0x2a, 0xab, 0x72, 0x52, 0xc3, 0xdf, 0xe9, 0x65, 0x3b, 0xbd, 0xbb, 0x65, 0x7c, 0xfd, 0x97, - 0x71, 0xc7, 0x65, 0x94, 0xf8, 0xd2, 0x91, 0x2c, 0xac, 0x7d, 0x07, 0xf0, 0x9f, 0x8c, 0x26, 0xa1, - 0xbd, 0x07, 0x45, 0xf0, 0x67, 0xdc, 0x6f, 0xc2, 0xe5, 0xb8, 0xfc, 0xb0, 0xa2, 0x55, 0xf3, 0x57, - 0x96, 0x93, 0x93, 0xfb, 0x8c, 0xc6, 0x53, 0x49, 0x84, 0x32, 0xfa, 0x19, 0x40, 0xe3, 0xee, 0x9c, - 0xa0, 0x21, 0x2c, 0x30, 0x3c, 0x22, 0x2c, 0xac, 0x00, 0xf5, 0x94, 0x9f, 0x3f, 0x60, 0xc8, 0x4c, - 0x4b, 0x31, 0xdb, 0xbe, 0x14, 0xf3, 0xa4, 0x96, 0x54, 0x6b, 0xeb, 0x05, 0xd4, 0x6f, 0xdc, 0x21, - 0x03, 0xe6, 0xcf, 0xc8, 0x5c, 0x25, 0x59, 0xb6, 0xe3, 0x4f, 0xb4, 0x0e, 0x97, 0x67, 0x98, 0x45, - 0x24, 0x0d, 0x2a, 0xf9, 0x79, 0x99, 0xdb, 0x07, 0xb5, 0x6f, 0x00, 0x6e, 0x64, 0x3e, 0x6d, 0xd4, - 0x81, 0x9a, 0xca, 0x0f, 0xa8, 0xfc, 0x9e, 0x3d, 0x74, 0x34, 0x4c, 0x15, 0xa7, 0x92, 0x88, 0x5b, - 0x92, 0x8c, 0xa0, 0x13, 0x08, 0xfe, 0x71, 0xae, 0xaa, 0xd0, 0x17, 0xb6, 0xe4, 0xf0, 0x7a, 0x75, - 0xd9, 0x7a, 0xc2, 0xed, 0xc7, 0xd4, 0x5a, 0x1d, 0x6a, 0xaa, 0x35, 0x6b, 0x70, 0xd5, 0x6e, 0xbf, - 0xee, 0x0c, 0x86, 0xf6, 0xa9, 0xd3, 0xeb, 0x5a, 0xa7, 0xc6, 0x12, 0x5a, 0x85, 0xe5, 0x96, 0x65, - 0xf5, 0x4e, 0x9c, 0x56, 0xf7, 0xd4, 0x00, 0xbb, 0x4d, 0xa8, 0xdf, 0x68, 0x2c, 0xd2, 0x61, 0xf1, - 0xb0, 0x7d, 0xd4, 0x7a, 0x6b, 0x0d, 0x8d, 0x25, 0xb4, 0x02, 0x4b, 0x9d, 0xfe, 0xb0, 0x75, 0x60, - 0xb5, 0x07, 0x06, 0x40, 0x25, 0xa8, 0x75, 0x7b, 0xdd, 0xb6, 0x91, 0x3b, 0x30, 0xbf, 0x5c, 0x6e, - 0x83, 0xaf, 0x97, 0xdb, 0xe0, 0xe2, 0x72, 0x1b, 0xbc, 0xaf, 0x26, 0xf5, 0x51, 0xae, 0xb6, 0x78, - 0xc6, 0x86, 0x1d, 0x15, 0xd4, 0x46, 0xdd, 0xfb, 0x19, 0x00, 0x00, 0xff, 0xff, 0xaa, 0x40, 0x86, - 0xbf, 0x2c, 0x06, 0x00, 0x00, + // 726 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0x4d, 0x6f, 0xd3, 0x30, + 0x18, 0x5e, 0xda, 0xac, 0x1f, 0xce, 0x3e, 0x32, 0xb3, 0x89, 0x6c, 0x87, 0xad, 0xf4, 0x80, 0xca, + 0x90, 0x52, 0xd6, 0x09, 0x31, 0xb8, 0x75, 0xac, 0x43, 0x9d, 0x4a, 0x5b, 0xa5, 0x45, 0x63, 0xbb, + 0x44, 0x6e, 0xe2, 0xb6, 0xd6, 0x8c, 0x1d, 0x39, 0x6e, 0x47, 0x8f, 0xfc, 0x16, 0xfe, 0x0c, 0x47, + 0x24, 0x0e, 0x5c, 0xa7, 0x1d, 0xf8, 0x1d, 0xa8, 0x4e, 0xf6, 0xa9, 0xac, 0x68, 0x17, 0x6e, 0x89, + 0xfd, 0x3c, 0x4f, 0xde, 0xe7, 0x79, 0xfd, 0x3a, 0xe0, 0x19, 0xc3, 0xf2, 0x9c, 0x8b, 0x33, 0xc2, + 0x06, 0xe5, 0xf1, 0x0e, 0xa2, 0xc1, 0x10, 0xed, 0x96, 0x43, 0xe2, 0x63, 0x0f, 0x09, 0x3b, 0x10, + 0x5c, 0x72, 0xb8, 0x4e, 0x42, 0x49, 0xb8, 0x7d, 0x03, 0xb4, 0xaf, 0x80, 0x1b, 0x5b, 0x03, 0xce, + 0x07, 0x14, 0x97, 0x51, 0x40, 0xca, 0x7d, 0x82, 0xa9, 0xef, 0xf6, 0xf0, 0x10, 0x8d, 0x09, 0x8f, + 0xb9, 0x1b, 0x89, 0xf2, 0x03, 0x24, 0xf1, 0x39, 0x9a, 0xc4, 0x90, 0x17, 0x49, 0x90, 0x31, 0x11, + 0x72, 0x84, 0xa8, 0x1b, 0x62, 0x31, 0x26, 0x1e, 0x8e, 0xa1, 0xdb, 0x49, 0x50, 0x1f, 0x87, 0x92, + 0x30, 0x24, 0x09, 0x67, 0xae, 0x18, 0xd1, 0x18, 0x5b, 0xfc, 0x95, 0x06, 0xd9, 0x4e, 0xe4, 0x03, + 0x7e, 0x06, 0x2b, 0x53, 0x1a, 0xe5, 0xc8, 0x77, 0x43, 0x4c, 0xb1, 0x27, 0xb9, 0xb0, 0xb4, 0x82, + 0x56, 0x32, 0x2a, 0x2f, 0xed, 0x07, 0xdd, 0xd9, 0xc7, 0x31, 0xa7, 0x13, 0x53, 0x1c, 0xf3, 0xfc, + 0xde, 0x0a, 0xac, 0x83, 0x2c, 0x61, 0x03, 0x81, 0xc3, 0xd0, 0x4a, 0x15, 0xd2, 0x25, 0xa3, 0x52, + 0x9e, 0xa1, 0x57, 0x9f, 0xee, 0xd4, 0x23, 0x78, 0x83, 0x84, 0x12, 0x33, 0x2c, 0x9c, 0x2b, 0x3e, + 0x3c, 0x04, 0x19, 0x1c, 0x29, 0xa5, 0x95, 0x92, 0xfd, 0x2f, 0xa5, 0xda, 0x5d, 0xa1, 0x98, 0x0d, + 0x4f, 0xc1, 0xb2, 0xc7, 0x19, 0xc3, 0x9e, 0x4a, 0x24, 0xe0, 0x9c, 0x5a, 0x59, 0x65, 0x75, 0x67, + 0x86, 0xe0, 0xfb, 0x6b, 0x46, 0x9b, 0x73, 0xda, 0xc1, 0x52, 0x12, 0x36, 0x08, 0x9d, 0x25, 0xef, + 0xce, 0x3a, 0x1c, 0x82, 0xa7, 0x7c, 0x24, 0x7b, 0x7c, 0xc4, 0x7c, 0x57, 0x0a, 0xd4, 0xef, 0x13, + 0xcf, 0x0d, 0x38, 0x25, 0xde, 0xc4, 0xd2, 0xd5, 0x37, 0x5e, 0xcd, 0xf8, 0x46, 0x2b, 0x66, 0x76, + 0x23, 0x62, 0x5b, 0xf1, 0x9c, 0x35, 0x9e, 0xb4, 0x7c, 0xa4, 0xe7, 0xe6, 0xcd, 0xcc, 0x91, 0x9e, + 0xcb, 0x98, 0x59, 0x27, 0x4f, 0xb9, 0x87, 0xe8, 0x90, 0x87, 0xb2, 0xf8, 0x2d, 0x05, 0x56, 0x93, + 0x62, 0x84, 0x7b, 0x40, 0x0f, 0xb8, 0x90, 0x71, 0x57, 0xb7, 0x66, 0x94, 0xd1, 0xe6, 0x42, 0xee, + 0xa7, 0x2f, 0xaa, 0x29, 0x47, 0x31, 0x20, 0x04, 0x7a, 0x8f, 0x30, 0xdf, 0x4a, 0x15, 0xb4, 0x52, + 0xde, 0x51, 0xcf, 0xb0, 0x0e, 0x16, 0x3c, 0x14, 0xc8, 0x91, 0xc0, 0xee, 0x17, 0xee, 0x63, 0x2b, + 0x5d, 0xd0, 0x4a, 0x4b, 0x95, 0xe7, 0xb3, 0x02, 0x8c, 0xe0, 0x1f, 0xb9, 0x8f, 0x1d, 0xc3, 0xbb, + 0x79, 0x81, 0x36, 0x30, 0x7d, 0xdc, 0x47, 0x23, 0x2a, 0x5d, 0xcc, 0xfc, 0x80, 0x13, 0x26, 0x55, + 0x56, 0xf9, 0xa8, 0x86, 0xe5, 0x78, 0xb3, 0x16, 0xef, 0xdd, 0x31, 0xbe, 0x7a, 0x6d, 0xdc, 0xf5, + 0x28, 0xc1, 0x4c, 0xba, 0x92, 0x86, 0xc5, 0x3f, 0x1a, 0x78, 0x92, 0x70, 0x00, 0xe0, 0xee, 0xa3, + 0x22, 0xf8, 0x3f, 0xee, 0xd7, 0xc1, 0xfc, 0xb4, 0xfc, 0xd0, 0xd2, 0x0b, 0xe9, 0x2b, 0xcb, 0xd1, + 0xca, 0x43, 0x46, 0xa7, 0x13, 0x8f, 0x85, 0x32, 0xfa, 0x5d, 0x03, 0xe6, 0xfd, 0x19, 0x84, 0x5d, + 0x90, 0xa1, 0xa8, 0x87, 0x69, 0x68, 0x69, 0x6a, 0x4c, 0xde, 0x3c, 0x62, 0x80, 0xed, 0x86, 0x62, + 0xd6, 0x98, 0x14, 0x93, 0xa8, 0x96, 0x58, 0x6b, 0xe3, 0x2d, 0x30, 0x6e, 0xed, 0x41, 0x13, 0xa4, + 0xcf, 0xf0, 0x44, 0x25, 0x99, 0x77, 0xa6, 0x8f, 0x70, 0x15, 0xcc, 0x8f, 0x11, 0x1d, 0xe1, 0x38, + 0xa8, 0xe8, 0xe5, 0x5d, 0x6a, 0x4f, 0x2b, 0xfe, 0xd6, 0xc0, 0x5a, 0xe2, 0xd1, 0x86, 0x75, 0xa0, + 0xab, 0xfc, 0x34, 0x95, 0xdf, 0xeb, 0xc7, 0x8e, 0x86, 0xad, 0xe2, 0x54, 0x12, 0xd3, 0x96, 0x44, + 0xe3, 0xed, 0x06, 0x82, 0x7f, 0x9d, 0xa8, 0x2a, 0x8c, 0x99, 0x2d, 0x39, 0xb8, 0xb9, 0x16, 0x1d, + 0x23, 0xe2, 0xb6, 0xa7, 0xd4, 0x62, 0x09, 0xe8, 0xaa, 0x35, 0x2b, 0x60, 0xd1, 0xa9, 0x7d, 0xa8, + 0x77, 0xba, 0xce, 0x89, 0xdb, 0x6a, 0x36, 0x4e, 0xcc, 0x39, 0xb8, 0x08, 0xf2, 0xd5, 0x46, 0xa3, + 0x75, 0xec, 0x56, 0x9b, 0x27, 0xa6, 0xb6, 0x5d, 0x01, 0xc6, 0xad, 0xc6, 0x42, 0x03, 0x64, 0x0f, + 0x6a, 0x87, 0xd5, 0x4f, 0x8d, 0xae, 0x39, 0x07, 0x17, 0x40, 0xae, 0xde, 0xee, 0x56, 0xf7, 0x1b, + 0xb5, 0x8e, 0xa9, 0xc1, 0x1c, 0xd0, 0x9b, 0xad, 0x66, 0xcd, 0x4c, 0xed, 0xdb, 0x3f, 0x2e, 0x37, + 0xb5, 0x9f, 0x97, 0x9b, 0xda, 0xc5, 0xe5, 0xa6, 0x76, 0x5a, 0x88, 0xea, 0x23, 0x5c, 0xfd, 0x21, + 0x12, 0x6e, 0xef, 0x5e, 0x46, 0xdd, 0xd6, 0xbb, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xe4, 0xb7, + 0x92, 0x8d, 0x88, 0x06, 0x00, 0x00, } func (m *Sidecar) Marshal() (dAtA []byte, err error) { @@ -1019,6 +1030,18 @@ func (m *Sidecar) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.ConnectionPool != nil { + { + size, err := m.ConnectionPool.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSidecar(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } if m.OutboundTrafficPolicy != nil { { size, err := m.OutboundTrafficPolicy.MarshalToSizedBuffer(dAtA[:i]) @@ -1319,6 +1342,10 @@ func (m *Sidecar) Size() (n int) { l = m.OutboundTrafficPolicy.Size() n += 1 + l + sovSidecar(uint64(l)) } + if m.ConnectionPool != nil { + l = m.ConnectionPool.Size() + n += 1 + l + sovSidecar(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -1595,6 +1622,42 @@ func (m *Sidecar) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConnectionPool", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSidecar + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConnectionPool == nil { + m.ConnectionPool = &ConnectionPoolSettings{} + } + if err := m.ConnectionPool.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipSidecar(dAtA[iNdEx:]) diff --git a/networking/v1alpha3/sidecar.pb.html b/networking/v1alpha3/sidecar.pb.html index 41872a84a9..fa71d2316b 100644 --- a/networking/v1alpha3/sidecar.pb.html +++ b/networking/v1alpha3/sidecar.pb.html @@ -451,6 +451,17 @@

Sidecar

services in the mesh. If not specified, inherits the system detected defaults from the namespace-wide or the global default Sidecar.

+ + +No + + + +connectionPool +ConnectionPoolSettings + +

Settings controlling the volume of connections to an upstream service

+ No diff --git a/networking/v1alpha3/sidecar.proto b/networking/v1alpha3/sidecar.proto index 486d396272..3a526d1443 100644 --- a/networking/v1alpha3/sidecar.proto +++ b/networking/v1alpha3/sidecar.proto @@ -448,6 +448,9 @@ message Sidecar { // detected defaults from the namespace-wide or the global default Sidecar. repeated IstioEgressListener egress = 3; + // Settings controlling the volume of connections to an upstream service + istio.networking.v1alpha3.ConnectionPoolSettings connection_pool = 7; + // Configuration for the outbound traffic policy. If your // application uses one or more external services that are not known // apriori, setting the policy to `ALLOW_ANY` will cause the diff --git a/networking/v1beta1/sidecar.gen.json b/networking/v1beta1/sidecar.gen.json index cf15cdb82d..a81f38a277 100644 --- a/networking/v1beta1/sidecar.gen.json +++ b/networking/v1beta1/sidecar.gen.json @@ -6,6 +6,18 @@ }, "components": { "schemas": { + "istio.networking.v1beta1.ConnectionPoolSettings": { + "description": "Connection pool settings for an upstream host. The settings apply to each individual host in the upstream service. See Envoy's [circuit breaker](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/circuit_breaking) for more details. Connection pool settings can be applied at the TCP level as well as at HTTP level.", + "type": "object", + "properties": { + "tcp": { + "$ref": "#/components/schemas/istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings" + }, + "http": { + "$ref": "#/components/schemas/istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings" + } + } + }, "istio.networking.v1beta1.PortSelector": { "description": "PortSelector specifies the number of a port to be used for matching or selection for final routing.", "type": "object", @@ -16,6 +28,88 @@ } } }, + "istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings": { + "description": "Settings common to both HTTP and TCP upstream connections.", + "type": "object", + "properties": { + "maxConnections": { + "description": "Maximum number of HTTP1 /TCP connections to a destination host. Default 2^32-1.", + "type": "integer", + "format": "int32" + }, + "connectTimeout": { + "description": "TCP connection timeout.", + "type": "string" + }, + "tcpKeepalive": { + "$ref": "#/components/schemas/istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.TcpKeepalive" + } + } + }, + "istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings": { + "description": "Settings applicable to HTTP1.1/HTTP2/GRPC connections.", + "type": "object", + "properties": { + "http1MaxPendingRequests": { + "description": "Maximum number of pending HTTP requests to a destination. Default 2^32-1.", + "type": "integer", + "format": "int32" + }, + "http2MaxRequests": { + "description": "Maximum number of requests to a backend. Default 2^32-1.", + "type": "integer", + "format": "int32" + }, + "maxRequestsPerConnection": { + "description": "Maximum number of requests per connection to a backend. Setting this parameter to 1 disables keep alive. Default 0, meaning \"unlimited\", up to 2^29.", + "type": "integer", + "format": "int32" + }, + "maxRetries": { + "description": "Maximum number of retries that can be outstanding to all hosts in a cluster at a given time. Defaults to 2^32-1.", + "type": "integer", + "format": "int32" + }, + "idleTimeout": { + "description": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests. If not set, the default is 1 hour. When the idle timeout is reached, the connection will be closed. If the connection is an HTTP/2 connection a drain sequence will occur prior to closing the connection. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive. Applies to both HTTP1.1 and HTTP2 connections.", + "type": "string" + }, + "h2UpgradePolicy": { + "$ref": "#/components/schemas/istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy" + }, + "useClientProtocol": { + "description": "If set to true, client protocol will be preserved while initiating connection to backend. Note that when this is set to true, h2_upgrade_policy will be ineffective i.e. the client connections will not be upgraded to http2.", + "type": "boolean" + } + } + }, + "istio.networking.v1beta1.ConnectionPoolSettings.TCPSettings.TcpKeepalive": { + "description": "TCP keepalive.", + "type": "object", + "properties": { + "time": { + "description": "The time duration a connection needs to be idle before keep-alive probes start being sent. Default is to use the OS level configuration (unless overridden, Linux defaults to 7200s (ie 2 hours.)", + "type": "string" + }, + "probes": { + "description": "Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.)", + "type": "integer" + }, + "interval": { + "description": "The time duration between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.)", + "type": "string" + } + } + }, + "istio.networking.v1beta1.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy": { + "description": "Policy for upgrading http1.1 connections to http2.", + "type": "string", + "enum": [ + "DEFAULT", + "DO_NOT_UPGRADE", + "UPGRADE" + ] + }, "istio.networking.v1beta1.Port": { "description": "Port describes the properties of a specific port of a service.", "type": "object", @@ -58,6 +152,9 @@ "description": "`Sidecar` describes the configuration of the sidecar proxy that mediates inbound and outbound communication of the workload instance to which it is attached.", "type": "object", "properties": { + "connectionPool": { + "$ref": "#/components/schemas/istio.networking.v1beta1.ConnectionPoolSettings" + }, "workloadSelector": { "$ref": "#/components/schemas/istio.networking.v1beta1.WorkloadSelector" }, diff --git a/networking/v1beta1/sidecar.pb.go b/networking/v1beta1/sidecar.pb.go index e51f922ed1..6fdffb68ce 100644 --- a/networking/v1beta1/sidecar.pb.go +++ b/networking/v1beta1/sidecar.pb.go @@ -505,6 +505,8 @@ type Sidecar struct { // services in the mesh. If not specified, inherits the system // detected defaults from the namespace-wide or the global default Sidecar. Egress []*IstioEgressListener `protobuf:"bytes,3,rep,name=egress,proto3" json:"egress,omitempty"` + // Settings controlling the volume of connections to an upstream service + ConnectionPool *ConnectionPoolSettings `protobuf:"bytes,7,opt,name=connection_pool,json=connectionPool,proto3" json:"connection_pool,omitempty"` // Configuration for the outbound traffic policy. If your // application uses one or more external services that are not known // apriori, setting the policy to `ALLOW_ANY` will cause the @@ -572,6 +574,13 @@ func (m *Sidecar) GetEgress() []*IstioEgressListener { return nil } +func (m *Sidecar) GetConnectionPool() *ConnectionPoolSettings { + if m != nil { + return m.ConnectionPool + } + return nil +} + func (m *Sidecar) GetOutboundTrafficPolicy() *OutboundTrafficPolicy { if m != nil { return m.OutboundTrafficPolicy @@ -945,50 +954,52 @@ func init() { func init() { proto.RegisterFile("networking/v1beta1/sidecar.proto", fileDescriptor_e7023408fb338e10) } var fileDescriptor_e7023408fb338e10 = []byte{ - // 691 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0xcd, 0x6e, 0xd3, 0x4a, - 0x18, 0xed, 0x24, 0x6e, 0x7e, 0xc6, 0xed, 0xbd, 0xee, 0xdc, 0x56, 0xd7, 0x74, 0x91, 0x46, 0x91, - 0x90, 0x42, 0xa5, 0x3a, 0x6a, 0x40, 0xfc, 0xed, 0x52, 0x6a, 0x68, 0xaa, 0x90, 0x44, 0x4e, 0x50, - 0x55, 0x36, 0xd6, 0xc4, 0x9e, 0xa4, 0xa3, 0x0e, 0x9e, 0x68, 0x3c, 0x49, 0xc9, 0xeb, 0xf0, 0x34, - 0x2c, 0xd9, 0xb0, 0xaf, 0x2a, 0xde, 0x80, 0x07, 0x00, 0x65, 0x3c, 0xa5, 0x3f, 0x38, 0x40, 0x37, - 0xec, 0xec, 0x99, 0x73, 0x8e, 0xbe, 0x73, 0xbe, 0xf9, 0x3e, 0x58, 0x8e, 0x88, 0x3c, 0xe3, 0xe2, - 0x94, 0x46, 0xa3, 0xda, 0x74, 0x77, 0x40, 0x24, 0xde, 0xad, 0xc5, 0x34, 0x24, 0x01, 0x16, 0xce, - 0x58, 0x70, 0xc9, 0x91, 0x4d, 0x63, 0x49, 0xb9, 0x73, 0x85, 0x73, 0x34, 0x6e, 0x73, 0x6b, 0xc4, - 0xf9, 0x88, 0x91, 0x1a, 0x1e, 0xd3, 0xda, 0x90, 0x12, 0x16, 0xfa, 0x03, 0x72, 0x82, 0xa7, 0x94, - 0x6b, 0xea, 0x66, 0x9a, 0xf8, 0x08, 0x4b, 0x72, 0x86, 0x67, 0x1a, 0x51, 0x4d, 0x41, 0x4c, 0xa9, - 0x90, 0x13, 0xcc, 0xfc, 0x98, 0x88, 0x29, 0x0d, 0x88, 0x46, 0x3e, 0x48, 0x41, 0x86, 0x24, 0x96, - 0x34, 0xc2, 0x92, 0xf2, 0xc8, 0x17, 0x13, 0xa6, 0xa1, 0x95, 0xaf, 0x19, 0x98, 0xef, 0x25, 0x1e, - 0xd0, 0x11, 0x5c, 0x9b, 0xb3, 0x18, 0xc7, 0xa1, 0x1f, 0x13, 0x46, 0x02, 0xc9, 0x85, 0x0d, 0xca, - 0xa0, 0x6a, 0xd6, 0xb7, 0x9d, 0x45, 0xce, 0x9c, 0x23, 0x4d, 0xe9, 0x69, 0x86, 0x67, 0x9d, 0xdd, - 0x3a, 0x41, 0x07, 0x30, 0x4f, 0xa3, 0x91, 0x20, 0x71, 0x6c, 0x67, 0xca, 0xd9, 0xaa, 0x59, 0x77, - 0x16, 0xcb, 0x35, 0xe7, 0x17, 0xcd, 0x04, 0xdd, 0xa2, 0xb1, 0x24, 0x11, 0x11, 0xde, 0x25, 0x1d, - 0xb9, 0x30, 0x47, 0x12, 0xa1, 0xac, 0x12, 0xda, 0xf9, 0x8d, 0x90, 0x7b, 0x53, 0x47, 0x93, 0xd1, - 0x08, 0xfe, 0xcf, 0x27, 0x72, 0xc0, 0x27, 0x51, 0xe8, 0x4b, 0x81, 0x87, 0x43, 0x1a, 0xf8, 0x63, - 0xce, 0x68, 0x30, 0xb3, 0x0d, 0xe5, 0xb7, 0xb6, 0x58, 0xb7, 0xa3, 0x89, 0xfd, 0x84, 0xd7, 0x55, - 0x34, 0x6f, 0x83, 0xa7, 0x1d, 0x1f, 0x1a, 0x85, 0x65, 0x2b, 0x77, 0x68, 0x14, 0x72, 0x56, 0xde, - 0x2b, 0x32, 0x1e, 0x60, 0x76, 0xc2, 0x63, 0x59, 0xf9, 0x06, 0xe0, 0x7a, 0x9a, 0x51, 0xf4, 0x04, - 0x1a, 0x63, 0x2e, 0xa4, 0x4e, 0xbd, 0xb4, 0xb8, 0x8a, 0x2e, 0x17, 0x72, 0x2f, 0x7b, 0xde, 0xc8, - 0x78, 0x8a, 0x80, 0x10, 0x34, 0x06, 0x34, 0x0a, 0xed, 0x4c, 0x19, 0x54, 0x8b, 0x9e, 0xfa, 0x46, - 0x07, 0x70, 0x25, 0xc0, 0x63, 0x39, 0x11, 0xc4, 0x7f, 0xc7, 0x43, 0x62, 0x67, 0xcb, 0xa0, 0xfa, - 0x4f, 0xfd, 0xfe, 0x62, 0xd1, 0x17, 0x09, 0xfa, 0x35, 0x0f, 0x89, 0x67, 0x06, 0x57, 0x3f, 0xc8, - 0x81, 0x56, 0x48, 0x86, 0x78, 0xc2, 0xa4, 0x4f, 0xa2, 0x70, 0xcc, 0x69, 0x24, 0x55, 0x50, 0xc5, - 0xa4, 0x84, 0x7f, 0xf5, 0xa5, 0xab, 0xef, 0x6e, 0xd8, 0x5e, 0xff, 0x61, 0xdb, 0x0f, 0x18, 0x25, - 0x91, 0xf4, 0x25, 0x8b, 0x2b, 0x5f, 0x00, 0xfc, 0x2f, 0xa5, 0x43, 0xa8, 0x7e, 0x97, 0x00, 0xfe, - 0x8a, 0xf7, 0x7b, 0x70, 0x79, 0x5e, 0x7c, 0x6c, 0x1b, 0xe5, 0xec, 0xa5, 0xe1, 0xe4, 0x64, 0x91, - 0xcd, 0xf9, 0x30, 0x12, 0xa1, 0x6c, 0x7e, 0x00, 0xd0, 0xba, 0x3d, 0x20, 0xa8, 0x07, 0x73, 0x0c, - 0x0f, 0x08, 0x8b, 0x6d, 0xa0, 0x1e, 0xf1, 0xe3, 0x3f, 0x1f, 0x2e, 0xa7, 0xa5, 0x88, 0x6e, 0x24, - 0xc5, 0x2c, 0x29, 0x45, 0x4b, 0x6d, 0x3e, 0x83, 0xe6, 0xb5, 0x3b, 0x64, 0xc1, 0xec, 0x29, 0x99, - 0xa9, 0x18, 0x8b, 0xde, 0xfc, 0x13, 0xad, 0xc3, 0xe5, 0x29, 0x66, 0x13, 0xa2, 0x63, 0x4a, 0x7e, - 0x9e, 0x67, 0x9e, 0x82, 0xca, 0x67, 0x00, 0x37, 0x52, 0x5f, 0x35, 0x3a, 0x80, 0x86, 0x4a, 0x0f, - 0xa8, 0xf4, 0x1e, 0xdd, 0x71, 0x28, 0x1c, 0x15, 0xa6, 0x52, 0x98, 0xf7, 0x23, 0x99, 0x3d, 0x7f, - 0x2c, 0xf8, 0xfb, 0x99, 0x2a, 0xc2, 0xfc, 0x55, 0x3f, 0xf6, 0xaf, 0xf6, 0x95, 0x67, 0x26, 0xd4, - 0xee, 0x9c, 0x59, 0xa9, 0x42, 0x43, 0xf5, 0x65, 0x0d, 0xae, 0x7a, 0xee, 0xab, 0x66, 0xaf, 0xef, - 0x1d, 0xfb, 0x9d, 0x76, 0xeb, 0xd8, 0x5a, 0x42, 0xab, 0xb0, 0xd8, 0x68, 0xb5, 0x3a, 0x47, 0x7e, - 0xa3, 0x7d, 0x6c, 0x81, 0xed, 0x3a, 0x34, 0xaf, 0x75, 0x15, 0x99, 0x30, 0xbf, 0xef, 0xbe, 0x6c, - 0xbc, 0x69, 0xf5, 0xad, 0x25, 0xb4, 0x02, 0x0b, 0xcd, 0x6e, 0xbf, 0xb1, 0xd7, 0x72, 0x7b, 0x16, - 0x40, 0x05, 0x68, 0xb4, 0x3b, 0x6d, 0xd7, 0xca, 0xec, 0xed, 0x7c, 0xbc, 0x28, 0x81, 0x4f, 0x17, - 0x25, 0x70, 0x7e, 0x51, 0x02, 0x6f, 0xb7, 0x92, 0xf2, 0x28, 0x57, 0x7b, 0xfb, 0xe7, 0xad, 0x3a, - 0xc8, 0xa9, 0x2d, 0xfa, 0xf0, 0x7b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1a, 0xc6, 0xd3, 0x75, 0x1b, + // 723 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0x4b, 0x6f, 0xda, 0x4c, + 0x14, 0xcd, 0x80, 0xc3, 0x63, 0x9c, 0x87, 0x33, 0x5f, 0xa2, 0xcf, 0xcd, 0x82, 0x20, 0xa4, 0x4a, + 0x34, 0x52, 0x4c, 0x43, 0xab, 0xbe, 0x76, 0xa4, 0x71, 0x1b, 0x22, 0x0a, 0xc8, 0x50, 0x45, 0x74, + 0x63, 0x19, 0x7b, 0x20, 0xa3, 0x4c, 0x67, 0xac, 0xf1, 0x40, 0xca, 0xdf, 0xe9, 0xaf, 0xe9, 0xaa, + 0xea, 0xa6, 0xfb, 0x28, 0xea, 0xff, 0x68, 0xc5, 0xd8, 0x79, 0x16, 0xd2, 0x66, 0xd3, 0x9d, 0x3d, + 0xf7, 0x9c, 0xe3, 0x7b, 0xce, 0xe5, 0x0e, 0xb0, 0xc8, 0xb0, 0x3c, 0xe5, 0xe2, 0x84, 0xb0, 0x61, + 0x65, 0xbc, 0xdb, 0xc7, 0xd2, 0xdb, 0xad, 0x44, 0x24, 0xc0, 0xbe, 0x27, 0xac, 0x50, 0x70, 0xc9, + 0x91, 0x49, 0x22, 0x49, 0xb8, 0x75, 0x85, 0xb3, 0x12, 0xdc, 0xe6, 0xd6, 0x90, 0xf3, 0x21, 0xc5, + 0x15, 0x2f, 0x24, 0x95, 0x01, 0xc1, 0x34, 0x70, 0xfb, 0xf8, 0xd8, 0x1b, 0x13, 0x9e, 0x50, 0x37, + 0x67, 0x89, 0x0f, 0x3d, 0x89, 0x4f, 0xbd, 0x49, 0x82, 0x28, 0xcf, 0x40, 0x8c, 0x89, 0x90, 0x23, + 0x8f, 0xba, 0x11, 0x16, 0x63, 0xe2, 0xe3, 0x04, 0xf9, 0x68, 0x06, 0x32, 0xc0, 0x91, 0x24, 0xcc, + 0x93, 0x84, 0x33, 0x57, 0x8c, 0x68, 0x02, 0x2d, 0x7d, 0x4d, 0xc3, 0x6c, 0x27, 0xf6, 0x80, 0x8e, + 0xe0, 0xda, 0x94, 0x45, 0xb9, 0x17, 0xb8, 0x11, 0xa6, 0xd8, 0x97, 0x5c, 0x98, 0xa0, 0x08, 0xca, + 0x7a, 0x75, 0xdb, 0x9a, 0xe7, 0xcc, 0x3a, 0x4a, 0x28, 0x9d, 0x84, 0xe1, 0x18, 0xa7, 0xb7, 0x4e, + 0xd0, 0x01, 0xcc, 0x12, 0x36, 0x14, 0x38, 0x8a, 0xcc, 0x54, 0x31, 0x5d, 0xd6, 0xab, 0xd6, 0x7c, + 0xb9, 0xfa, 0xb4, 0x50, 0x8f, 0xd1, 0x0d, 0x12, 0x49, 0xcc, 0xb0, 0x70, 0x2e, 0xe8, 0xc8, 0x86, + 0x19, 0x1c, 0x0b, 0xa5, 0x95, 0xd0, 0xce, 0x1f, 0x84, 0xec, 0x9b, 0x3a, 0x09, 0x19, 0xf5, 0xe0, + 0xaa, 0xcf, 0x19, 0xc3, 0xbe, 0x8a, 0x23, 0xe4, 0x9c, 0x9a, 0x59, 0xe5, 0xf3, 0xf1, 0x7c, 0xbd, + 0xd7, 0x97, 0x84, 0x36, 0xe7, 0xb4, 0x83, 0xa5, 0x24, 0x6c, 0x18, 0x39, 0x2b, 0xfe, 0x8d, 0x73, + 0x34, 0x84, 0xff, 0xf3, 0x91, 0xec, 0xf3, 0x11, 0x0b, 0x5c, 0x29, 0xbc, 0xc1, 0x80, 0xf8, 0x6e, + 0xc8, 0x29, 0xf1, 0x27, 0xa6, 0xa6, 0x3e, 0x51, 0x99, 0xff, 0x89, 0x56, 0x42, 0xec, 0xc6, 0xbc, + 0xb6, 0xa2, 0x39, 0x1b, 0x7c, 0xd6, 0xf1, 0xa1, 0x96, 0x5b, 0x34, 0x32, 0x87, 0x5a, 0x2e, 0x63, + 0x64, 0x9d, 0x3c, 0xe5, 0xbe, 0x47, 0x8f, 0x79, 0x24, 0x4b, 0x3f, 0x01, 0x5c, 0x9f, 0x95, 0x21, + 0x7a, 0x0e, 0xb5, 0x90, 0x0b, 0x99, 0x0c, 0xb4, 0x30, 0xbf, 0x8b, 0x36, 0x17, 0x72, 0x2f, 0x7d, + 0x56, 0x4b, 0x39, 0x8a, 0x80, 0x10, 0xd4, 0xfa, 0x84, 0x05, 0x66, 0xaa, 0x08, 0xca, 0x79, 0x47, + 0x3d, 0xa3, 0x03, 0xb8, 0xe4, 0x7b, 0xa1, 0x1c, 0x09, 0xec, 0x7e, 0xe4, 0x01, 0x36, 0xd3, 0x45, + 0x50, 0x5e, 0xa9, 0x3e, 0xbc, 0x23, 0xbd, 0x18, 0xfd, 0x8e, 0x07, 0xd8, 0xd1, 0xfd, 0xab, 0x17, + 0x64, 0x41, 0x23, 0xc0, 0x03, 0x6f, 0x44, 0xa5, 0x8b, 0x59, 0x10, 0x72, 0xc2, 0xa4, 0x0a, 0x2a, + 0x1f, 0xb7, 0xb0, 0x9a, 0x14, 0xed, 0xa4, 0x76, 0xc3, 0xf6, 0xfa, 0xa5, 0x6d, 0xd7, 0xa7, 0x04, + 0x33, 0xe9, 0x4a, 0x1a, 0x95, 0x7e, 0x00, 0xf8, 0xdf, 0x8c, 0xe1, 0xa3, 0xea, 0x7d, 0x02, 0xf8, + 0x27, 0xde, 0x1f, 0xc0, 0xc5, 0x69, 0xf3, 0x91, 0xa9, 0x15, 0xd3, 0x17, 0x86, 0xe3, 0x93, 0x79, + 0x36, 0xa7, 0x7b, 0x8e, 0x85, 0xb2, 0xf9, 0x19, 0x40, 0xe3, 0xf6, 0xee, 0xa1, 0x0e, 0xcc, 0x50, + 0xaf, 0x8f, 0x69, 0x64, 0x02, 0xb5, 0x1f, 0xcf, 0xfe, 0x7e, 0x6f, 0xad, 0x86, 0x22, 0xda, 0x4c, + 0x8a, 0x49, 0xdc, 0x4a, 0x22, 0xb5, 0xf9, 0x12, 0xea, 0xd7, 0x6a, 0xc8, 0x80, 0xe9, 0x13, 0x3c, + 0x51, 0x31, 0xe6, 0x9d, 0xe9, 0x23, 0x5a, 0x87, 0x8b, 0x63, 0x8f, 0x8e, 0x70, 0x12, 0x53, 0xfc, + 0xf2, 0x2a, 0xf5, 0x02, 0x94, 0xbe, 0x03, 0xb8, 0x31, 0xf3, 0x57, 0x8d, 0x0e, 0xa0, 0xa6, 0xd2, + 0x03, 0x2a, 0xbd, 0xa7, 0xf7, 0x5c, 0x0a, 0x4b, 0x85, 0xa9, 0x14, 0xa6, 0xf3, 0x88, 0xd7, 0xda, + 0x0d, 0x05, 0xff, 0x34, 0x51, 0x4d, 0xe8, 0x77, 0xcd, 0x63, 0xff, 0xea, 0x2a, 0x74, 0xf4, 0x98, + 0xda, 0x9e, 0x32, 0x4b, 0x65, 0xa8, 0xa9, 0xb9, 0xac, 0xc1, 0x65, 0xc7, 0x7e, 0x5b, 0xef, 0x74, + 0x9d, 0x9e, 0xdb, 0x6a, 0x36, 0x7a, 0xc6, 0x02, 0x5a, 0x86, 0xf9, 0x5a, 0xa3, 0xd1, 0x3a, 0x72, + 0x6b, 0xcd, 0x9e, 0x01, 0xb6, 0xab, 0x50, 0xbf, 0x36, 0x55, 0xa4, 0xc3, 0xec, 0xbe, 0xfd, 0xa6, + 0xf6, 0xbe, 0xd1, 0x35, 0x16, 0xd0, 0x12, 0xcc, 0xd5, 0xdb, 0xdd, 0xda, 0x5e, 0xc3, 0xee, 0x18, + 0x00, 0xe5, 0xa0, 0xd6, 0x6c, 0x35, 0x6d, 0x23, 0xb5, 0xb7, 0xf3, 0xe5, 0xbc, 0x00, 0xbe, 0x9d, + 0x17, 0xc0, 0xd9, 0x79, 0x01, 0x7c, 0xd8, 0x8a, 0xdb, 0x23, 0x5c, 0xfd, 0x25, 0xfc, 0x7e, 0x61, + 0xf7, 0x33, 0xea, 0x82, 0x7e, 0xf2, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x28, 0x27, 0x2b, 0x03, 0x76, 0x06, 0x00, 0x00, } @@ -1016,6 +1027,18 @@ func (m *Sidecar) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.ConnectionPool != nil { + { + size, err := m.ConnectionPool.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSidecar(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } if m.OutboundTrafficPolicy != nil { { size, err := m.OutboundTrafficPolicy.MarshalToSizedBuffer(dAtA[:i]) @@ -1316,6 +1339,10 @@ func (m *Sidecar) Size() (n int) { l = m.OutboundTrafficPolicy.Size() n += 1 + l + sovSidecar(uint64(l)) } + if m.ConnectionPool != nil { + l = m.ConnectionPool.Size() + n += 1 + l + sovSidecar(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -1592,6 +1619,42 @@ func (m *Sidecar) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConnectionPool", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSidecar + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConnectionPool == nil { + m.ConnectionPool = &ConnectionPoolSettings{} + } + if err := m.ConnectionPool.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipSidecar(dAtA[iNdEx:]) diff --git a/networking/v1beta1/sidecar.proto b/networking/v1beta1/sidecar.proto index 4e1299ea4a..e051ae6bcd 100644 --- a/networking/v1beta1/sidecar.proto +++ b/networking/v1beta1/sidecar.proto @@ -447,6 +447,9 @@ message Sidecar { // detected defaults from the namespace-wide or the global default Sidecar. repeated IstioEgressListener egress = 3; + // Settings controlling the volume of connections to an upstream service + istio.networking.v1beta1.ConnectionPoolSettings connection_pool = 7; + // Configuration for the outbound traffic policy. If your // application uses one or more external services that are not known // apriori, setting the policy to `ALLOW_ANY` will cause the diff --git a/python/istio_api/networking/v1alpha3/sidecar_pb2.py b/python/istio_api/networking/v1alpha3/sidecar_pb2.py index adc68f7490..9ce4d08b44 100644 --- a/python/istio_api/networking/v1alpha3/sidecar_pb2.py +++ b/python/istio_api/networking/v1alpha3/sidecar_pb2.py @@ -25,7 +25,7 @@ package='istio.networking.v1alpha3', syntax='proto3', serialized_options=_b('Z istio.io/api/networking/v1alpha3'), - serialized_pb=_b('\n!networking/v1alpha3/sidecar.proto\x12\x19istio.networking.v1alpha3\x1a\x1fgoogle/api/field_behavior.proto\x1a!networking/v1alpha3/gateway.proto\x1a)networking/v1alpha3/virtual_service.proto\x1a*networking/v1alpha3/destination_rule.proto\"\xbd\x02\n\x07Sidecar\x12\x46\n\x11workload_selector\x18\x01 \x01(\x0b\x32+.istio.networking.v1alpha3.WorkloadSelector\x12@\n\x07ingress\x18\x02 \x03(\x0b\x32/.istio.networking.v1alpha3.IstioIngressListener\x12>\n\x06\x65gress\x18\x03 \x03(\x0b\x32..istio.networking.v1alpha3.IstioEgressListener\x12Q\n\x17outbound_traffic_policy\x18\x04 \x01(\x0b\x32\x30.istio.networking.v1alpha3.OutboundTrafficPolicyJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\tlocalhost\"\xd7\x01\n\x14IstioIngressListener\x12\x32\n\x04port\x18\x01 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.PortB\x03\xe0\x41\x02\x12\x0c\n\x04\x62ind\x18\x02 \x01(\t\x12<\n\x0c\x63\x61pture_mode\x18\x03 \x01(\x0e\x32&.istio.networking.v1alpha3.CaptureMode\x12\x1d\n\x10\x64\x65\x66\x61ult_endpoint\x18\x04 \x01(\tB\x03\xe0\x41\x02J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\x14localhost_client_tls\"\xc6\x01\n\x13IstioEgressListener\x12-\n\x04port\x18\x01 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x0c\n\x04\x62ind\x18\x02 \x01(\t\x12<\n\x0c\x63\x61pture_mode\x18\x03 \x01(\x0e\x32&.istio.networking.v1alpha3.CaptureMode\x12\x12\n\x05hosts\x18\x04 \x03(\tB\x03\xe0\x41\x02J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\x14localhost_server_tls\"\x8f\x01\n\x10WorkloadSelector\x12L\n\x06labels\x18\x01 \x03(\x0b\x32\x37.istio.networking.v1alpha3.WorkloadSelector.LabelsEntryB\x03\xe0\x41\x02\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc4\x01\n\x15OutboundTrafficPolicy\x12\x43\n\x04mode\x18\x01 \x01(\x0e\x32\x35.istio.networking.v1alpha3.OutboundTrafficPolicy.Mode\x12<\n\x0c\x65gress_proxy\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\"(\n\x04Mode\x12\x11\n\rREGISTRY_ONLY\x10\x00\x12\r\n\tALLOW_ANY\x10\x01*2\n\x0b\x43\x61ptureMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08IPTABLES\x10\x01\x12\x08\n\x04NONE\x10\x02\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') + serialized_pb=_b('\n!networking/v1alpha3/sidecar.proto\x12\x19istio.networking.v1alpha3\x1a\x1fgoogle/api/field_behavior.proto\x1a!networking/v1alpha3/gateway.proto\x1a)networking/v1alpha3/virtual_service.proto\x1a*networking/v1alpha3/destination_rule.proto\"\x89\x03\n\x07Sidecar\x12\x46\n\x11workload_selector\x18\x01 \x01(\x0b\x32+.istio.networking.v1alpha3.WorkloadSelector\x12@\n\x07ingress\x18\x02 \x03(\x0b\x32/.istio.networking.v1alpha3.IstioIngressListener\x12>\n\x06\x65gress\x18\x03 \x03(\x0b\x32..istio.networking.v1alpha3.IstioEgressListener\x12J\n\x0f\x63onnection_pool\x18\x07 \x01(\x0b\x32\x31.istio.networking.v1alpha3.ConnectionPoolSettings\x12Q\n\x17outbound_traffic_policy\x18\x04 \x01(\x0b\x32\x30.istio.networking.v1alpha3.OutboundTrafficPolicyJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\tlocalhost\"\xd7\x01\n\x14IstioIngressListener\x12\x32\n\x04port\x18\x01 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.PortB\x03\xe0\x41\x02\x12\x0c\n\x04\x62ind\x18\x02 \x01(\t\x12<\n\x0c\x63\x61pture_mode\x18\x03 \x01(\x0e\x32&.istio.networking.v1alpha3.CaptureMode\x12\x1d\n\x10\x64\x65\x66\x61ult_endpoint\x18\x04 \x01(\tB\x03\xe0\x41\x02J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\x14localhost_client_tls\"\xc6\x01\n\x13IstioEgressListener\x12-\n\x04port\x18\x01 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x0c\n\x04\x62ind\x18\x02 \x01(\t\x12<\n\x0c\x63\x61pture_mode\x18\x03 \x01(\x0e\x32&.istio.networking.v1alpha3.CaptureMode\x12\x12\n\x05hosts\x18\x04 \x03(\tB\x03\xe0\x41\x02J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\x14localhost_server_tls\"\x8f\x01\n\x10WorkloadSelector\x12L\n\x06labels\x18\x01 \x03(\x0b\x32\x37.istio.networking.v1alpha3.WorkloadSelector.LabelsEntryB\x03\xe0\x41\x02\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc4\x01\n\x15OutboundTrafficPolicy\x12\x43\n\x04mode\x18\x01 \x01(\x0e\x32\x35.istio.networking.v1alpha3.OutboundTrafficPolicy.Mode\x12<\n\x0c\x65gress_proxy\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\"(\n\x04Mode\x12\x11\n\rREGISTRY_ONLY\x10\x00\x12\r\n\tALLOW_ANY\x10\x01*2\n\x0b\x43\x61ptureMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08IPTABLES\x10\x01\x12\x08\n\x04NONE\x10\x02\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') , dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_gateway__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_virtual__service__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_destination__rule__pb2.DESCRIPTOR,]) @@ -50,8 +50,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=1303, - serialized_end=1353, + serialized_start=1379, + serialized_end=1429, ) _sym_db.RegisterEnumDescriptor(_CAPTUREMODE) @@ -78,8 +78,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=1261, - serialized_end=1301, + serialized_start=1337, + serialized_end=1377, ) _sym_db.RegisterEnumDescriptor(_OUTBOUNDTRAFFICPOLICY_MODE) @@ -113,7 +113,14 @@ is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='outbound_traffic_policy', full_name='istio.networking.v1alpha3.Sidecar.outbound_traffic_policy', index=3, + name='connection_pool', full_name='istio.networking.v1alpha3.Sidecar.connection_pool', index=3, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='outbound_traffic_policy', full_name='istio.networking.v1alpha3.Sidecar.outbound_traffic_policy', index=4, number=4, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, @@ -132,7 +139,7 @@ oneofs=[ ], serialized_start=220, - serialized_end=537, + serialized_end=613, ) @@ -183,8 +190,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=540, - serialized_end=755, + serialized_start=616, + serialized_end=831, ) @@ -235,8 +242,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=758, - serialized_end=956, + serialized_start=834, + serialized_end=1032, ) @@ -273,8 +280,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1057, - serialized_end=1102, + serialized_start=1133, + serialized_end=1178, ) _WORKLOADSELECTOR = _descriptor.Descriptor( @@ -303,8 +310,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=959, - serialized_end=1102, + serialized_start=1035, + serialized_end=1178, ) @@ -342,13 +349,14 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1105, - serialized_end=1301, + serialized_start=1181, + serialized_end=1377, ) _SIDECAR.fields_by_name['workload_selector'].message_type = _WORKLOADSELECTOR _SIDECAR.fields_by_name['ingress'].message_type = _ISTIOINGRESSLISTENER _SIDECAR.fields_by_name['egress'].message_type = _ISTIOEGRESSLISTENER +_SIDECAR.fields_by_name['connection_pool'].message_type = networking_dot_v1alpha3_dot_destination__rule__pb2._CONNECTIONPOOLSETTINGS _SIDECAR.fields_by_name['outbound_traffic_policy'].message_type = _OUTBOUNDTRAFFICPOLICY _ISTIOINGRESSLISTENER.fields_by_name['port'].message_type = networking_dot_v1alpha3_dot_gateway__pb2._PORT _ISTIOINGRESSLISTENER.fields_by_name['capture_mode'].enum_type = _CAPTUREMODE diff --git a/python/istio_api/networking/v1beta1/sidecar_pb2.py b/python/istio_api/networking/v1beta1/sidecar_pb2.py index 699033df84..ee465eed05 100644 --- a/python/istio_api/networking/v1beta1/sidecar_pb2.py +++ b/python/istio_api/networking/v1beta1/sidecar_pb2.py @@ -25,7 +25,7 @@ package='istio.networking.v1beta1', syntax='proto3', serialized_options=_b('Z\037istio.io/api/networking/v1beta1'), - serialized_pb=_b('\n networking/v1beta1/sidecar.proto\x12\x18istio.networking.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a networking/v1beta1/gateway.proto\x1a(networking/v1beta1/virtual_service.proto\x1a)networking/v1beta1/destination_rule.proto\"\xb9\x02\n\x07Sidecar\x12\x45\n\x11workload_selector\x18\x01 \x01(\x0b\x32*.istio.networking.v1beta1.WorkloadSelector\x12?\n\x07ingress\x18\x02 \x03(\x0b\x32..istio.networking.v1beta1.IstioIngressListener\x12=\n\x06\x65gress\x18\x03 \x03(\x0b\x32-.istio.networking.v1beta1.IstioEgressListener\x12P\n\x17outbound_traffic_policy\x18\x04 \x01(\x0b\x32/.istio.networking.v1beta1.OutboundTrafficPolicyJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\tlocalhost\"\xd5\x01\n\x14IstioIngressListener\x12\x31\n\x04port\x18\x01 \x01(\x0b\x32\x1e.istio.networking.v1beta1.PortB\x03\xe0\x41\x02\x12\x0c\n\x04\x62ind\x18\x02 \x01(\t\x12;\n\x0c\x63\x61pture_mode\x18\x03 \x01(\x0e\x32%.istio.networking.v1beta1.CaptureMode\x12\x1d\n\x10\x64\x65\x66\x61ult_endpoint\x18\x04 \x01(\tB\x03\xe0\x41\x02J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\x14localhost_client_tls\"\xc4\x01\n\x13IstioEgressListener\x12,\n\x04port\x18\x01 \x01(\x0b\x32\x1e.istio.networking.v1beta1.Port\x12\x0c\n\x04\x62ind\x18\x02 \x01(\t\x12;\n\x0c\x63\x61pture_mode\x18\x03 \x01(\x0e\x32%.istio.networking.v1beta1.CaptureMode\x12\x12\n\x05hosts\x18\x04 \x03(\tB\x03\xe0\x41\x02J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\x14localhost_server_tls\"\x8e\x01\n\x10WorkloadSelector\x12K\n\x06labels\x18\x01 \x03(\x0b\x32\x36.istio.networking.v1beta1.WorkloadSelector.LabelsEntryB\x03\xe0\x41\x02\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc2\x01\n\x15OutboundTrafficPolicy\x12\x42\n\x04mode\x18\x01 \x01(\x0e\x32\x34.istio.networking.v1beta1.OutboundTrafficPolicy.Mode\x12;\n\x0c\x65gress_proxy\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.Destination\"(\n\x04Mode\x12\x11\n\rREGISTRY_ONLY\x10\x00\x12\r\n\tALLOW_ANY\x10\x01*2\n\x0b\x43\x61ptureMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08IPTABLES\x10\x01\x12\x08\n\x04NONE\x10\x02\x42!Z\x1fistio.io/api/networking/v1beta1b\x06proto3') + serialized_pb=_b('\n networking/v1beta1/sidecar.proto\x12\x18istio.networking.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a networking/v1beta1/gateway.proto\x1a(networking/v1beta1/virtual_service.proto\x1a)networking/v1beta1/destination_rule.proto\"\x84\x03\n\x07Sidecar\x12\x45\n\x11workload_selector\x18\x01 \x01(\x0b\x32*.istio.networking.v1beta1.WorkloadSelector\x12?\n\x07ingress\x18\x02 \x03(\x0b\x32..istio.networking.v1beta1.IstioIngressListener\x12=\n\x06\x65gress\x18\x03 \x03(\x0b\x32-.istio.networking.v1beta1.IstioEgressListener\x12I\n\x0f\x63onnection_pool\x18\x07 \x01(\x0b\x32\x30.istio.networking.v1beta1.ConnectionPoolSettings\x12P\n\x17outbound_traffic_policy\x18\x04 \x01(\x0b\x32/.istio.networking.v1beta1.OutboundTrafficPolicyJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\tlocalhost\"\xd5\x01\n\x14IstioIngressListener\x12\x31\n\x04port\x18\x01 \x01(\x0b\x32\x1e.istio.networking.v1beta1.PortB\x03\xe0\x41\x02\x12\x0c\n\x04\x62ind\x18\x02 \x01(\t\x12;\n\x0c\x63\x61pture_mode\x18\x03 \x01(\x0e\x32%.istio.networking.v1beta1.CaptureMode\x12\x1d\n\x10\x64\x65\x66\x61ult_endpoint\x18\x04 \x01(\tB\x03\xe0\x41\x02J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\x14localhost_client_tls\"\xc4\x01\n\x13IstioEgressListener\x12,\n\x04port\x18\x01 \x01(\x0b\x32\x1e.istio.networking.v1beta1.Port\x12\x0c\n\x04\x62ind\x18\x02 \x01(\t\x12;\n\x0c\x63\x61pture_mode\x18\x03 \x01(\x0e\x32%.istio.networking.v1beta1.CaptureMode\x12\x12\n\x05hosts\x18\x04 \x03(\tB\x03\xe0\x41\x02J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\x14localhost_server_tls\"\x8e\x01\n\x10WorkloadSelector\x12K\n\x06labels\x18\x01 \x03(\x0b\x32\x36.istio.networking.v1beta1.WorkloadSelector.LabelsEntryB\x03\xe0\x41\x02\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc2\x01\n\x15OutboundTrafficPolicy\x12\x42\n\x04mode\x18\x01 \x01(\x0e\x32\x34.istio.networking.v1beta1.OutboundTrafficPolicy.Mode\x12;\n\x0c\x65gress_proxy\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.Destination\"(\n\x04Mode\x12\x11\n\rREGISTRY_ONLY\x10\x00\x12\r\n\tALLOW_ANY\x10\x01*2\n\x0b\x43\x61ptureMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08IPTABLES\x10\x01\x12\x08\n\x04NONE\x10\x02\x42!Z\x1fistio.io/api/networking/v1beta1b\x06proto3') , dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,networking_dot_v1beta1_dot_gateway__pb2.DESCRIPTOR,networking_dot_v1beta1_dot_virtual__service__pb2.DESCRIPTOR,networking_dot_v1beta1_dot_destination__rule__pb2.DESCRIPTOR,]) @@ -50,8 +50,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=1287, - serialized_end=1337, + serialized_start=1362, + serialized_end=1412, ) _sym_db.RegisterEnumDescriptor(_CAPTUREMODE) @@ -78,8 +78,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=1245, - serialized_end=1285, + serialized_start=1320, + serialized_end=1360, ) _sym_db.RegisterEnumDescriptor(_OUTBOUNDTRAFFICPOLICY_MODE) @@ -113,7 +113,14 @@ is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='outbound_traffic_policy', full_name='istio.networking.v1beta1.Sidecar.outbound_traffic_policy', index=3, + name='connection_pool', full_name='istio.networking.v1beta1.Sidecar.connection_pool', index=3, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='outbound_traffic_policy', full_name='istio.networking.v1beta1.Sidecar.outbound_traffic_policy', index=4, number=4, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, @@ -132,7 +139,7 @@ oneofs=[ ], serialized_start=215, - serialized_end=528, + serialized_end=603, ) @@ -183,8 +190,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=531, - serialized_end=744, + serialized_start=606, + serialized_end=819, ) @@ -235,8 +242,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=747, - serialized_end=943, + serialized_start=822, + serialized_end=1018, ) @@ -273,8 +280,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1043, - serialized_end=1088, + serialized_start=1118, + serialized_end=1163, ) _WORKLOADSELECTOR = _descriptor.Descriptor( @@ -303,8 +310,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=946, - serialized_end=1088, + serialized_start=1021, + serialized_end=1163, ) @@ -342,13 +349,14 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1091, - serialized_end=1285, + serialized_start=1166, + serialized_end=1360, ) _SIDECAR.fields_by_name['workload_selector'].message_type = _WORKLOADSELECTOR _SIDECAR.fields_by_name['ingress'].message_type = _ISTIOINGRESSLISTENER _SIDECAR.fields_by_name['egress'].message_type = _ISTIOEGRESSLISTENER +_SIDECAR.fields_by_name['connection_pool'].message_type = networking_dot_v1beta1_dot_destination__rule__pb2._CONNECTIONPOOLSETTINGS _SIDECAR.fields_by_name['outbound_traffic_policy'].message_type = _OUTBOUNDTRAFFICPOLICY _ISTIOINGRESSLISTENER.fields_by_name['port'].message_type = networking_dot_v1beta1_dot_gateway__pb2._PORT _ISTIOINGRESSLISTENER.fields_by_name['capture_mode'].enum_type = _CAPTUREMODE