@luminati-io/kubernetes-models-fluent-operator
Version:
Models for https://github.com/fluent/fluent-operator
1,188 lines • 113 kB
TypeScript
import { IObjectMeta } from "@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta";
import { Model, ModelData } from "@kubernetes-models/base";
/**
* Output is the schema for namespace level output API
*/
export interface IOutput {
/**
* APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
*/
"apiVersion": "fluentbit.fluent.io/v1alpha2";
/**
* Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
*/
"kind": "Output";
"metadata"?: IObjectMeta;
/**
* OutputSpec defines the desired state of ClusterOutput
*/
"spec"?: {
/**
* A user friendly alias name for this output plugin. Used in metrics for distinction of each configured output.
*/
"alias"?: string;
/**
* AzureBlob defines AzureBlob Output Configuration
*/
"azureBlob"?: {
/**
* Azure Storage account name
*/
"accountName": string;
/**
* Creates container if ContainerName is not set.
*/
"autoCreateContainer"?: boolean;
/**
* Specify the desired blob type. Must be `appendblob` or `blockblob`
*/
"blobType"?: string;
/**
* Name of the container that will contain the blobs
*/
"containerName": string;
/**
* Optional toggle to use an Azure emulator
*/
"emulatorMode"?: boolean;
/**
* HTTP Service of the endpoint (if using EmulatorMode)
*/
"endpoint"?: string;
/**
* Optional path to store the blobs.
*/
"path"?: string;
/**
* Specify the Azure Storage Shared Key to authenticate against the storage account
*/
"sharedKey": {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* Enable/Disable TLS Encryption. Azure services require TLS to be enabled.
*/
"tls"?: boolean;
};
/**
* AzureLogAnalytics defines AzureLogAnalytics Output Configuration
*/
"azureLogAnalytics"?: {
/**
* Customer ID or Workspace ID
*/
"customerID": {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* Name of the event type.
*/
"logType"?: string;
/**
* Specify the primary or the secondary client authentication key
*/
"sharedKey": {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* If set, overrides the timeKey value with the `time-generated-field` HTTP header value.
*/
"timeGenerated"?: boolean;
/**
* Specify the name of the key where the timestamp is stored.
*/
"timeKey"?: string;
};
/**
* CloudWatch defines CloudWatch Output Configuration
*/
"cloudWatch"?: {
/**
* Automatically create the log group. Defaults to False.
*/
"autoCreateGroup"?: boolean;
/**
* Automatically retry failed requests to CloudWatch once. Defaults to True.
*/
"autoRetryRequests"?: boolean;
/**
* Custom endpoint for CloudWatch logs API
*/
"endpoint"?: string;
/**
* Specify an external ID for the STS API.
*/
"externalID"?: string;
/**
* Optional parameter to tell CloudWatch the format of the data
*/
"logFormat"?: string;
/**
* Name of Cloudwatch Log Group to send log records to
*/
"logGroupName"?: string;
/**
* Template for Log Group name, overrides LogGroupName if set.
*/
"logGroupTemplate"?: string;
/**
* If set, only the value of the key will be sent to CloudWatch
*/
"logKey"?: string;
/**
* Number of days logs are retained for
*/
"logRetentionDays"?: 1 | 3 | 5 | 7 | 14 | 30 | 60 | 90 | 120 | 150 | 180 | 365 | 400 | 545 | 731 | 1827 | 3653;
/**
* The name of the CloudWatch Log Stream to send log records to
*/
"logStreamName"?: string;
/**
* Prefix for the Log Stream name. Not compatible with LogStreamName setting
*/
"logStreamPrefix"?: string;
/**
* Template for Log Stream name. Overrides LogStreamPrefix and LogStreamName if set.
*/
"logStreamTemplate"?: string;
/**
* Optional lists of lists for dimension keys to be added to all metrics. Use comma separated strings for one list of dimensions and semicolon separated strings for list of lists dimensions.
*/
"metricDimensions"?: string;
/**
* Optional string to represent the CloudWatch namespace.
*/
"metricNamespace"?: string;
/**
* AWS Region
*/
"region": string;
/**
* Role ARN to use for cross-account access
*/
"roleArn"?: string;
/**
* Specify a custom STS endpoint for the AWS STS API
*/
"stsEndpoint"?: string;
};
/**
* CustomPlugin defines Custom Output configuration.
*/
"customPlugin"?: {
"config"?: string;
};
/**
* DataDog defines DataDog Output configuration.
*/
"datadog"?: {
/**
* Your Datadog API key.
*/
"apikey"?: string;
/**
* Compress the payload in GZIP format. Datadog supports and recommends setting this to gzip.
*/
"compress"?: string;
/**
* By default, the plugin searches for the key 'log' and remap the value to the key 'message'. If the property is set, the plugin will search the property name key.
*/
"dd_message_key"?: string;
/**
* The human readable name for your service generating the logs.
*/
"dd_service"?: string;
/**
* A human readable name for the underlying technology of your service.
*/
"dd_source"?: string;
/**
* The tags you want to assign to your logs in Datadog.
*/
"dd_tags"?: string;
/**
* Host is the Datadog server where you are sending your logs.
*/
"host"?: string;
/**
* If enabled, a tag is appended to output. The key name is used tag_key property.
*/
"include_tag_key"?: boolean;
/**
* Date key name for output.
*/
"json_date_key"?: string;
/**
* To activate the remapping, specify configuration flag provider.
*/
"provider"?: string;
/**
* Specify an HTTP Proxy.
*/
"proxy"?: string;
/**
* The key name of tag. If include_tag_key is false, This property is ignored.
*/
"tag_key"?: string;
/**
* TLS controls whether to use end-to-end security communications security protocol. Datadog recommends setting this to on.
*/
"tls"?: boolean;
};
/**
* Elasticsearch defines Elasticsearch Output configuration.
*/
"es"?: {
/**
* Enable AWS Sigv4 Authentication for Amazon ElasticSearch Service.
*/
"awsAuth"?: string;
/**
* External ID for the AWS IAM Role specified with aws_role_arn.
*/
"awsExternalID"?: string;
/**
* Specify the AWS region for Amazon ElasticSearch Service.
*/
"awsRegion"?: string;
/**
* AWS IAM Role to assume to put records to your Amazon ES cluster.
*/
"awsRoleARN"?: string;
/**
* Specify the custom sts endpoint to be used with STS API for Amazon ElasticSearch Service.
*/
"awsSTSEndpoint"?: string;
/**
* Specify the buffer size used to read the response from the Elasticsearch HTTP service. This option is useful for debugging purposes where is required to read full responses, note that response size grows depending of the number of records inserted. To set an unlimited amount of memory set this value to False, otherwise the value must be according to the Unit Size specification.
*/
"bufferSize"?: string;
/**
* Specify the credentials to use to connect to Elastic's Elasticsearch Service running on Elastic Cloud.
*/
"cloudAuth"?: string;
/**
* If you are using Elastic's Elasticsearch Service you can specify the cloud_id of the cluster running.
*/
"cloudID"?: string;
/**
* Use current time for index generation instead of message record
*/
"currentTimeIndex"?: boolean;
/**
* When enabled, generate _id for outgoing records. This prevents duplicate records when retrying ES.
*/
"generateID"?: boolean;
/**
* IP address or hostname of the target Elasticsearch instance
*/
"host"?: string;
/**
* Password for user defined in HTTP_User
*/
"httpPassword"?: {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* Optional username credential for Elastic X-Pack access
*/
"httpUser"?: {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* If set, _id will be the value of the key from incoming record and Generate_ID option is ignored.
*/
"idKey"?: string;
/**
* When enabled, it append the Tag name to the record.
*/
"includeTagKey"?: boolean;
/**
* Index name
*/
"index"?: string;
/**
* Time format (based on strftime) to generate the second part of the Index name.
*/
"logstashDateFormat"?: string;
/**
* Enable Logstash format compatibility. This option takes a boolean value: True/False, On/Off
*/
"logstashFormat"?: boolean;
/**
* When Logstash_Format is enabled, the Index name is composed using a prefix and the date, e.g: If Logstash_Prefix is equals to 'mydata' your index will become 'mydata-YYYY.MM.DD'. The last string appended belongs to the date when the data is being generated.
*/
"logstashPrefix"?: string;
/**
* Prefix keys with this string
*/
"logstashPrefixKey"?: string;
/**
* Elasticsearch accepts new data on HTTP query path "/_bulk". But it is also possible to serve Elasticsearch behind a reverse proxy on a subpath. This option defines such path on the fluent-bit side. It simply adds a path prefix in the indexing HTTP POST URI.
*/
"path"?: string;
/**
* Newer versions of Elasticsearch allows setting up filters called pipelines. This option allows defining which pipeline the database should use. For performance reasons is strongly suggested parsing and filtering on Fluent Bit side, avoid pipelines.
*/
"pipeline"?: string;
/**
* TCP port of the target Elasticsearch instance
*/
"port"?: number;
/**
* When enabled, replace field name dots with underscore, required by Elasticsearch 2.0-2.3.
*/
"replaceDots"?: boolean;
/**
* When enabled, mapping types is removed and Type option is ignored. Types are deprecated in APIs in v7.0. This options is for v7.0 or later.
*/
"suppressTypeName"?: string;
/**
* When Include_Tag_Key is enabled, this property defines the key name for the tag.
*/
"tagKey"?: string;
/**
* When Logstash_Format is enabled, each record will get a new timestamp field. The Time_Key property defines the name of that field.
*/
"timeKey"?: string;
/**
* When Logstash_Format is enabled, this property defines the format of the timestamp.
*/
"timeKeyFormat"?: string;
/**
* When Logstash_Format is enabled, enabling this property sends nanosecond precision timestamps.
*/
"timeKeyNanos"?: boolean;
/**
* Fluent Bit provides integrated support for Transport Layer Security (TLS) and it predecessor Secure Sockets Layer (SSL) respectively.
*/
"tls"?: {
/**
* Absolute path to CA certificate file
*/
"caFile"?: string;
/**
* Absolute path to scan for certificate files
*/
"caPath"?: string;
/**
* Absolute path to Certificate file
*/
"crtFile"?: string;
/**
* Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose
*/
"debug"?: 0 | 1 | 2 | 3 | 4;
/**
* Absolute path to private Key file
*/
"keyFile"?: string;
/**
* Optional password for tls.key_file file
*/
"keyPassword"?: {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* Force certificate validation
*/
"verify"?: boolean;
/**
* Hostname to be used for TLS SNI extension
*/
"vhost"?: string;
};
/**
* When enabled print the elasticsearch API calls to stdout when elasticsearch returns an error
*/
"traceError"?: boolean;
/**
* When enabled print the elasticsearch API calls to stdout (for diag only)
*/
"traceOutput"?: boolean;
/**
* Type name
*/
"type"?: string;
};
/**
* File defines File Output configuration.
*/
"file"?: {
/**
* The character to separate each pair. Applicable only if format is csv or ltsv.
*/
"delimiter"?: string;
/**
* Set file name to store the records. If not set, the file name will be the tag associated with the records.
*/
"file"?: string;
/**
* The format of the file content. See also Format section. Default: out_file.
*/
"format"?: "out_file" | "plain" | "csv" | "ltsv" | "template";
/**
* The character to separate each pair. Applicable only if format is ltsv.
*/
"labelDelimiter"?: string;
/**
* Absolute directory path to store files. If not set, Fluent Bit will write the files on it's own positioned directory.
*/
"path"?: string;
/**
* The format string. Applicable only if format is template.
*/
"template"?: string;
};
/**
* Firehose defines Firehose Output configuration.
*/
"firehose"?: {
/**
* Immediately retry failed requests to AWS services once. This option does not affect the normal Fluent Bit retry mechanism with backoff. Instead, it enables an immediate retry with no delay for networking errors, which may help improve throughput when there are transient/random networking issues.
*/
"autoRetryRequests"?: boolean;
/**
* By default, the whole log record will be sent to Kinesis. If you specify a key name(s) with this option, then only those keys and values will be sent to Kinesis. For example, if you are using the Fluentd Docker log driver, you can specify data_keys log and only the log message will be sent to Kinesis. If you specify multiple keys, they should be comma delimited.
*/
"dataKeys"?: string;
/**
* The name of the Kinesis Firehose Delivery stream that you want log records sent to.
*/
"deliveryStream": string;
/**
* Specify a custom endpoint for the Kinesis Firehose API.
*/
"endpoint"?: string;
/**
* By default, the whole log record will be sent to Firehose. If you specify a key name with this option, then only the value of that key will be sent to Firehose. For example, if you are using the Fluentd Docker log driver, you can specify log_key log and only the log message will be sent to Firehose.
*/
"logKey"?: string;
/**
* The AWS region.
*/
"region": string;
/**
* ARN of an IAM role to assume (for cross account access).
*/
"roleARN"?: string;
/**
* Specify a custom endpoint for the STS API; used to assume your custom role provided with role_arn.
*/
"stsEndpoint"?: string;
/**
* Add the timestamp to the record under this key. By default, the timestamp from Fluent Bit will not be added to records sent to Kinesis.
*/
"timeKey"?: string;
/**
* strftime compliant format string for the timestamp; for example, %Y-%m-%dT%H \*string This option is used with time_key. You can also use %L for milliseconds and %f for microseconds. If you are using ECS FireLens, make sure you are running Amazon ECS Container Agent v1.42.0 or later, otherwise the timestamps associated with your container logs will only have second precision.
*/
"timeKeyFormat"?: string;
};
/**
* Forward defines Forward Output configuration.
*/
"forward"?: {
/**
* Use this option to connect to Fluentd with a zero-length secret.
*/
"emptySharedKey"?: boolean;
/**
* Target host where Fluent-Bit or Fluentd are listening for Forward messages.
*/
"host"?: string;
/**
* Specify the password corresponding to the username.
*/
"password"?: {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* TCP Port of the target service.
*/
"port"?: number;
/**
* Send "chunk"-option and wait for "ack" response from server. Enables at-least-once and receiving server can control rate of traffic. (Requires Fluentd v0.14.0+ server)
*/
"requireAckResponse"?: boolean;
/**
* Default value of the auto-generated certificate common name (CN).
*/
"selfHostname"?: string;
/**
* Always send options (with "size"=count of messages)
*/
"sendOptions"?: boolean;
/**
* A key string known by the remote Fluentd used for authorization.
*/
"sharedKey"?: string;
/**
* Set timestamps in integer format, it enable compatibility mode for Fluentd v0.12 series.
*/
"timeAsInteger"?: boolean;
/**
* Fluent Bit provides integrated support for Transport Layer Security (TLS) and it predecessor Secure Sockets Layer (SSL) respectively.
*/
"tls"?: {
/**
* Absolute path to CA certificate file
*/
"caFile"?: string;
/**
* Absolute path to scan for certificate files
*/
"caPath"?: string;
/**
* Absolute path to Certificate file
*/
"crtFile"?: string;
/**
* Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose
*/
"debug"?: 0 | 1 | 2 | 3 | 4;
/**
* Absolute path to private Key file
*/
"keyFile"?: string;
/**
* Optional password for tls.key_file file
*/
"keyPassword"?: {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* Force certificate validation
*/
"verify"?: boolean;
/**
* Hostname to be used for TLS SNI extension
*/
"vhost"?: string;
};
/**
* Specify the username to present to a Fluentd server that enables user_auth.
*/
"username"?: {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
};
/**
* HTTP defines HTTP Output configuration.
*/
"http"?: {
/**
* Specify if duplicated headers are allowed. If a duplicated header is found, the latest key/value set is preserved.
*/
"allowDuplicatedHeaders"?: boolean;
/**
* Set payload compression mechanism. Option available is 'gzip'
*/
"compress"?: string;
/**
* Specify the data format to be used in the HTTP request body, by default it uses msgpack. Other supported formats are json, json_stream and json_lines and gelf.
*/
"format"?: "msgpack" | "json" | "json_stream" | "json_lines" | "gelf";
/**
* Specify the key to use for the full message in gelf format
*/
"gelfFullMessageKey"?: string;
/**
* Specify the key to use for the host in gelf format
*/
"gelfHostKey"?: string;
/**
* Specify the key to use for the level in gelf format
*/
"gelfLevelKey"?: string;
/**
* Specify the key to use as the short message in gelf format
*/
"gelfShortMessageKey"?: string;
/**
* Specify the key to use for timestamp in gelf format
*/
"gelfTimestampKey"?: string;
/**
* Specify an optional HTTP header field for the original message tag.
*/
"headerTag"?: string;
/**
* Add a HTTP header key/value pair. Multiple headers can be set.
*/
"headers"?: {
[key: string]: string;
};
/**
* IP address or hostname of the target HTTP Server
*/
"host"?: string;
/**
* Basic Auth Password. Requires HTTP_User to be set
*/
"httpPassword"?: {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* Basic Auth Username
*/
"httpUser"?: {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* Specify the format of the date. Supported formats are double, epoch and iso8601 (eg: 2018-05-30T09:39:52.000681Z)
*/
"jsonDateFormat"?: string;
/**
* Specify the name of the time key in the output record. To disable the time key just set the value to false.
*/
"jsonDateKey"?: string;
/**
* TCP port of the target HTTP Server
*/
"port"?: number;
/**
* Specify an HTTP Proxy. The expected format of this value is http://host:port. Note that https is not supported yet.
*/
"proxy"?: string;
/**
* HTTP output plugin supports TTL/SSL, for more details about the properties available and general configuration, please refer to the TLS/SSL section.
*/
"tls"?: {
/**
* Absolute path to CA certificate file
*/
"caFile"?: string;
/**
* Absolute path to scan for certificate files
*/
"caPath"?: string;
/**
* Absolute path to Certificate file
*/
"crtFile"?: string;
/**
* Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose
*/
"debug"?: 0 | 1 | 2 | 3 | 4;
/**
* Absolute path to private Key file
*/
"keyFile"?: string;
/**
* Optional password for tls.key_file file
*/
"keyPassword"?: {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* Force certificate validation
*/
"verify"?: boolean;
/**
* Hostname to be used for TLS SNI extension
*/
"vhost"?: string;
};
/**
* Specify an optional HTTP URI for the target web server, e.g: /something
*/
"uri"?: string;
};
/**
* InfluxDB defines InfluxDB Output configuration.
*/
"influxDB"?: {
/**
* Automatically tag keys where value is string.
*/
"autoTags"?: boolean;
/**
* InfluxDB bucket name where records will be inserted - if specified, database is ignored and v2 of API is used
*/
"bucket"?: string;
/**
* InfluxDB database name where records will be inserted.
*/
"database"?: string;
/**
* IP address or hostname of the target InfluxDB service.
*/
"host": string;
/**
* Password for user defined in HTTP_User
*/
"httpPassword"?: {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* Authentication token used with InfluxDB v2 - if specified, both HTTPUser and HTTPPasswd are ignored
*/
"httpToken"?: {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* Optional username for HTTP Basic Authentication
*/
"httpUser"?: {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* InfluxDB organization name where the bucket is (v2 only)
*/
"org"?: string;
/**
* TCP port of the target InfluxDB service.
*/
"port"?: number;
/**
* The name of the tag whose value is incremented for the consecutive simultaneous events.
*/
"sequenceTag"?: string;
/**
* List of keys that needs to be tagged
*/
"tagKeys"?: Array<string>;
/**
* Key of the string array optionally contained within each log record that contains tag keys for that record
*/
"tagListKey"?: string;
/**
* Dynamically tag keys which are in the string array at Tags_List_Key key.
*/
"tagsListEnabled"?: boolean;
/**
* Fluent Bit provides integrated support for Transport Layer Security (TLS) and it predecessor Secure Sockets Layer (SSL) respectively.
*/
"tls"?: {
/**
* Absolute path to CA certificate file
*/
"caFile"?: string;
/**
* Absolute path to scan for certificate files
*/
"caPath"?: string;
/**
* Absolute path to Certificate file
*/
"crtFile"?: string;
/**
* Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose
*/
"debug"?: 0 | 1 | 2 | 3 | 4;
/**
* Absolute path to private Key file
*/
"keyFile"?: string;
/**
* Optional password for tls.key_file file
*/
"keyPassword"?: {
/**
* ValueSource defines how to find a value's key.
*/
"valueFrom"?: {
/**
* Selects a key of a secret in the pod's namespace
*/
"secretKeyRef"?: {
/**
* The key of the secret to select from. Must be a valid secret key.
*/
"key": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
*/
"name"?: string;
/**
* Specify whether the Secret or its key must be defined
*/
"optional"?: boolean;
};
};
};
/**
* Force certificate validation
*/
"verify"?: boolean;
/**
* Hostname to be used for TLS SNI extension
*/
"vhost"?: string;
};
};
/**
* Kafka defines Kafka Output configuration.
*/
"kafka"?: {
/**
* Single of multiple list of Kafka Brokers, e.g: 192.168.1.3:9092, 192.168.1.4:9092.
*/
"brokers"?: string;
/**
* adds unknown topics (found in Topic_Key) to Topics. So in Topics only a default topic needs to be configured
*/
"dynamicTopic"?: boolean;
/**
* Specify data format, options available: json, msgpack.
*/
"format"?: string;
/**
* Optional key to store the message
*/
"messageKey"?: string;
/**
* If set, the value of Message_Key_Field in the record will indicate the message key. If not set nor found in the record, Message_Key will be used (if set).
*/
"messageKeyField"?: string;
/**
* Fluent Bit queues data into rdkafka library, if for some reason the underlying library cannot flush the records the queue might fills up blocking new addition of records. The queue_full_retries option set the number of local retries to enqueue the data. The default value is 10 times, the interval between each retry is 1 second. Setting the queue_full_retries value to 0 set's an unlimited number of retries.
*/
"queueFullRetries"?: number;
/**
* {property} can be any librdkafka properties
*/
"rdkafka"?: {
[key: string]: string;
};
/**
* iso8601 or double
*/
"timestampFormat"?: string;
/**
* Set the key to store the record timestamp
*/
"timestampKey"?: string;
/**
* If multiple Topics exists, the value of Topic_Key in the record will indicate the topic to use. E.g: if Topic_Key is router and the record is {"key1": 123, "router": "route_2"}, Fluent Bit will use topic route_2. Note that if the value of Topic_Key is not present in Topics, then by default the first topic in the Topics list will indicate the topic to be used.
*/
"topicKey"?: string;
/**
* Single entry or list of topics separated by comma (,) that Fluent Bit will use to send messages to Kafka. If only one topic is set, that one will be used for all records. Instead if multiple topics exists, the one set in the record by Topic_Key will be used.
*/
"topics"?: string;
};
/**
* Kinesis defines Kinesis Output configuration.
*/
"kinesis"?: {
/**
* Immediately retry failed requests to AWS services once. This option does not affect the normal Fluent Bit retry mechanism with backoff. Instead, it enables an immediate retry with no delay for networking errors, which may help improve throughput when there are transient/random networking issues. This option defaults to true.
*/
"