diff --git a/kubernetes/customresourcedefinitions.gen.yaml b/kubernetes/customresourcedefinitions.gen.yaml index 7318e07ffd..19c2b99f48 100644 --- a/kubernetes/customresourcedefinitions.gen.yaml +++ b/kubernetes/customresourcedefinitions.gen.yaml @@ -819,6 +819,33 @@ spec: a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream + connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for + upstream connections. + properties: + interval: + description: Send HTTP/2 PING frames at + this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response + to an HTTP/2 PING frame before closing + the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -1194,6 +1221,33 @@ spec: to a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream + connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames + for upstream connections. + properties: + interval: + description: Send HTTP/2 PING frames + at this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration + greater than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for + a response to an HTTP/2 PING frame + before closing the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration + greater than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -1760,6 +1814,30 @@ spec: description: Maximum number of active requests to a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for upstream + connections. + properties: + interval: + description: Send HTTP/2 PING frames at this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater than + 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response to + an HTTP/2 PING frame before closing the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater than + 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -2125,6 +2203,33 @@ spec: a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream + connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for + upstream connections. + properties: + interval: + description: Send HTTP/2 PING frames at + this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response + to an HTTP/2 PING frame before closing + the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -2820,6 +2925,33 @@ spec: a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream + connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for + upstream connections. + properties: + interval: + description: Send HTTP/2 PING frames at + this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response + to an HTTP/2 PING frame before closing + the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -3195,6 +3327,33 @@ spec: to a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream + connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames + for upstream connections. + properties: + interval: + description: Send HTTP/2 PING frames + at this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration + greater than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for + a response to an HTTP/2 PING frame + before closing the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration + greater than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -3761,6 +3920,30 @@ spec: description: Maximum number of active requests to a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for upstream + connections. + properties: + interval: + description: Send HTTP/2 PING frames at this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater than + 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response to + an HTTP/2 PING frame before closing the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater than + 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -4126,6 +4309,33 @@ spec: a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream + connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for + upstream connections. + properties: + interval: + description: Send HTTP/2 PING frames at + this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response + to an HTTP/2 PING frame before closing + the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -4821,6 +5031,33 @@ spec: a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream + connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for + upstream connections. + properties: + interval: + description: Send HTTP/2 PING frames at + this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response + to an HTTP/2 PING frame before closing + the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -5196,6 +5433,33 @@ spec: to a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream + connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames + for upstream connections. + properties: + interval: + description: Send HTTP/2 PING frames + at this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration + greater than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for + a response to an HTTP/2 PING frame + before closing the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration + greater than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -5762,6 +6026,30 @@ spec: description: Maximum number of active requests to a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for upstream + connections. + properties: + interval: + description: Send HTTP/2 PING frames at this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater than + 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response to + an HTTP/2 PING frame before closing the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater than + 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -6127,6 +6415,33 @@ spec: a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream + connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for + upstream connections. + properties: + interval: + description: Send HTTP/2 PING frames at + this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response + to an HTTP/2 PING frame before closing + the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -9233,6 +9548,28 @@ spec: description: Maximum number of active requests to a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for upstream + connections. + properties: + interval: + description: Send HTTP/2 PING frames at this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response to an + HTTP/2 PING frame before closing the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -9355,6 +9692,32 @@ spec: destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for upstream + connections. + properties: + interval: + description: Send HTTP/2 PING frames at this + interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response + to an HTTP/2 PING frame before closing the + connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -9811,6 +10174,28 @@ spec: description: Maximum number of active requests to a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for upstream + connections. + properties: + interval: + description: Send HTTP/2 PING frames at this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response to an + HTTP/2 PING frame before closing the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -9933,6 +10318,32 @@ spec: destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for upstream + connections. + properties: + interval: + description: Send HTTP/2 PING frames at this + interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response + to an HTTP/2 PING frame before closing the + connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -10389,6 +10800,28 @@ spec: description: Maximum number of active requests to a destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for upstream + connections. + properties: + interval: + description: Send HTTP/2 PING frames at this interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response to an + HTTP/2 PING frame before closing the connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. @@ -10511,6 +10944,32 @@ spec: destination. format: int32 type: integer + http2ProtocolOptions: + description: HTTP/2 protocol options for upstream connections. + properties: + connectionKeepalive: + description: Configure HTTP/2 PING frames for upstream + connections. + properties: + interval: + description: Send HTTP/2 PING frames at this + interval. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + timeout: + description: How long to wait for a response + to an HTTP/2 PING frame before closing the + connection. + type: string + x-kubernetes-validations: + - message: must be a valid duration greater + than 1ms + rule: duration(self) >= duration('1ms') + type: object + type: object idleTimeout: description: The idle timeout for upstream connection pool connections. diff --git a/networking/v1/destination_rule_alias.gen.go b/networking/v1/destination_rule_alias.gen.go index b165fa1293..5e0d720870 100644 --- a/networking/v1/destination_rule_alias.gen.go +++ b/networking/v1/destination_rule_alias.gen.go @@ -263,6 +263,12 @@ type ConnectionPoolSettings_TCPSettings_TcpKeepalive = v1alpha3.ConnectionPoolSe // Settings applicable to HTTP1.1/HTTP2/GRPC connections. type ConnectionPoolSettings_HTTPSettings = v1alpha3.ConnectionPoolSettings_HTTPSettings +// Settings for HTTP/2 protocol options. +type ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions = v1alpha3.ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions + +// Settings for HTTP/2 PING frames. +type ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive = v1alpha3.ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive + // Policy for upgrading http1.1 connections to http2. type ConnectionPoolSettings_HTTPSettings_H2UpgradePolicy = v1alpha3.ConnectionPoolSettings_HTTPSettings_H2UpgradePolicy diff --git a/networking/v1alpha3/destination_rule.pb.go b/networking/v1alpha3/destination_rule.pb.go index abc3b42a55..2b27833bd9 100644 --- a/networking/v1alpha3/destination_rule.pb.go +++ b/networking/v1alpha3/destination_rule.pb.go @@ -2533,6 +2533,8 @@ type ConnectionPoolSettings_HTTPSettings struct { // The maximum number of concurrent streams allowed for a peer on one HTTP/2 connection. // Defaults to 2^31-1. MaxConcurrentStreams int32 `protobuf:"varint,8,opt,name=max_concurrent_streams,json=maxConcurrentStreams,proto3" json:"max_concurrent_streams,omitempty"` + // HTTP/2 protocol options for upstream connections. + Http2ProtocolOptions *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions `protobuf:"bytes,9,opt,name=http2_protocol_options,json=http2ProtocolOptions,proto3" json:"http2_protocol_options,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2623,6 +2625,13 @@ func (x *ConnectionPoolSettings_HTTPSettings) GetMaxConcurrentStreams() int32 { return 0 } +func (x *ConnectionPoolSettings_HTTPSettings) GetHttp2ProtocolOptions() *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions { + if x != nil { + return x.Http2ProtocolOptions + } + return nil +} + // TCP keepalive. type ConnectionPoolSettings_TCPSettings_TcpKeepalive struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -2693,6 +2702,109 @@ func (x *ConnectionPoolSettings_TCPSettings_TcpKeepalive) GetInterval() *duratio return nil } +// Settings for HTTP/2 protocol options. +type ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Configure HTTP/2 PING frames for upstream connections. + ConnectionKeepalive *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive `protobuf:"bytes,1,opt,name=connection_keepalive,json=connectionKeepalive,proto3" json:"connection_keepalive,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions) Reset() { + *x = ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions{} + mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions) ProtoMessage() {} + +func (x *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions) ProtoReflect() protoreflect.Message { + mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions.ProtoReflect.Descriptor instead. +func (*ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions) Descriptor() ([]byte, []int) { + return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{5, 1, 0} +} + +func (x *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions) GetConnectionKeepalive() *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive { + if x != nil { + return x.ConnectionKeepalive + } + return nil +} + +// Settings for HTTP/2 PING frames. +type ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Send HTTP/2 PING frames at this interval. Required when + // `connectionKeepalive` is set. + Interval *duration.Duration `protobuf:"bytes,1,opt,name=interval,proto3" json:"interval,omitempty"` + // How long to wait for a response to an HTTP/2 PING frame before + // closing the connection. Required when `connectionKeepalive` is set. + Timeout *duration.Duration `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) Reset() { + *x = ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive{} + mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) ProtoMessage() {} + +func (x *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) ProtoReflect() protoreflect.Message { + mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[23] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive.ProtoReflect.Descriptor instead. +func (*ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) Descriptor() ([]byte, []int) { + return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{5, 1, 0, 0} +} + +func (x *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) GetInterval() *duration.Duration { + if x != nil { + return x.Interval + } + return nil +} + +func (x *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) GetTimeout() *duration.Duration { + if x != nil { + return x.Timeout + } + return nil +} + // Describes how traffic originating in the 'from' zone or sub-zone is // distributed over a set of 'to' zones. Syntax for specifying a zone is // {region}/{zone}/{sub-zone} and terminal wildcards are allowed on any @@ -2717,7 +2829,7 @@ type LocalityLoadBalancerSetting_Distribute struct { func (x *LocalityLoadBalancerSetting_Distribute) Reset() { *x = LocalityLoadBalancerSetting_Distribute{} - mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[22] + mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2729,7 +2841,7 @@ func (x *LocalityLoadBalancerSetting_Distribute) String() string { func (*LocalityLoadBalancerSetting_Distribute) ProtoMessage() {} func (x *LocalityLoadBalancerSetting_Distribute) ProtoReflect() protoreflect.Message { - mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[22] + mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2779,7 +2891,7 @@ type LocalityLoadBalancerSetting_Failover struct { func (x *LocalityLoadBalancerSetting_Failover) Reset() { *x = LocalityLoadBalancerSetting_Failover{} - mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[23] + mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2791,7 +2903,7 @@ func (x *LocalityLoadBalancerSetting_Failover) String() string { func (*LocalityLoadBalancerSetting_Failover) ProtoMessage() {} func (x *LocalityLoadBalancerSetting_Failover) ProtoReflect() protoreflect.Message { - mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[23] + mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2917,8 +3029,7 @@ const file_networking_v1alpha3_destination_rule_proto_rawDesc = "" + "\x0fminimum_percent\x18\x02 \x01(\v2\x1c.google.protobuf.DoubleValueR\x0eminimumPercent\x12<\n" + "\n" + "aggression\x18\x03 \x01(\v2\x1c.google.protobuf.DoubleValueR\n" + - "aggression\"\x88\n" + - "\n" + + "aggression\"\xce\r\n" + "\x16ConnectionPoolSettings\x12O\n" + "\x03tcp\x18\x01 \x01(\v2=.istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettingsR\x03tcp\x12R\n" + "\x04http\x18\x02 \x01(\v2>.istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettingsR\x04http\x1a\x8b\x04\n" + @@ -2931,7 +3042,7 @@ const file_networking_v1alpha3_destination_rule_proto_rawDesc = "" + "\fTcpKeepalive\x12\x16\n" + "\x06probes\x18\x01 \x01(\rR\x06probes\x12-\n" + "\x04time\x18\x02 \x01(\v2\x19.google.protobuf.DurationR\x04time\x125\n" + - "\binterval\x18\x03 \x01(\v2\x19.google.protobuf.DurationR\binterval\x1a\xba\x04\n" + + "\binterval\x18\x03 \x01(\v2\x19.google.protobuf.DurationR\binterval\x1a\x80\b\n" + "\fHTTPSettings\x12;\n" + "\x1ahttp1_max_pending_requests\x18\x01 \x01(\x05R\x17http1MaxPendingRequests\x12,\n" + "\x12http2_max_requests\x18\x02 \x01(\x05R\x10http2MaxRequests\x12=\n" + @@ -2941,7 +3052,13 @@ const file_networking_v1alpha3_destination_rule_proto_rawDesc = "" + "\fidle_timeout\x18\x05 \x01(\v2\x19.google.protobuf.DurationR\vidleTimeout\x12z\n" + "\x11h2_upgrade_policy\x18\x06 \x01(\x0e2N.istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicyR\x0fh2UpgradePolicy\x12.\n" + "\x13use_client_protocol\x18\a \x01(\bR\x11useClientProtocol\x124\n" + - "\x16max_concurrent_streams\x18\b \x01(\x05R\x14maxConcurrentStreams\"?\n" + + "\x16max_concurrent_streams\x18\b \x01(\x05R\x14maxConcurrentStreams\x12\x89\x01\n" + + "\x16http2_protocol_options\x18\t \x01(\v2S.istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.Http2ProtocolOptionsR\x14http2ProtocolOptions\x1a\xb7\x02\n" + + "\x14Http2ProtocolOptions\x12\x9a\x01\n" + + "\x14connection_keepalive\x18\x01 \x01(\v2g.istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.Http2ProtocolOptions.ConnectionKeepaliveR\x13connectionKeepalive\x1a\x81\x01\n" + + "\x13ConnectionKeepalive\x125\n" + + "\binterval\x18\x01 \x01(\v2\x19.google.protobuf.DurationR\binterval\x123\n" + + "\atimeout\x18\x02 \x01(\v2\x19.google.protobuf.DurationR\atimeout\"?\n" + "\x0fH2UpgradePolicy\x12\v\n" + "\aDEFAULT\x10\x00\x12\x12\n" + "\x0eDO_NOT_UPGRADE\x10\x01\x12\v\n" + @@ -3005,7 +3122,7 @@ func file_networking_v1alpha3_destination_rule_proto_rawDescGZIP() []byte { } var file_networking_v1alpha3_destination_rule_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_networking_v1alpha3_destination_rule_proto_msgTypes = make([]protoimpl.MessageInfo, 25) +var file_networking_v1alpha3_destination_rule_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_networking_v1alpha3_destination_rule_proto_goTypes = []any{ (TrafficPolicy_ProxyProtocol_VERSION)(0), // 0: istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol.VERSION (LoadBalancerSettings_SimpleLB)(0), // 1: istio.networking.v1alpha3.LoadBalancerSettings.SimpleLB @@ -3033,20 +3150,22 @@ var file_networking_v1alpha3_destination_rule_proto_goTypes = []any{ (*ConnectionPoolSettings_TCPSettings)(nil), // 23: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings (*ConnectionPoolSettings_HTTPSettings)(nil), // 24: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings (*ConnectionPoolSettings_TCPSettings_TcpKeepalive)(nil), // 25: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive - (*LocalityLoadBalancerSetting_Distribute)(nil), // 26: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute - (*LocalityLoadBalancerSetting_Failover)(nil), // 27: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Failover - nil, // 28: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.ToEntry - (*v1beta1.WorkloadSelector)(nil), // 29: istio.type.v1beta1.WorkloadSelector - (*duration.Duration)(nil), // 30: google.protobuf.Duration - (*wrappers.DoubleValue)(nil), // 31: google.protobuf.DoubleValue - (*wrappers.UInt32Value)(nil), // 32: google.protobuf.UInt32Value - (*wrappers.BoolValue)(nil), // 33: google.protobuf.BoolValue - (*PortSelector)(nil), // 34: istio.networking.v1alpha3.PortSelector + (*ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions)(nil), // 26: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.Http2ProtocolOptions + (*ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive)(nil), // 27: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.Http2ProtocolOptions.ConnectionKeepalive + (*LocalityLoadBalancerSetting_Distribute)(nil), // 28: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute + (*LocalityLoadBalancerSetting_Failover)(nil), // 29: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Failover + nil, // 30: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.ToEntry + (*v1beta1.WorkloadSelector)(nil), // 31: istio.type.v1beta1.WorkloadSelector + (*duration.Duration)(nil), // 32: google.protobuf.Duration + (*wrappers.DoubleValue)(nil), // 33: google.protobuf.DoubleValue + (*wrappers.UInt32Value)(nil), // 34: google.protobuf.UInt32Value + (*wrappers.BoolValue)(nil), // 35: google.protobuf.BoolValue + (*PortSelector)(nil), // 36: istio.networking.v1alpha3.PortSelector } var file_networking_v1alpha3_destination_rule_proto_depIdxs = []int32{ 5, // 0: istio.networking.v1alpha3.DestinationRule.traffic_policy:type_name -> istio.networking.v1alpha3.TrafficPolicy 6, // 1: istio.networking.v1alpha3.DestinationRule.subsets:type_name -> istio.networking.v1alpha3.Subset - 29, // 2: istio.networking.v1alpha3.DestinationRule.workload_selector:type_name -> istio.type.v1beta1.WorkloadSelector + 31, // 2: istio.networking.v1alpha3.DestinationRule.workload_selector:type_name -> istio.type.v1beta1.WorkloadSelector 7, // 3: istio.networking.v1alpha3.TrafficPolicy.load_balancer:type_name -> istio.networking.v1alpha3.LoadBalancerSettings 9, // 4: istio.networking.v1alpha3.TrafficPolicy.connection_pool:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings 10, // 5: istio.networking.v1alpha3.TrafficPolicy.outlier_detection:type_name -> istio.networking.v1alpha3.OutlierDetection @@ -3060,49 +3179,53 @@ var file_networking_v1alpha3_destination_rule_proto_depIdxs = []int32{ 1, // 13: istio.networking.v1alpha3.LoadBalancerSettings.simple:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.SimpleLB 18, // 14: istio.networking.v1alpha3.LoadBalancerSettings.consistent_hash:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB 12, // 15: istio.networking.v1alpha3.LoadBalancerSettings.locality_lb_setting:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting - 30, // 16: istio.networking.v1alpha3.LoadBalancerSettings.warmup_duration_secs:type_name -> google.protobuf.Duration + 32, // 16: istio.networking.v1alpha3.LoadBalancerSettings.warmup_duration_secs:type_name -> google.protobuf.Duration 8, // 17: istio.networking.v1alpha3.LoadBalancerSettings.warmup:type_name -> istio.networking.v1alpha3.WarmupConfiguration - 30, // 18: istio.networking.v1alpha3.WarmupConfiguration.duration:type_name -> google.protobuf.Duration - 31, // 19: istio.networking.v1alpha3.WarmupConfiguration.minimum_percent:type_name -> google.protobuf.DoubleValue - 31, // 20: istio.networking.v1alpha3.WarmupConfiguration.aggression:type_name -> google.protobuf.DoubleValue + 32, // 18: istio.networking.v1alpha3.WarmupConfiguration.duration:type_name -> google.protobuf.Duration + 33, // 19: istio.networking.v1alpha3.WarmupConfiguration.minimum_percent:type_name -> google.protobuf.DoubleValue + 33, // 20: istio.networking.v1alpha3.WarmupConfiguration.aggression:type_name -> google.protobuf.DoubleValue 23, // 21: istio.networking.v1alpha3.ConnectionPoolSettings.tcp:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings 24, // 22: istio.networking.v1alpha3.ConnectionPoolSettings.http:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings - 32, // 23: istio.networking.v1alpha3.OutlierDetection.consecutive_local_origin_failures:type_name -> google.protobuf.UInt32Value - 32, // 24: istio.networking.v1alpha3.OutlierDetection.consecutive_gateway_errors:type_name -> google.protobuf.UInt32Value - 32, // 25: istio.networking.v1alpha3.OutlierDetection.consecutive_5xx_errors:type_name -> google.protobuf.UInt32Value - 30, // 26: istio.networking.v1alpha3.OutlierDetection.interval:type_name -> google.protobuf.Duration - 30, // 27: istio.networking.v1alpha3.OutlierDetection.base_ejection_time:type_name -> google.protobuf.Duration + 34, // 23: istio.networking.v1alpha3.OutlierDetection.consecutive_local_origin_failures:type_name -> google.protobuf.UInt32Value + 34, // 24: istio.networking.v1alpha3.OutlierDetection.consecutive_gateway_errors:type_name -> google.protobuf.UInt32Value + 34, // 25: istio.networking.v1alpha3.OutlierDetection.consecutive_5xx_errors:type_name -> google.protobuf.UInt32Value + 32, // 26: istio.networking.v1alpha3.OutlierDetection.interval:type_name -> google.protobuf.Duration + 32, // 27: istio.networking.v1alpha3.OutlierDetection.base_ejection_time:type_name -> google.protobuf.Duration 3, // 28: istio.networking.v1alpha3.ClientTLSSettings.mode:type_name -> istio.networking.v1alpha3.ClientTLSSettings.TLSmode - 33, // 29: istio.networking.v1alpha3.ClientTLSSettings.insecure_skip_verify:type_name -> google.protobuf.BoolValue - 26, // 30: istio.networking.v1alpha3.LocalityLoadBalancerSetting.distribute:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute - 27, // 31: istio.networking.v1alpha3.LocalityLoadBalancerSetting.failover:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Failover - 33, // 32: istio.networking.v1alpha3.LocalityLoadBalancerSetting.enabled:type_name -> google.protobuf.BoolValue - 34, // 33: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.port:type_name -> istio.networking.v1alpha3.PortSelector + 35, // 29: istio.networking.v1alpha3.ClientTLSSettings.insecure_skip_verify:type_name -> google.protobuf.BoolValue + 28, // 30: istio.networking.v1alpha3.LocalityLoadBalancerSetting.distribute:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute + 29, // 31: istio.networking.v1alpha3.LocalityLoadBalancerSetting.failover:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Failover + 35, // 32: istio.networking.v1alpha3.LocalityLoadBalancerSetting.enabled:type_name -> google.protobuf.BoolValue + 36, // 33: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.port:type_name -> istio.networking.v1alpha3.PortSelector 7, // 34: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.load_balancer:type_name -> istio.networking.v1alpha3.LoadBalancerSettings 9, // 35: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.connection_pool:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings 10, // 36: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.outlier_detection:type_name -> istio.networking.v1alpha3.OutlierDetection 11, // 37: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.tls:type_name -> istio.networking.v1alpha3.ClientTLSSettings 0, // 38: istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol.version:type_name -> istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol.VERSION - 31, // 39: istio.networking.v1alpha3.TrafficPolicy.RetryBudget.percent:type_name -> google.protobuf.DoubleValue + 33, // 39: istio.networking.v1alpha3.TrafficPolicy.RetryBudget.percent:type_name -> google.protobuf.DoubleValue 21, // 40: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.http_cookie:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie 19, // 41: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.ring_hash:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.RingHash 20, // 42: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.maglev:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.MagLev - 30, // 43: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie.ttl:type_name -> google.protobuf.Duration + 32, // 43: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie.ttl:type_name -> google.protobuf.Duration 22, // 44: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie.attributes:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie.Attribute - 30, // 45: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.connect_timeout:type_name -> google.protobuf.Duration + 32, // 45: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.connect_timeout:type_name -> google.protobuf.Duration 25, // 46: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.tcp_keepalive:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive - 30, // 47: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.max_connection_duration:type_name -> google.protobuf.Duration - 30, // 48: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.idle_timeout:type_name -> google.protobuf.Duration - 30, // 49: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.idle_timeout:type_name -> google.protobuf.Duration + 32, // 47: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.max_connection_duration:type_name -> google.protobuf.Duration + 32, // 48: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.idle_timeout:type_name -> google.protobuf.Duration + 32, // 49: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.idle_timeout:type_name -> google.protobuf.Duration 2, // 50: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.h2_upgrade_policy:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy - 30, // 51: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive.time:type_name -> google.protobuf.Duration - 30, // 52: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive.interval:type_name -> google.protobuf.Duration - 28, // 53: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.to:type_name -> istio.networking.v1alpha3.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 + 26, // 51: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.http2_protocol_options:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.Http2ProtocolOptions + 32, // 52: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive.time:type_name -> google.protobuf.Duration + 32, // 53: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive.interval:type_name -> google.protobuf.Duration + 27, // 54: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.Http2ProtocolOptions.connection_keepalive:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.Http2ProtocolOptions.ConnectionKeepalive + 32, // 55: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.Http2ProtocolOptions.ConnectionKeepalive.interval:type_name -> google.protobuf.Duration + 32, // 56: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.Http2ProtocolOptions.ConnectionKeepalive.timeout:type_name -> google.protobuf.Duration + 30, // 57: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.to:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.ToEntry + 58, // [58:58] is the sub-list for method output_type + 58, // [58:58] is the sub-list for method input_type + 58, // [58:58] is the sub-list for extension type_name + 58, // [58:58] is the sub-list for extension extendee + 0, // [0:58] is the sub-list for field type_name } func init() { file_networking_v1alpha3_destination_rule_proto_init() } @@ -3129,7 +3252,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_networking_v1alpha3_destination_rule_proto_rawDesc), len(file_networking_v1alpha3_destination_rule_proto_rawDesc)), NumEnums: 4, - NumMessages: 25, + NumMessages: 27, NumExtensions: 0, NumServices: 0, }, diff --git a/networking/v1alpha3/destination_rule.pb.html b/networking/v1alpha3/destination_rule.pb.html index f2e065f0ee..2093f29181 100644 --- a/networking/v1alpha3/destination_rule.pb.html +++ b/networking/v1alpha3/destination_rule.pb.html @@ -6,7 +6,7 @@ generator: protoc-gen-docs schema: istio.networking.v1alpha3.DestinationRule aliases: [/docs/reference/config/networking/v1alpha3/destination-rule] -number_of_entries: 28 +number_of_entries: 30 ---

DestinationRule defines policies that apply to traffic intended for a service after routing has occurred. These rules specify configuration @@ -1272,6 +1272,74 @@

HTTPSettings

The maximum number of concurrent streams allowed for a peer on one HTTP/2 connection. Defaults to 2^31-1.

+ + + +
http2ProtocolOptions
+
Http2ProtocolOptions
+
+ +

HTTP/2 protocol options for upstream connections.

+ + + + + + +

Http2ProtocolOptions

+
+

Settings for HTTP/2 protocol options.

+ + + + + + + + + + + + + + +
FieldDescription
+

Configure HTTP/2 PING frames for upstream connections.

+ +
+
+
ConnectionKeepalive
+
+

Settings for HTTP/2 PING frames.

+ + + + + + + + + + + + + + + + diff --git a/networking/v1alpha3/destination_rule.proto b/networking/v1alpha3/destination_rule.proto index ff76a60204..f903bedc5b 100644 --- a/networking/v1alpha3/destination_rule.proto +++ b/networking/v1alpha3/destination_rule.proto @@ -695,6 +695,26 @@ message ConnectionPoolSettings { // The maximum number of concurrent streams allowed for a peer on one HTTP/2 connection. // Defaults to 2^31-1. int32 max_concurrent_streams = 8; + + // Settings for HTTP/2 protocol options. + message Http2ProtocolOptions { + // Settings for HTTP/2 PING frames. + message ConnectionKeepalive { + // Send HTTP/2 PING frames at this interval. Required when + // `connectionKeepalive` is set. + google.protobuf.Duration interval = 1; + + // How long to wait for a response to an HTTP/2 PING frame before + // closing the connection. Required when `connectionKeepalive` is set. + google.protobuf.Duration timeout = 2; + } + + // Configure HTTP/2 PING frames for upstream connections. + ConnectionKeepalive connection_keepalive = 1; + } + + // HTTP/2 protocol options for upstream connections. + Http2ProtocolOptions http2_protocol_options = 9; } // Settings common to both HTTP and TCP upstream connections. diff --git a/networking/v1alpha3/destination_rule_deepcopy.gen.go b/networking/v1alpha3/destination_rule_deepcopy.gen.go index 6931985ff1..84e435aba8 100644 --- a/networking/v1alpha3/destination_rule_deepcopy.gen.go +++ b/networking/v1alpha3/destination_rule_deepcopy.gen.go @@ -383,6 +383,48 @@ func (in *ConnectionPoolSettings_HTTPSettings) DeepCopyInterface() interface{} { return in.DeepCopy() } +// DeepCopyInto supports using ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions within kubernetes types, where deepcopy-gen is used. +func (in *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions) DeepCopyInto(out *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions) { + p := proto.Clone(in).(*ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions) + *out = *p +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions. Required by controller-gen. +func (in *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions) DeepCopy() *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions { + if in == nil { + return nil + } + out := new(ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions. Required by controller-gen. +func (in *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions) DeepCopyInterface() interface{} { + return in.DeepCopy() +} + +// DeepCopyInto supports using ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive within kubernetes types, where deepcopy-gen is used. +func (in *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) DeepCopyInto(out *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) { + p := proto.Clone(in).(*ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) + *out = *p +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive. Required by controller-gen. +func (in *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) DeepCopy() *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive { + if in == nil { + return nil + } + out := new(ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive. Required by controller-gen. +func (in *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) DeepCopyInterface() interface{} { + return in.DeepCopy() +} + // DeepCopyInto supports using OutlierDetection within kubernetes types, where deepcopy-gen is used. func (in *OutlierDetection) DeepCopyInto(out *OutlierDetection) { p := proto.Clone(in).(*OutlierDetection) diff --git a/networking/v1alpha3/destination_rule_json.gen.go b/networking/v1alpha3/destination_rule_json.gen.go index 9b6392b137..bad77f55ba 100644 --- a/networking/v1alpha3/destination_rule_json.gen.go +++ b/networking/v1alpha3/destination_rule_json.gen.go @@ -3,6 +3,7 @@ package v1alpha3 import ( bytes "bytes" + jsonpb "github.com/golang/protobuf/jsonpb" ) @@ -204,6 +205,28 @@ func (this *ConnectionPoolSettings_HTTPSettings) UnmarshalJSON(b []byte) error { return DestinationRuleUnmarshaler.Unmarshal(bytes.NewReader(b), this) } +// MarshalJSON is a custom marshaler for ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions +func (this *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions) MarshalJSON() ([]byte, error) { + str, err := DestinationRuleMarshaler.MarshalToString(this) + return []byte(str), err +} + +// UnmarshalJSON is a custom unmarshaler for ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions +func (this *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions) UnmarshalJSON(b []byte) error { + return DestinationRuleUnmarshaler.Unmarshal(bytes.NewReader(b), this) +} + +// MarshalJSON is a custom marshaler for ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive +func (this *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) MarshalJSON() ([]byte, error) { + str, err := DestinationRuleMarshaler.MarshalToString(this) + return []byte(str), err +} + +// UnmarshalJSON is a custom unmarshaler for ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive +func (this *ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive) UnmarshalJSON(b []byte) error { + return DestinationRuleUnmarshaler.Unmarshal(bytes.NewReader(b), this) +} + // MarshalJSON is a custom marshaler for OutlierDetection func (this *OutlierDetection) MarshalJSON() ([]byte, error) { str, err := DestinationRuleMarshaler.MarshalToString(this) diff --git a/networking/v1beta1/destination_rule_alias.gen.go b/networking/v1beta1/destination_rule_alias.gen.go index bcec36033f..799ad3d67b 100644 --- a/networking/v1beta1/destination_rule_alias.gen.go +++ b/networking/v1beta1/destination_rule_alias.gen.go @@ -263,6 +263,12 @@ type ConnectionPoolSettings_TCPSettings_TcpKeepalive = v1alpha3.ConnectionPoolSe // Settings applicable to HTTP1.1/HTTP2/GRPC connections. type ConnectionPoolSettings_HTTPSettings = v1alpha3.ConnectionPoolSettings_HTTPSettings +// Settings for HTTP/2 protocol options. +type ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions = v1alpha3.ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions + +// Settings for HTTP/2 PING frames. +type ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive = v1alpha3.ConnectionPoolSettings_HTTPSettings_Http2ProtocolOptions_ConnectionKeepalive + // Policy for upgrading http1.1 connections to http2. type ConnectionPoolSettings_HTTPSettings_H2UpgradePolicy = v1alpha3.ConnectionPoolSettings_HTTPSettings_H2UpgradePolicy diff --git a/tests/testdata/destinationrule-valid.yaml b/tests/testdata/destinationrule-valid.yaml index 9441b64997..39c62b22ff 100644 --- a/tests/testdata/destinationrule-valid.yaml +++ b/tests/testdata/destinationrule-valid.yaml @@ -32,4 +32,18 @@ spec: warmup: duration: 300s minimumPercent: 5.0 - aggression: 5.0 \ No newline at end of file + aggression: 5.0 +--- +apiVersion: networking.istio.io/v1 +kind: DestinationRule +metadata: + name: bookinfo-ratings-http2-ping +spec: + host: ratings.prod.svc.cluster.local + trafficPolicy: + connectionPool: + http: + http2ProtocolOptions: + connectionKeepalive: + interval: 15s + timeout: 5s
FieldDescription
+

Send HTTP/2 PING frames at this interval. Required when +connectionKeepalive is set.

+ +
+

How long to wait for a response to an HTTP/2 PING frame before +closing the connection. Required when connectionKeepalive is set.

+