diff --git a/apis/fluentbit/v1alpha2/plugins/output/s3_types.go b/apis/fluentbit/v1alpha2/plugins/output/s3_types.go index f4d9deec4..dc5d2514d 100644 --- a/apis/fluentbit/v1alpha2/plugins/output/s3_types.go +++ b/apis/fluentbit/v1alpha2/plugins/output/s3_types.go @@ -65,8 +65,40 @@ type S3 struct { // Option to specify an AWS Profile for credentials. Profile string `json:"Profile,omitempty"` // Specify number of worker threads to use to output to S3 - Workers *int32 `json:"Workers,omitempty"` - *plugins.TLS `json:"tls,omitempty"` + Workers *int32 `json:"Workers,omitempty"` + // Set maximum time expressed in seconds to wait for a TCP connection to be established, this include the TLS handshake time. + ConnectTimeout *int32 `json:"ConnectTimeout,omitempty"` + // On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message. + ConnectTimeoutLogError *bool `json:"connectTimeoutLogError,omitempty"` + // Select the primary DNS connection type (TCP or UDP). + // +kubebuilder:validation:Enum:="TCP";"UDP" + DNSMode *string `json:"DNSMode,omitempty"` + // Prioritize IPv4 DNS results when trying to establish a connection. + DNSPreferIPv4 *bool `json:"DNSPreferIPv4,omitempty"` + // Prioritize IPV6 DNS results when trying to establish a connection. + DNSPreferIPv6 *bool `json:"DNSPreferIPv6,omitempty"` + // Set maximum time a connection can stay idle while assigned. + IoTimeout *int32 `json:"IoTimeout,omitempty"` + // Set maximum number of times a keepalive connection can be used before it is retired. + KeepaliveMaxRecycle *int32 `json:"keepaliveMaxRecycle,omitempty"` + // Set maximum number of TCP connections that can be established per worker. + MaxWorkerConnections *int32 `json:"maxWorkerConnections,omitempty"` + // Ignore the environment variables HTTP_PROXY, HTTPS_PROXY and NO_PROXY when set. + ProxyEnvIgnore *bool `json:"proxyEnvIgnore,omitempty"` + // Specify network address to bind for data traffic. + SourceAddress *string `json:"sourceAddress,omitempty"` + // Enable or disable connection keepalive support. Accepts a boolean value: on / off. + // +kubebuilder:validation:Enum:="on";"off" + Keepalive *string `json:"keepalive,omitempty"` + // Interval between TCP keepalive probes when no response is received on a keepidle probe. + TCPKeepaliveInterval *int32 `json:"tcpKeepaliveInterval,omitempty"` + // Number of unacknowledged probes to consider a connection dead. + TCPKeepaliveProbes *int32 `json:"tcpKeepaliveProbes,omitempty"` + // Interval between the last data packet sent and the first TCP keepalive probe. + TCPKeepaliveTime *int32 `json:"tcpKeepaliveTime,omitempty"` + // Set maximum time expressed in seconds for an idle keepalive connection. + KeepaliveIdleTimeout *int32 `json:"keepaliveIdleTimeout,omitempty"` + *plugins.TLS `json:"tls,omitempty"` } // Name implement Section() method @@ -105,6 +137,21 @@ func (o *S3) Params(sl plugins.SecretLoader) (*params.KVs, error) { plugins.InsertKVString(kvs, "external_id", o.ExternalId) plugins.InsertKVString(kvs, "profile", o.Profile) plugins.InsertKVField(kvs, "workers", o.Workers) + plugins.InsertKVField(kvs, "net.connect_timeout", o.ConnectTimeout) + plugins.InsertKVField(kvs, "net.connect_timeout_log_error", o.ConnectTimeoutLogError) + plugins.InsertKVField(kvs, "net.dns.mode", o.DNSMode) + plugins.InsertKVField(kvs, "net.dns.prefer_ipv4", o.DNSPreferIPv4) + plugins.InsertKVField(kvs, "net.dns.prefer_ipv6", o.DNSPreferIPv6) + plugins.InsertKVField(kvs, "net.io_timeout", o.IoTimeout) + plugins.InsertKVField(kvs, "net.keepalive_max_recycle", o.KeepaliveMaxRecycle) + plugins.InsertKVField(kvs, "net.max_worker_connections", o.MaxWorkerConnections) + plugins.InsertKVField(kvs, "net.proxy_env_ignore", o.ProxyEnvIgnore) + plugins.InsertKVField(kvs, "net.source_address", o.SourceAddress) + plugins.InsertKVField(kvs, "net.tcp_keepalive", o.Keepalive) + plugins.InsertKVField(kvs, "net.tcp_keepalive_interval", o.TCPKeepaliveInterval) + plugins.InsertKVField(kvs, "net.tcp_keepalive_probes", o.TCPKeepaliveProbes) + plugins.InsertKVField(kvs, "net.tcp_keepalive_time", o.TCPKeepaliveTime) + plugins.InsertKVField(kvs, "net.keepalive_idle_timeout", o.KeepaliveIdleTimeout) if o.TLS != nil { tls, err := o.TLS.Params(sl) diff --git a/apis/fluentbit/v1alpha2/plugins/output/s3_types_test.go b/apis/fluentbit/v1alpha2/plugins/output/s3_types_test.go index 28fa788e0..758c5718d 100644 --- a/apis/fluentbit/v1alpha2/plugins/output/s3_types_test.go +++ b/apis/fluentbit/v1alpha2/plugins/output/s3_types_test.go @@ -43,6 +43,20 @@ func TestOutput_S3_Params(t *testing.T) { ExternalId: "external_id", Profile: "my-profile", Workers: utils.ToPtr[int32](1), + ConnectTimeout: utils.ToPtr[int32](10), + ConnectTimeoutLogError: utils.ToPtr(true), + DNSMode: utils.ToPtr("TCP"), + DNSPreferIPv4: utils.ToPtr(false), + DNSPreferIPv6: utils.ToPtr(false), + IoTimeout: utils.ToPtr[int32](0), + KeepaliveMaxRecycle: utils.ToPtr[int32](2000), + MaxWorkerConnections: utils.ToPtr[int32](0), + ProxyEnvIgnore: utils.ToPtr(false), + SourceAddress: utils.ToPtr("127.0.0.1"), + Keepalive: utils.ToPtr("off"), + TCPKeepaliveInterval: utils.ToPtr[int32](-1), + TCPKeepaliveProbes: utils.ToPtr[int32](-1), + TCPKeepaliveTime: utils.ToPtr[int32](-1), } expected := params.NewKVs() @@ -74,6 +88,20 @@ func TestOutput_S3_Params(t *testing.T) { expected.Insert("external_id", "external_id") expected.Insert("profile", "my-profile") expected.Insert("workers", "1") + expected.Insert("net.connect_timeout", "10") + expected.Insert("net.connect_timeout_log_error", "true") + expected.Insert("net.dns.mode", "TCP") + expected.Insert("net.dns.prefer_ipv4", "false") + expected.Insert("net.dns.prefer_ipv6", "false") + expected.Insert("net.io_timeout", "0") + expected.Insert("net.keepalive_max_recycle", "2000") + expected.Insert("net.max_worker_connections", "0") + expected.Insert("net.proxy_env_ignore", "false") + expected.Insert("net.source_address", "127.0.0.1") + expected.Insert("net.tcp_keepalive", "off") + expected.Insert("net.tcp_keepalive_interval", "-1") + expected.Insert("net.tcp_keepalive_probes", "-1") + expected.Insert("net.tcp_keepalive_time", "-1") kvs, err := s3.Params(sl) g.Expect(err).NotTo(HaveOccurred()) diff --git a/apis/fluentbit/v1alpha2/plugins/output/zz_generated.deepcopy.go b/apis/fluentbit/v1alpha2/plugins/output/zz_generated.deepcopy.go index 1ee7a0927..82b16d93b 100644 --- a/apis/fluentbit/v1alpha2/plugins/output/zz_generated.deepcopy.go +++ b/apis/fluentbit/v1alpha2/plugins/output/zz_generated.deepcopy.go @@ -968,6 +968,81 @@ func (in *S3) DeepCopyInto(out *S3) { *out = new(int32) **out = **in } + if in.ConnectTimeout != nil { + in, out := &in.ConnectTimeout, &out.ConnectTimeout + *out = new(int32) + **out = **in + } + if in.ConnectTimeoutLogError != nil { + in, out := &in.ConnectTimeoutLogError, &out.ConnectTimeoutLogError + *out = new(bool) + **out = **in + } + if in.DNSMode != nil { + in, out := &in.DNSMode, &out.DNSMode + *out = new(string) + **out = **in + } + if in.DNSPreferIPv4 != nil { + in, out := &in.DNSPreferIPv4, &out.DNSPreferIPv4 + *out = new(bool) + **out = **in + } + if in.DNSPreferIPv6 != nil { + in, out := &in.DNSPreferIPv6, &out.DNSPreferIPv6 + *out = new(bool) + **out = **in + } + if in.IoTimeout != nil { + in, out := &in.IoTimeout, &out.IoTimeout + *out = new(int32) + **out = **in + } + if in.KeepaliveMaxRecycle != nil { + in, out := &in.KeepaliveMaxRecycle, &out.KeepaliveMaxRecycle + *out = new(int32) + **out = **in + } + if in.MaxWorkerConnections != nil { + in, out := &in.MaxWorkerConnections, &out.MaxWorkerConnections + *out = new(int32) + **out = **in + } + if in.ProxyEnvIgnore != nil { + in, out := &in.ProxyEnvIgnore, &out.ProxyEnvIgnore + *out = new(bool) + **out = **in + } + if in.SourceAddress != nil { + in, out := &in.SourceAddress, &out.SourceAddress + *out = new(string) + **out = **in + } + if in.Keepalive != nil { + in, out := &in.Keepalive, &out.Keepalive + *out = new(string) + **out = **in + } + if in.TCPKeepaliveInterval != nil { + in, out := &in.TCPKeepaliveInterval, &out.TCPKeepaliveInterval + *out = new(int32) + **out = **in + } + if in.TCPKeepaliveProbes != nil { + in, out := &in.TCPKeepaliveProbes, &out.TCPKeepaliveProbes + *out = new(int32) + **out = **in + } + if in.TCPKeepaliveTime != nil { + in, out := &in.TCPKeepaliveTime, &out.TCPKeepaliveTime + *out = new(int32) + **out = **in + } + if in.KeepaliveIdleTimeout != nil { + in, out := &in.KeepaliveIdleTimeout, &out.KeepaliveIdleTimeout + *out = new(int32) + **out = **in + } if in.TLS != nil { in, out := &in.TLS, &out.TLS *out = new(plugins.TLS) diff --git a/charts/fluent-operator-fluent-bit-crds/templates/fluentbit.fluent.io_clusteroutputs.yaml b/charts/fluent-operator-fluent-bit-crds/templates/fluentbit.fluent.io_clusteroutputs.yaml index 38d97e179..96c2db7d7 100644 --- a/charts/fluent-operator-fluent-bit-crds/templates/fluentbit.fluent.io_clusteroutputs.yaml +++ b/charts/fluent-operator-fluent-bit-crds/templates/fluentbit.fluent.io_clusteroutputs.yaml @@ -3396,10 +3396,30 @@ spec: Compression: description: Compression type for S3 objects. type: string + ConnectTimeout: + description: Set maximum time expressed in seconds to wait for + a TCP connection to be established, this include the TLS handshake + time. + format: int32 + type: integer ContentType: description: A standard MIME type for the S3 object; this will be set as the Content-Type HTTP header. type: string + DNSMode: + description: Select the primary DNS connection type (TCP or UDP). + enum: + - TCP + - UDP + type: string + DNSPreferIPv4: + description: Prioritize IPv4 DNS results when trying to establish + a connection. + type: boolean + DNSPreferIPv6: + description: Prioritize IPV6 DNS results when trying to establish + a connection. + type: boolean Endpoint: description: Custom endpoint for the S3 API. type: string @@ -3408,6 +3428,11 @@ spec: with the role_arn parameter if your role requires an external ID. type: string + IoTimeout: + description: Set maximum time a connection can stay idle while + assigned. + format: int32 + type: integer JsonDateFormat: description: 'Specify the format of the date. Supported formats are double, epoch, iso8601 (eg: 2018-05-30T09:39:52.000681Z) @@ -3498,6 +3523,54 @@ spec: to S3 format: int32 type: integer + connectTimeoutLogError: + description: On connection timeout, specify if it should log an + error. When disabled, the timeout is logged as a debug message. + type: boolean + keepalive: + description: 'Enable or disable connection keepalive support. + Accepts a boolean value: on / off.' + enum: + - "on" + - "off" + type: string + keepaliveIdleTimeout: + description: Set maximum time expressed in seconds for an idle + keepalive connection. + format: int32 + type: integer + keepaliveMaxRecycle: + description: Set maximum number of times a keepalive connection + can be used before it is retired. + format: int32 + type: integer + maxWorkerConnections: + description: Set maximum number of TCP connections that can be + established per worker. + format: int32 + type: integer + proxyEnvIgnore: + description: Ignore the environment variables HTTP_PROXY, HTTPS_PROXY + and NO_PROXY when set. + type: boolean + sourceAddress: + description: Specify network address to bind for data traffic. + type: string + tcpKeepaliveInterval: + description: Interval between TCP keepalive probes when no response + is received on a keepidle probe. + format: int32 + type: integer + tcpKeepaliveProbes: + description: Number of unacknowledged probes to consider a connection + dead. + format: int32 + type: integer + tcpKeepaliveTime: + description: Interval between the last data packet sent and the + first TCP keepalive probe. + format: int32 + type: integer tls: description: Fluent Bit provides integrated support for Transport Layer Security (TLS) and it predecessor Secure Sockets Layer diff --git a/charts/fluent-operator-fluent-bit-crds/templates/fluentbit.fluent.io_outputs.yaml b/charts/fluent-operator-fluent-bit-crds/templates/fluentbit.fluent.io_outputs.yaml index db90f6cd7..92c6729ec 100644 --- a/charts/fluent-operator-fluent-bit-crds/templates/fluentbit.fluent.io_outputs.yaml +++ b/charts/fluent-operator-fluent-bit-crds/templates/fluentbit.fluent.io_outputs.yaml @@ -3396,10 +3396,30 @@ spec: Compression: description: Compression type for S3 objects. type: string + ConnectTimeout: + description: Set maximum time expressed in seconds to wait for + a TCP connection to be established, this include the TLS handshake + time. + format: int32 + type: integer ContentType: description: A standard MIME type for the S3 object; this will be set as the Content-Type HTTP header. type: string + DNSMode: + description: Select the primary DNS connection type (TCP or UDP). + enum: + - TCP + - UDP + type: string + DNSPreferIPv4: + description: Prioritize IPv4 DNS results when trying to establish + a connection. + type: boolean + DNSPreferIPv6: + description: Prioritize IPV6 DNS results when trying to establish + a connection. + type: boolean Endpoint: description: Custom endpoint for the S3 API. type: string @@ -3408,6 +3428,11 @@ spec: with the role_arn parameter if your role requires an external ID. type: string + IoTimeout: + description: Set maximum time a connection can stay idle while + assigned. + format: int32 + type: integer JsonDateFormat: description: 'Specify the format of the date. Supported formats are double, epoch, iso8601 (eg: 2018-05-30T09:39:52.000681Z) @@ -3498,6 +3523,54 @@ spec: to S3 format: int32 type: integer + connectTimeoutLogError: + description: On connection timeout, specify if it should log an + error. When disabled, the timeout is logged as a debug message. + type: boolean + keepalive: + description: 'Enable or disable connection keepalive support. + Accepts a boolean value: on / off.' + enum: + - "on" + - "off" + type: string + keepaliveIdleTimeout: + description: Set maximum time expressed in seconds for an idle + keepalive connection. + format: int32 + type: integer + keepaliveMaxRecycle: + description: Set maximum number of times a keepalive connection + can be used before it is retired. + format: int32 + type: integer + maxWorkerConnections: + description: Set maximum number of TCP connections that can be + established per worker. + format: int32 + type: integer + proxyEnvIgnore: + description: Ignore the environment variables HTTP_PROXY, HTTPS_PROXY + and NO_PROXY when set. + type: boolean + sourceAddress: + description: Specify network address to bind for data traffic. + type: string + tcpKeepaliveInterval: + description: Interval between TCP keepalive probes when no response + is received on a keepidle probe. + format: int32 + type: integer + tcpKeepaliveProbes: + description: Number of unacknowledged probes to consider a connection + dead. + format: int32 + type: integer + tcpKeepaliveTime: + description: Interval between the last data packet sent and the + first TCP keepalive probe. + format: int32 + type: integer tls: description: Fluent Bit provides integrated support for Transport Layer Security (TLS) and it predecessor Secure Sockets Layer diff --git a/charts/fluent-operator/crds/fluentbit.fluent.io_clusteroutputs.yaml b/charts/fluent-operator/crds/fluentbit.fluent.io_clusteroutputs.yaml index bc82bb19b..cd88203fb 100644 --- a/charts/fluent-operator/crds/fluentbit.fluent.io_clusteroutputs.yaml +++ b/charts/fluent-operator/crds/fluentbit.fluent.io_clusteroutputs.yaml @@ -3394,10 +3394,30 @@ spec: Compression: description: Compression type for S3 objects. type: string + ConnectTimeout: + description: Set maximum time expressed in seconds to wait for + a TCP connection to be established, this include the TLS handshake + time. + format: int32 + type: integer ContentType: description: A standard MIME type for the S3 object; this will be set as the Content-Type HTTP header. type: string + DNSMode: + description: Select the primary DNS connection type (TCP or UDP). + enum: + - TCP + - UDP + type: string + DNSPreferIPv4: + description: Prioritize IPv4 DNS results when trying to establish + a connection. + type: boolean + DNSPreferIPv6: + description: Prioritize IPV6 DNS results when trying to establish + a connection. + type: boolean Endpoint: description: Custom endpoint for the S3 API. type: string @@ -3406,6 +3426,11 @@ spec: with the role_arn parameter if your role requires an external ID. type: string + IoTimeout: + description: Set maximum time a connection can stay idle while + assigned. + format: int32 + type: integer JsonDateFormat: description: 'Specify the format of the date. Supported formats are double, epoch, iso8601 (eg: 2018-05-30T09:39:52.000681Z) @@ -3496,6 +3521,54 @@ spec: to S3 format: int32 type: integer + connectTimeoutLogError: + description: On connection timeout, specify if it should log an + error. When disabled, the timeout is logged as a debug message. + type: boolean + keepalive: + description: 'Enable or disable connection keepalive support. + Accepts a boolean value: on / off.' + enum: + - "on" + - "off" + type: string + keepaliveIdleTimeout: + description: Set maximum time expressed in seconds for an idle + keepalive connection. + format: int32 + type: integer + keepaliveMaxRecycle: + description: Set maximum number of times a keepalive connection + can be used before it is retired. + format: int32 + type: integer + maxWorkerConnections: + description: Set maximum number of TCP connections that can be + established per worker. + format: int32 + type: integer + proxyEnvIgnore: + description: Ignore the environment variables HTTP_PROXY, HTTPS_PROXY + and NO_PROXY when set. + type: boolean + sourceAddress: + description: Specify network address to bind for data traffic. + type: string + tcpKeepaliveInterval: + description: Interval between TCP keepalive probes when no response + is received on a keepidle probe. + format: int32 + type: integer + tcpKeepaliveProbes: + description: Number of unacknowledged probes to consider a connection + dead. + format: int32 + type: integer + tcpKeepaliveTime: + description: Interval between the last data packet sent and the + first TCP keepalive probe. + format: int32 + type: integer tls: description: Fluent Bit provides integrated support for Transport Layer Security (TLS) and it predecessor Secure Sockets Layer diff --git a/charts/fluent-operator/crds/fluentbit.fluent.io_outputs.yaml b/charts/fluent-operator/crds/fluentbit.fluent.io_outputs.yaml index 01d1256f6..d14c34c29 100644 --- a/charts/fluent-operator/crds/fluentbit.fluent.io_outputs.yaml +++ b/charts/fluent-operator/crds/fluentbit.fluent.io_outputs.yaml @@ -3394,10 +3394,30 @@ spec: Compression: description: Compression type for S3 objects. type: string + ConnectTimeout: + description: Set maximum time expressed in seconds to wait for + a TCP connection to be established, this include the TLS handshake + time. + format: int32 + type: integer ContentType: description: A standard MIME type for the S3 object; this will be set as the Content-Type HTTP header. type: string + DNSMode: + description: Select the primary DNS connection type (TCP or UDP). + enum: + - TCP + - UDP + type: string + DNSPreferIPv4: + description: Prioritize IPv4 DNS results when trying to establish + a connection. + type: boolean + DNSPreferIPv6: + description: Prioritize IPV6 DNS results when trying to establish + a connection. + type: boolean Endpoint: description: Custom endpoint for the S3 API. type: string @@ -3406,6 +3426,11 @@ spec: with the role_arn parameter if your role requires an external ID. type: string + IoTimeout: + description: Set maximum time a connection can stay idle while + assigned. + format: int32 + type: integer JsonDateFormat: description: 'Specify the format of the date. Supported formats are double, epoch, iso8601 (eg: 2018-05-30T09:39:52.000681Z) @@ -3496,6 +3521,54 @@ spec: to S3 format: int32 type: integer + connectTimeoutLogError: + description: On connection timeout, specify if it should log an + error. When disabled, the timeout is logged as a debug message. + type: boolean + keepalive: + description: 'Enable or disable connection keepalive support. + Accepts a boolean value: on / off.' + enum: + - "on" + - "off" + type: string + keepaliveIdleTimeout: + description: Set maximum time expressed in seconds for an idle + keepalive connection. + format: int32 + type: integer + keepaliveMaxRecycle: + description: Set maximum number of times a keepalive connection + can be used before it is retired. + format: int32 + type: integer + maxWorkerConnections: + description: Set maximum number of TCP connections that can be + established per worker. + format: int32 + type: integer + proxyEnvIgnore: + description: Ignore the environment variables HTTP_PROXY, HTTPS_PROXY + and NO_PROXY when set. + type: boolean + sourceAddress: + description: Specify network address to bind for data traffic. + type: string + tcpKeepaliveInterval: + description: Interval between TCP keepalive probes when no response + is received on a keepidle probe. + format: int32 + type: integer + tcpKeepaliveProbes: + description: Number of unacknowledged probes to consider a connection + dead. + format: int32 + type: integer + tcpKeepaliveTime: + description: Interval between the last data packet sent and the + first TCP keepalive probe. + format: int32 + type: integer tls: description: Fluent Bit provides integrated support for Transport Layer Security (TLS) and it predecessor Secure Sockets Layer diff --git a/config/crd/bases/fluentbit.fluent.io_clusteroutputs.yaml b/config/crd/bases/fluentbit.fluent.io_clusteroutputs.yaml index 789619883..8ceeba92a 100644 --- a/config/crd/bases/fluentbit.fluent.io_clusteroutputs.yaml +++ b/config/crd/bases/fluentbit.fluent.io_clusteroutputs.yaml @@ -3395,10 +3395,30 @@ spec: Compression: description: Compression type for S3 objects. type: string + ConnectTimeout: + description: Set maximum time expressed in seconds to wait for + a TCP connection to be established, this include the TLS handshake + time. + format: int32 + type: integer ContentType: description: A standard MIME type for the S3 object; this will be set as the Content-Type HTTP header. type: string + DNSMode: + description: Select the primary DNS connection type (TCP or UDP). + enum: + - TCP + - UDP + type: string + DNSPreferIPv4: + description: Prioritize IPv4 DNS results when trying to establish + a connection. + type: boolean + DNSPreferIPv6: + description: Prioritize IPV6 DNS results when trying to establish + a connection. + type: boolean Endpoint: description: Custom endpoint for the S3 API. type: string @@ -3407,6 +3427,11 @@ spec: with the role_arn parameter if your role requires an external ID. type: string + IoTimeout: + description: Set maximum time a connection can stay idle while + assigned. + format: int32 + type: integer JsonDateFormat: description: 'Specify the format of the date. Supported formats are double, epoch, iso8601 (eg: 2018-05-30T09:39:52.000681Z) @@ -3497,6 +3522,54 @@ spec: to S3 format: int32 type: integer + connectTimeoutLogError: + description: On connection timeout, specify if it should log an + error. When disabled, the timeout is logged as a debug message. + type: boolean + keepalive: + description: 'Enable or disable connection keepalive support. + Accepts a boolean value: on / off.' + enum: + - "on" + - "off" + type: string + keepaliveIdleTimeout: + description: Set maximum time expressed in seconds for an idle + keepalive connection. + format: int32 + type: integer + keepaliveMaxRecycle: + description: Set maximum number of times a keepalive connection + can be used before it is retired. + format: int32 + type: integer + maxWorkerConnections: + description: Set maximum number of TCP connections that can be + established per worker. + format: int32 + type: integer + proxyEnvIgnore: + description: Ignore the environment variables HTTP_PROXY, HTTPS_PROXY + and NO_PROXY when set. + type: boolean + sourceAddress: + description: Specify network address to bind for data traffic. + type: string + tcpKeepaliveInterval: + description: Interval between TCP keepalive probes when no response + is received on a keepidle probe. + format: int32 + type: integer + tcpKeepaliveProbes: + description: Number of unacknowledged probes to consider a connection + dead. + format: int32 + type: integer + tcpKeepaliveTime: + description: Interval between the last data packet sent and the + first TCP keepalive probe. + format: int32 + type: integer tls: description: Fluent Bit provides integrated support for Transport Layer Security (TLS) and it predecessor Secure Sockets Layer diff --git a/config/crd/bases/fluentbit.fluent.io_outputs.yaml b/config/crd/bases/fluentbit.fluent.io_outputs.yaml index b9e3f8d26..08f2ed58e 100644 --- a/config/crd/bases/fluentbit.fluent.io_outputs.yaml +++ b/config/crd/bases/fluentbit.fluent.io_outputs.yaml @@ -3395,10 +3395,30 @@ spec: Compression: description: Compression type for S3 objects. type: string + ConnectTimeout: + description: Set maximum time expressed in seconds to wait for + a TCP connection to be established, this include the TLS handshake + time. + format: int32 + type: integer ContentType: description: A standard MIME type for the S3 object; this will be set as the Content-Type HTTP header. type: string + DNSMode: + description: Select the primary DNS connection type (TCP or UDP). + enum: + - TCP + - UDP + type: string + DNSPreferIPv4: + description: Prioritize IPv4 DNS results when trying to establish + a connection. + type: boolean + DNSPreferIPv6: + description: Prioritize IPV6 DNS results when trying to establish + a connection. + type: boolean Endpoint: description: Custom endpoint for the S3 API. type: string @@ -3407,6 +3427,11 @@ spec: with the role_arn parameter if your role requires an external ID. type: string + IoTimeout: + description: Set maximum time a connection can stay idle while + assigned. + format: int32 + type: integer JsonDateFormat: description: 'Specify the format of the date. Supported formats are double, epoch, iso8601 (eg: 2018-05-30T09:39:52.000681Z) @@ -3497,6 +3522,54 @@ spec: to S3 format: int32 type: integer + connectTimeoutLogError: + description: On connection timeout, specify if it should log an + error. When disabled, the timeout is logged as a debug message. + type: boolean + keepalive: + description: 'Enable or disable connection keepalive support. + Accepts a boolean value: on / off.' + enum: + - "on" + - "off" + type: string + keepaliveIdleTimeout: + description: Set maximum time expressed in seconds for an idle + keepalive connection. + format: int32 + type: integer + keepaliveMaxRecycle: + description: Set maximum number of times a keepalive connection + can be used before it is retired. + format: int32 + type: integer + maxWorkerConnections: + description: Set maximum number of TCP connections that can be + established per worker. + format: int32 + type: integer + proxyEnvIgnore: + description: Ignore the environment variables HTTP_PROXY, HTTPS_PROXY + and NO_PROXY when set. + type: boolean + sourceAddress: + description: Specify network address to bind for data traffic. + type: string + tcpKeepaliveInterval: + description: Interval between TCP keepalive probes when no response + is received on a keepidle probe. + format: int32 + type: integer + tcpKeepaliveProbes: + description: Number of unacknowledged probes to consider a connection + dead. + format: int32 + type: integer + tcpKeepaliveTime: + description: Interval between the last data packet sent and the + first TCP keepalive probe. + format: int32 + type: integer tls: description: Fluent Bit provides integrated support for Transport Layer Security (TLS) and it predecessor Secure Sockets Layer diff --git a/docs/plugins/fluentbit/output/s3.md b/docs/plugins/fluentbit/output/s3.md index 2278ebbc9..63103495e 100644 --- a/docs/plugins/fluentbit/output/s3.md +++ b/docs/plugins/fluentbit/output/s3.md @@ -33,4 +33,19 @@ The S3 output plugin, allows to flush your records into a S3 time series databas | ExternalId | Specify an external ID for the STS API, can be used with the role_arn parameter if your role requires an external ID. | string | | Profile | Option to specify an AWS Profile for credentials. | string | | Workers | Specify number of worker threads to use to output to S3 | *int32 | +| ConnectTimeout | Set maximum time expressed in seconds to wait for a TCP connection to be established, this include the TLS handshake time. | *int32 | +| connectTimeoutLogError | On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message. | *bool | +| DNSMode | Select the primary DNS connection type (TCP or UDP). | *string | +| DNSPreferIPv4 | Prioritize IPv4 DNS results when trying to establish a connection. | *bool | +| DNSPreferIPv6 | Prioritize IPV6 DNS results when trying to establish a connection. | *bool | +| IoTimeout | Set maximum time a connection can stay idle while assigned. | *int32 | +| keepaliveMaxRecycle | Set maximum number of times a keepalive connection can be used before it is retired. | *int32 | +| maxWorkerConnections | Set maximum number of TCP connections that can be established per worker. | *int32 | +| proxyEnvIgnore | Ignore the environment variables HTTP_PROXY, HTTPS_PROXY and NO_PROXY when set. | *bool | +| sourceAddress | Specify network address to bind for data traffic. | *string | +| keepalive | Enable or disable connection keepalive support. Accepts a boolean value: on / off. | *string | +| tcpKeepaliveInterval | Interval between TCP keepalive probes when no response is received on a keepidle probe. | *int32 | +| tcpKeepaliveProbes | Number of unacknowledged probes to consider a connection dead. | *int32 | +| tcpKeepaliveTime | Interval between the last data packet sent and the first TCP keepalive probe. | *int32 | +| keepaliveIdleTimeout | Set maximum time expressed in seconds for an idle keepalive connection. | *int32 | | tls | | *[plugins.TLS](../tls.md) | diff --git a/manifests/setup/setup.yaml b/manifests/setup/setup.yaml index 95092b43f..6f24614d0 100644 --- a/manifests/setup/setup.yaml +++ b/manifests/setup/setup.yaml @@ -7595,10 +7595,30 @@ spec: Compression: description: Compression type for S3 objects. type: string + ConnectTimeout: + description: Set maximum time expressed in seconds to wait for + a TCP connection to be established, this include the TLS handshake + time. + format: int32 + type: integer ContentType: description: A standard MIME type for the S3 object; this will be set as the Content-Type HTTP header. type: string + DNSMode: + description: Select the primary DNS connection type (TCP or UDP). + enum: + - TCP + - UDP + type: string + DNSPreferIPv4: + description: Prioritize IPv4 DNS results when trying to establish + a connection. + type: boolean + DNSPreferIPv6: + description: Prioritize IPV6 DNS results when trying to establish + a connection. + type: boolean Endpoint: description: Custom endpoint for the S3 API. type: string @@ -7607,6 +7627,11 @@ spec: with the role_arn parameter if your role requires an external ID. type: string + IoTimeout: + description: Set maximum time a connection can stay idle while + assigned. + format: int32 + type: integer JsonDateFormat: description: 'Specify the format of the date. Supported formats are double, epoch, iso8601 (eg: 2018-05-30T09:39:52.000681Z) @@ -7697,6 +7722,54 @@ spec: to S3 format: int32 type: integer + connectTimeoutLogError: + description: On connection timeout, specify if it should log an + error. When disabled, the timeout is logged as a debug message. + type: boolean + keepalive: + description: 'Enable or disable connection keepalive support. + Accepts a boolean value: on / off.' + enum: + - "on" + - "off" + type: string + keepaliveIdleTimeout: + description: Set maximum time expressed in seconds for an idle + keepalive connection. + format: int32 + type: integer + keepaliveMaxRecycle: + description: Set maximum number of times a keepalive connection + can be used before it is retired. + format: int32 + type: integer + maxWorkerConnections: + description: Set maximum number of TCP connections that can be + established per worker. + format: int32 + type: integer + proxyEnvIgnore: + description: Ignore the environment variables HTTP_PROXY, HTTPS_PROXY + and NO_PROXY when set. + type: boolean + sourceAddress: + description: Specify network address to bind for data traffic. + type: string + tcpKeepaliveInterval: + description: Interval between TCP keepalive probes when no response + is received on a keepidle probe. + format: int32 + type: integer + tcpKeepaliveProbes: + description: Number of unacknowledged probes to consider a connection + dead. + format: int32 + type: integer + tcpKeepaliveTime: + description: Interval between the last data packet sent and the + first TCP keepalive probe. + format: int32 + type: integer tls: description: Fluent Bit provides integrated support for Transport Layer Security (TLS) and it predecessor Secure Sockets Layer @@ -37685,10 +37758,30 @@ spec: Compression: description: Compression type for S3 objects. type: string + ConnectTimeout: + description: Set maximum time expressed in seconds to wait for + a TCP connection to be established, this include the TLS handshake + time. + format: int32 + type: integer ContentType: description: A standard MIME type for the S3 object; this will be set as the Content-Type HTTP header. type: string + DNSMode: + description: Select the primary DNS connection type (TCP or UDP). + enum: + - TCP + - UDP + type: string + DNSPreferIPv4: + description: Prioritize IPv4 DNS results when trying to establish + a connection. + type: boolean + DNSPreferIPv6: + description: Prioritize IPV6 DNS results when trying to establish + a connection. + type: boolean Endpoint: description: Custom endpoint for the S3 API. type: string @@ -37697,6 +37790,11 @@ spec: with the role_arn parameter if your role requires an external ID. type: string + IoTimeout: + description: Set maximum time a connection can stay idle while + assigned. + format: int32 + type: integer JsonDateFormat: description: 'Specify the format of the date. Supported formats are double, epoch, iso8601 (eg: 2018-05-30T09:39:52.000681Z) @@ -37787,6 +37885,54 @@ spec: to S3 format: int32 type: integer + connectTimeoutLogError: + description: On connection timeout, specify if it should log an + error. When disabled, the timeout is logged as a debug message. + type: boolean + keepalive: + description: 'Enable or disable connection keepalive support. + Accepts a boolean value: on / off.' + enum: + - "on" + - "off" + type: string + keepaliveIdleTimeout: + description: Set maximum time expressed in seconds for an idle + keepalive connection. + format: int32 + type: integer + keepaliveMaxRecycle: + description: Set maximum number of times a keepalive connection + can be used before it is retired. + format: int32 + type: integer + maxWorkerConnections: + description: Set maximum number of TCP connections that can be + established per worker. + format: int32 + type: integer + proxyEnvIgnore: + description: Ignore the environment variables HTTP_PROXY, HTTPS_PROXY + and NO_PROXY when set. + type: boolean + sourceAddress: + description: Specify network address to bind for data traffic. + type: string + tcpKeepaliveInterval: + description: Interval between TCP keepalive probes when no response + is received on a keepidle probe. + format: int32 + type: integer + tcpKeepaliveProbes: + description: Number of unacknowledged probes to consider a connection + dead. + format: int32 + type: integer + tcpKeepaliveTime: + description: Interval between the last data packet sent and the + first TCP keepalive probe. + format: int32 + type: integer tls: description: Fluent Bit provides integrated support for Transport Layer Security (TLS) and it predecessor Secure Sockets Layer