apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 name: clusterfilters.fluentbit.fluent.io spec: group: fluentbit.fluent.io names: kind: ClusterFilter listKind: ClusterFilterList plural: clusterfilters shortNames: - cfbf singular: clusterfilter scope: Cluster versions: - name: v1alpha2 schema: openAPIV3Schema: description: ClusterFilter defines a cluster-level Filter configuration. properties: apiVersion: description: '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' type: string kind: description: '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' type: string metadata: type: object spec: description: Specification of desired Filter configuration. properties: filters: description: A set of filter plugins in order. items: properties: aws: description: Aws defines a Aws configuration. properties: accountID: description: The account ID for current EC2 instance.Default is false. type: boolean alias: description: Alias for the plugin type: string amiID: description: The EC2 instance image id.Default is false. type: boolean az: description: The availability zone; for example, "us-east-1a". Default is true. type: boolean ec2InstanceID: description: The EC2 instance ID.Default is true. type: boolean ec2InstanceType: description: The EC2 instance type.Default is false. type: boolean hostName: description: The hostname for current EC2 instance.Default is false. type: boolean imdsVersion: description: Specify which version of the instance metadata service to use. Valid values are 'v1' or 'v2'. enum: - v1 - v2 type: string privateIP: description: The EC2 instance private ip.Default is false. type: boolean retryLimit: description: 'RetryLimit describes how many times fluent-bit should retry to send data to a specific output. If set to false fluent-bit will try indefinetly. If set to any integer N>0 it will try at most N+1 times. Leading zeros are not allowed (values such as 007, 0150, 01 do not work). If this property is not defined fluent-bit will use the default value: 1.' pattern: ^(((f|F)alse)|(no_limits)|(no_retries)|([1-9]+[0-9]*))$ type: string vpcID: description: The VPC ID for current EC2 instance.Default is false. type: boolean type: object customPlugin: description: CustomPlugin defines a Custom plugin configuration. properties: config: type: string type: object grep: description: Grep defines Grep Filter configuration. properties: alias: description: Alias for the plugin type: string exclude: description: 'Exclude records which field matches the regular expression. Value Format: FIELD REGEX' type: string regex: description: 'Keep records which field matches the regular expression. Value Format: FIELD REGEX' type: string retryLimit: description: 'RetryLimit describes how many times fluent-bit should retry to send data to a specific output. If set to false fluent-bit will try indefinetly. If set to any integer N>0 it will try at most N+1 times. Leading zeros are not allowed (values such as 007, 0150, 01 do not work). If this property is not defined fluent-bit will use the default value: 1.' pattern: ^(((f|F)alse)|(no_limits)|(no_retries)|([1-9]+[0-9]*))$ type: string type: object kubernetes: description: Kubernetes defines Kubernetes Filter configuration. properties: alias: description: Alias for the plugin type: string annotations: description: Include Kubernetes resource annotations in the extra metadata. type: boolean bufferSize: description: Set the buffer size for HTTP client when reading responses from Kubernetes API server. pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$ type: string cacheUseDockerId: description: When enabled, metadata will be fetched from K8s when docker_id is changed. type: boolean dnsRetries: description: DNS lookup retries N times until the network start working format: int32 type: integer dnsWaitTime: description: DNS lookup interval between network status checks format: int32 type: integer dummyMeta: description: If set, use dummy-meta data (for test/dev purposes) type: boolean k8sLoggingExclude: description: Allow Kubernetes Pods to exclude their logs from the log processor (read more about it in Kubernetes Annotations section). type: boolean k8sLoggingParser: description: Allow Kubernetes Pods to suggest a pre-defined Parser (read more about it in Kubernetes Annotations section) type: boolean keepLog: description: When Keep_Log is disabled, the log field is removed from the incoming message once it has been successfully merged (Merge_Log must be enabled as well). type: boolean kubeCAFile: description: CA certificate file type: string kubeCAPath: description: Absolute path to scan for certificate files type: string kubeMetaCacheTTL: description: configurable TTL for K8s cached metadata. By default, it is set to 0 which means TTL for cache entries is disabled and cache entries are evicted at random when capacity is reached. In order to enable this option, you should set the number to a time interval. For example, set this value to 60 or 60s and cache entries which have been created more than 60s will be evicted. type: string kubeMetaPreloadCacheDir: description: If set, Kubernetes meta-data can be cached/pre-loaded from files in JSON format in this directory, named as namespace-pod.meta type: string kubeTagPrefix: description: When the source records comes from Tail input plugin, this option allows to specify what's the prefix used in Tail configuration. type: string kubeTokenFile: description: Token file type: string kubeTokenTTL: description: configurable 'time to live' for the K8s token. By default, it is set to 600 seconds. After this time, the token is reloaded from Kube_Token_File or the Kube_Token_Command. type: string kubeURL: description: API Server end-point type: string kubeletHost: description: kubelet host using for HTTP request, this only works when Use_Kubelet set to On. type: string kubeletPort: description: kubelet port using for HTTP request, this only works when useKubelet is set to On. format: int32 type: integer labels: description: Include Kubernetes resource labels in the extra metadata. type: boolean mergeLog: description: When enabled, it checks if the log field content is a JSON string map, if so, it append the map fields as part of the log structure. type: boolean mergeLogKey: description: When Merge_Log is enabled, the filter tries to assume the log field from the incoming message is a JSON string message and make a structured representation of it at the same level of the log field in the map. Now if Merge_Log_Key is set (a string name), all the new structured fields taken from the original log content are inserted under the new key. type: string mergeLogTrim: description: When Merge_Log is enabled, trim (remove possible \n or \r) field values. type: boolean mergeParser: description: Optional parser name to specify how to parse the data contained in the log key. Recommended use is for developers or testing only. type: string regexParser: description: Set an alternative Parser to process record Tag and extract pod_name, namespace_name, container_name and docker_id. The parser must be registered in a parsers file (refer to parser filter-kube-test as an example). type: string retryLimit: description: 'RetryLimit describes how many times fluent-bit should retry to send data to a specific output. If set to false fluent-bit will try indefinetly. If set to any integer N>0 it will try at most N+1 times. Leading zeros are not allowed (values such as 007, 0150, 01 do not work). If this property is not defined fluent-bit will use the default value: 1.' pattern: ^(((f|F)alse)|(no_limits)|(no_retries)|([1-9]+[0-9]*))$ type: string tlsDebug: description: Debug level between 0 (nothing) and 4 (every detail). format: int32 type: integer tlsVerify: description: When enabled, turns on certificate validation when connecting to the Kubernetes API server. type: boolean useJournal: description: When enabled, the filter reads logs coming in Journald format. type: boolean useKubelet: description: This is an optional feature flag to get metadata information from kubelet instead of calling Kube Server API to enhance the log. This could mitigate the Kube API heavy traffic issue for large cluster. type: boolean type: object lua: description: Lua defines Lua Filter configuration. properties: alias: description: Alias for the plugin type: string call: description: Lua function name that will be triggered to do filtering. It's assumed that the function is declared inside the Script defined above. type: string code: description: Inline LUA code instead of loading from a path via script. type: string protectedMode: description: If enabled, Lua script will be executed in protected mode. It prevents to crash when invalid Lua script is executed. Default is true. type: boolean retryLimit: description: 'RetryLimit describes how many times fluent-bit should retry to send data to a specific output. If set to false fluent-bit will try indefinetly. If set to any integer N>0 it will try at most N+1 times. Leading zeros are not allowed (values such as 007, 0150, 01 do not work). If this property is not defined fluent-bit will use the default value: 1.' pattern: ^(((f|F)alse)|(no_limits)|(no_retries)|([1-9]+[0-9]*))$ type: string script: description: Path to the Lua script that will be used. properties: key: description: The key to select. type: string name: description: '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?' type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic timeAsTable: description: By default when the Lua script is invoked, the record timestamp is passed as a Floating number which might lead to loss precision when the data is converted back. If you desire timestamp precision enabling this option will pass the timestamp as a Lua table with keys sec for seconds since epoch and nsec for nanoseconds. type: boolean typeIntKey: description: If these keys are matched, the fields are converted to integer. If more than one key, delimit by space. Note that starting from Fluent Bit v1.6 integer data types are preserved and not converted to double as in previous versions. items: type: string type: array required: - call type: object modify: description: Modify defines Modify Filter configuration. properties: alias: description: Alias for the plugin type: string conditions: description: All conditions have to be true for the rules to be applied. items: description: The plugin supports the following conditions properties: aKeyMatches: description: Is true if a key matches regex KEY type: string keyDoesNotExist: additionalProperties: type: string description: Is true if KEY does not exist type: object keyExists: description: Is true if KEY exists type: string keyValueDoesNotEqual: additionalProperties: type: string description: Is true if KEY exists and its value is not VALUE type: object keyValueDoesNotMatch: additionalProperties: type: string description: Is true if key KEY exists and its value does not match VALUE type: object keyValueEquals: additionalProperties: type: string description: Is true if KEY exists and its value is VALUE type: object keyValueMatches: additionalProperties: type: string description: Is true if key KEY exists and its value matches VALUE type: object matchingKeysDoNotHaveMatchingValues: additionalProperties: type: string description: Is true if all keys matching KEY have values that do not match VALUE type: object matchingKeysHaveMatchingValues: additionalProperties: type: string description: Is true if all keys matching KEY have values that match VALUE type: object noKeyMatches: description: Is true if no key matches regex KEY type: string type: object type: array retryLimit: description: 'RetryLimit describes how many times fluent-bit should retry to send data to a specific output. If set to false fluent-bit will try indefinetly. If set to any integer N>0 it will try at most N+1 times. Leading zeros are not allowed (values such as 007, 0150, 01 do not work). If this property is not defined fluent-bit will use the default value: 1.' pattern: ^(((f|F)alse)|(no_limits)|(no_retries)|([1-9]+[0-9]*))$ type: string rules: description: Rules are applied in the order they appear, with each rule operating on the result of the previous rule. items: description: The plugin supports the following rules properties: add: additionalProperties: type: string description: Add a key/value pair with key KEY and value VALUE if KEY does not exist type: object copy: additionalProperties: type: string description: Copy a key/value pair with key KEY to COPIED_KEY if KEY exists AND COPIED_KEY does not exist type: object hardCopy: additionalProperties: type: string description: Copy a key/value pair with key KEY to COPIED_KEY if KEY exists. If COPIED_KEY already exists, this field is overwritten type: object hardRename: additionalProperties: type: string description: Rename a key/value pair with key KEY to RENAMED_KEY if KEY exists. If RENAMED_KEY already exists, this field is overwritten type: object remove: description: Remove a key/value pair with key KEY if it exists type: string removeRegex: description: Remove all key/value pairs with key matching regexp KEY type: string removeWildcard: description: Remove all key/value pairs with key matching wildcard KEY type: string rename: additionalProperties: type: string description: Rename a key/value pair with key KEY to RENAMED_KEY if KEY exists AND RENAMED_KEY does not exist type: object set: additionalProperties: type: string description: Add a key/value pair with key KEY and value VALUE. If KEY already exists, this field is overwritten type: object type: object type: array type: object multiline: description: Multiline defines a Multiline configuration. properties: alias: description: Alias for the plugin type: string buffer: default: false type: boolean emitterMemBufLimit: default: 10 description: Set a limit on the amount of memory in MB the emitter can consume if the outputs provide backpressure. The default for this limit is 10M. The pipeline will pause once the buffer exceeds the value of this setting. For example, if the value is set to 10MB then the pipeline will pause if the buffer exceeds 10M. The pipeline will remain paused until the output drains the buffer below the 10M limit. type: integer emitterName: description: Name for the emitter input instance which re-emits the completed records at the beginning of the pipeline. type: string emitterType: default: memory description: The storage type for the emitter input instance. This option supports the values memory (default) and filesystem. enum: - memory - filesystem type: string flushMs: default: 2000 type: integer keyContent: description: Key name that holds the content to process. Note that a Multiline Parser definition can already specify the key_content to use, but this option allows to overwrite that value for the purpose of the filter. type: string mode: enum: - parser - partial_message type: string parser: description: Specify one or multiple Multiline Parsing definitions to apply to the content. You can specify multiple multiline parsers to detect different formats by separating them with a comma. type: string retryLimit: description: 'RetryLimit describes how many times fluent-bit should retry to send data to a specific output. If set to false fluent-bit will try indefinetly. If set to any integer N>0 it will try at most N+1 times. Leading zeros are not allowed (values such as 007, 0150, 01 do not work). If this property is not defined fluent-bit will use the default value: 1.' pattern: ^(((f|F)alse)|(no_limits)|(no_retries)|([1-9]+[0-9]*))$ type: string required: - parser type: object nest: description: Nest defines Nest Filter configuration. properties: addPrefix: description: Prefix affected keys with this string type: string alias: description: Alias for the plugin type: string nestUnder: description: Nest records matching the Wildcard under this key type: string nestedUnder: description: Lift records nested under the Nested_under key type: string operation: description: Select the operation nest or lift enum: - nest - lift type: string removePrefix: description: Remove prefix from affected keys if it matches this string type: string retryLimit: description: 'RetryLimit describes how many times fluent-bit should retry to send data to a specific output. If set to false fluent-bit will try indefinetly. If set to any integer N>0 it will try at most N+1 times. Leading zeros are not allowed (values such as 007, 0150, 01 do not work). If this property is not defined fluent-bit will use the default value: 1.' pattern: ^(((f|F)alse)|(no_limits)|(no_retries)|([1-9]+[0-9]*))$ type: string wildcard: description: Nest records which field matches the wildcard items: type: string type: array type: object parser: description: Parser defines Parser Filter configuration. properties: alias: description: Alias for the plugin type: string keyName: description: Specify field name in record to parse. type: string parser: description: Specify the parser name to interpret the field. Multiple Parser entries are allowed (split by comma). type: string preserveKey: description: Keep original Key_Name field in the parsed result. If false, the field will be removed. type: boolean reserveData: description: Keep all other original fields in the parsed result. If false, all other original fields will be removed. type: boolean retryLimit: description: 'RetryLimit describes how many times fluent-bit should retry to send data to a specific output. If set to false fluent-bit will try indefinetly. If set to any integer N>0 it will try at most N+1 times. Leading zeros are not allowed (values such as 007, 0150, 01 do not work). If this property is not defined fluent-bit will use the default value: 1.' pattern: ^(((f|F)alse)|(no_limits)|(no_retries)|([1-9]+[0-9]*))$ type: string unescapeKey: description: 'If the key is a escaped string (e.g: stringify JSON), unescape the string before to apply the parser.' type: boolean type: object recordModifier: description: RecordModifier defines Record Modifier Filter configuration. properties: alias: description: Alias for the plugin type: string allowlistKeys: description: If the key is not matched, that field is removed. items: type: string type: array records: description: Append fields. This parameter needs key and value pair. items: type: string type: array removeKeys: description: If the key is matched, that field is removed. items: type: string type: array retryLimit: description: 'RetryLimit describes how many times fluent-bit should retry to send data to a specific output. If set to false fluent-bit will try indefinetly. If set to any integer N>0 it will try at most N+1 times. Leading zeros are not allowed (values such as 007, 0150, 01 do not work). If this property is not defined fluent-bit will use the default value: 1.' pattern: ^(((f|F)alse)|(no_limits)|(no_retries)|([1-9]+[0-9]*))$ type: string uuidKeys: description: If set, the plugin appends uuid to each record. The value assigned becomes the key in the map. items: type: string type: array whitelistKeys: description: An alias of allowlistKeys for backwards compatibility. items: type: string type: array type: object rewriteTag: description: RewriteTag defines a RewriteTag configuration. properties: alias: description: Alias for the plugin type: string emitterMemBufLimit: type: string emitterName: description: When the filter emits a record under the new Tag, there is an internal emitter plugin that takes care of the job. Since this emitter expose metrics as any other component of the pipeline, you can use this property to configure an optional name for it. type: string emitterStorageType: type: string retryLimit: description: 'RetryLimit describes how many times fluent-bit should retry to send data to a specific output. If set to false fluent-bit will try indefinetly. If set to any integer N>0 it will try at most N+1 times. Leading zeros are not allowed (values such as 007, 0150, 01 do not work). If this property is not defined fluent-bit will use the default value: 1.' pattern: ^(((f|F)alse)|(no_limits)|(no_retries)|([1-9]+[0-9]*))$ type: string rules: description: 'Defines the matching criteria and the format of the Tag for the matching record. The Rule format have four components: KEY REGEX NEW_TAG KEEP.' items: type: string type: array type: object throttle: description: Throttle defines a Throttle configuration. properties: alias: description: Alias for the plugin type: string interval: description: Interval is the time interval expressed in "sleep" format. e.g. 3s, 1.5m, 0.5h, etc. pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ type: string printStatus: description: PrintStatus represents whether to print status messages with current rate and the limits to information logs. type: boolean rate: description: Rate is the amount of messages for the time. format: int64 type: integer retryLimit: description: 'RetryLimit describes how many times fluent-bit should retry to send data to a specific output. If set to false fluent-bit will try indefinetly. If set to any integer N>0 it will try at most N+1 times. Leading zeros are not allowed (values such as 007, 0150, 01 do not work). If this property is not defined fluent-bit will use the default value: 1.' pattern: ^(((f|F)alse)|(no_limits)|(no_retries)|([1-9]+[0-9]*))$ type: string window: description: Window is the amount of intervals to calculate average over. format: int64 type: integer type: object type: object type: array logLevel: enum: - "off" - error - warning - info - debug - trace type: string match: description: A pattern to match against the tags of incoming records. It's case-sensitive and support the star (*) character as a wildcard. type: string matchRegex: description: A regular expression to match against the tags of incoming records. Use this option if you want to use the full regex syntax. type: string type: object type: object served: true storage: true --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 name: clusterfilters.fluentd.fluent.io spec: group: fluentd.fluent.io names: kind: ClusterFilter listKind: ClusterFilterList plural: clusterfilters shortNames: - cfdf singular: clusterfilter scope: Cluster versions: - name: v1alpha1 schema: openAPIV3Schema: description: ClusterFilter is the Schema for the clusterfilters API properties: apiVersion: description: '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' type: string kind: description: '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' type: string metadata: type: object spec: description: ClusterFilterSpec defines the desired state of ClusterFilter properties: filters: items: description: Filter defines all available filter plugins and their parameters. properties: customPlugin: description: Custom plugin type properties: config: type: string required: - config type: object grep: description: The filter_grep filter plugin properties: and: items: description: And defines the parameters for the "and" plugin properties: exclude: description: Exclude defines the parameters for the exclude plugin properties: key: type: string pattern: type: string type: object regexp: description: Regexp defines the parameters for the regexp plugin properties: key: type: string pattern: type: string type: object type: object type: array exclude: items: description: Exclude defines the parameters for the exclude plugin properties: key: type: string pattern: type: string type: object type: array or: items: description: Or defines the parameters for the "or" plugin properties: exclude: description: Exclude defines the parameters for the exclude plugin properties: key: type: string pattern: type: string type: object regexp: description: Regexp defines the parameters for the regexp plugin properties: key: type: string pattern: type: string type: object type: object type: array regexp: items: description: Regexp defines the parameters for the regexp plugin properties: key: type: string pattern: type: string type: object type: array type: object logLevel: description: The @log_level parameter specifies the plugin-specific logging level type: string parser: description: The filter_parser filter plugin properties: emitInvalidRecordToError: description: 'Emits invalid record to @ERROR label. Invalid cases are: key does not exist;the format is not matched;an unexpected error. If you want to ignore these errors, set false.' type: boolean hashValueField: description: Stores the parsed values as a hash value in a field. type: string injectKeyPrefix: description: Stores the parsed values with the specified key name prefix. type: string keyName: description: 'Specifies the field name in the record to parse. Required parameter. i.e: If set keyName to log, {"key":"value","log":"{\"time\":1622473200,\"user\":1}"} => {"user":1}' type: string parse: description: Parse defines various parameters for the parse plugin properties: customPatternPath: description: Path to the file that includes custom grok patterns. type: string estimateCurrentEvent: description: If true, use Fluent::Eventnow(current time) as a timestamp when time_key is specified. type: boolean expression: description: Specifies the regular expression for matching logs. Regular expression also supports i and m suffix. type: string grok: description: Grok Sections items: properties: keepTimeKey: description: If true, keep time field in the record. type: boolean name: description: The name of this grok section. type: string pattern: description: The pattern of grok. Required parameter. type: string timeFormat: description: Process value using specified format. This is available only when time_type is string type: string timeKey: description: Specify time field for event time. If the event doesn't have this field, current time is used. type: string timeZone: description: Use specified timezone. one can parse/format the time value in the specified timezone. type: string type: object type: array grokFailureKey: description: The key has grok failure reason. type: string grokPattern: description: The pattern of grok. type: string grokPatternSeries: description: Specify grok pattern series set. type: string id: description: The @id parameter specifies a unique name for the configuration. type: string keepTimeKey: description: If true, keep time field in th record. type: boolean localtime: description: If true, uses local time. type: boolean logLevel: description: The @log_level parameter specifies the plugin-specific logging level type: string multiLineStartRegexp: description: The regexp to match beginning of multiline. This is only for "multiline_grok". type: string timeFormat: description: Process value according to the specified format. This is available only when time_type is string type: string timeFormatFallbacks: description: Uses the specified time format as a fallback in the specified order. You can parse undetermined time format by using time_format_fallbacks. This options is enabled when time_type is mixed. type: string timeKey: description: Specify time field for event time. If the event doesn't have this field, current time is used. type: string timeType: description: parses/formats value according to this type, default is string enum: - float - unixtime - string - mixed type: string timeout: description: Specify timeout for parse processing. pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ type: string timezone: description: Uses the specified timezone. type: string type: description: The @type parameter specifies the type of the plugin. enum: - regexp - apache2 - apache_error - nginx - syslog - csv - tsv - ltsv - json - multiline - none - grok - multiline_grok type: string types: description: 'Specify types for converting field into another, i.e: types user_id:integer,paid:bool,paid_usd_amount:float' type: string utc: description: If true, uses UTC. type: boolean required: - type type: object removeKeyNameField: description: Removes key_name field when parsing is succeeded. type: boolean replaceInvalidSequence: description: If true, invalid string is replaced with safe characters and re-parse it. type: boolean reserveData: description: 'Keeps the original key-value pair in the parsed result. Default is false. i.e: If set keyName to log, reverseData to true, {"key":"value","log":"{\"user\":1,\"num\":2}"} => {"key":"value","log":"{\"user\":1,\"num\":2}","user":1,"num":2}' type: boolean reserveTime: description: Keeps the original event time in the parsed result. Default is false. type: boolean required: - keyName - parse type: object recordTransformer: description: The filter_record_transformer filter plugin properties: autoTypecast: description: Automatically casts the field types. Default is false. This option is effective only for field values comprised of a single placeholder. type: boolean enableRuby: description: 'When set to true, the full Ruby syntax is enabled in the ${...} expression. The default value is false. i.e: jsonized_record ${record.to_json}' type: boolean keepKeys: description: A list of keys to keep. Only relevant if renew_record is set to true. type: string records: items: description: The parameters inside directives are considered to be new key-value pairs properties: key: description: New field can be defined as key type: string value: description: The value must from Record properties. See https://docs.fluentd.org/filter/record_transformer#less-than-record-greater-than-directive type: string required: - key - value type: object type: array removeKeys: description: A list of keys to delete. Supports nested field via record_accessor syntax since v1.1.0. type: string renewRecord: description: By default, the record transformer filter mutates the incoming data. However, if this parameter is set to true, it modifies a new empty hash instead. type: boolean renewTimeKey: description: renew_time_key foo overwrites the time of events with a value of the record field foo if exists. The value of foo must be a Unix timestamp. type: string type: object stdout: description: The filter_stdout filter plugin properties: format: description: The format section properties: delimiter: description: Delimiter for each field. type: string id: description: The @id parameter specifies a unique name for the configuration. type: string localtime: description: If true, uses local time. type: boolean logLevel: description: The @log_level parameter specifies the plugin-specific logging level type: string newline: description: Specify newline characters. enum: - lf - crlf type: string outputTag: description: Output tag field if true. type: boolean outputTime: description: Output time field if true. type: boolean timeFormat: description: Process value according to the specified format. This is available only when time_type is string type: string timeFormatFallbacks: description: Uses the specified time format as a fallback in the specified order. You can parse undetermined time format by using time_format_fallbacks. This options is enabled when time_type is mixed. type: string timeType: description: parses/formats value according to this type, default is string enum: - float - unixtime - string - mixed type: string timezone: description: Uses the specified timezone. type: string type: description: The @type parameter specifies the type of the plugin. enum: - out_file - json - ltsv - csv - msgpack - hash - single_value type: string utc: description: If true, uses UTC. type: boolean type: object inject: description: The inject section properties: hostname: description: Hostname value type: string hostnameKey: description: The field name to inject hostname type: string inline: description: Time section properties: localtime: description: If true, uses local time. type: boolean timeFormat: description: Process value according to the specified format. This is available only when time_type is string type: string timeFormatFallbacks: description: Uses the specified time format as a fallback in the specified order. You can parse undetermined time format by using time_format_fallbacks. This options is enabled when time_type is mixed. type: string timeType: description: parses/formats value according to this type, default is string enum: - float - unixtime - string - mixed type: string timezone: description: Uses the specified timezone. type: string utc: description: If true, uses UTC. type: boolean type: object tagKey: description: The field name to inject tag type: string timeKey: description: The field name to inject time type: string workerIdKey: description: The field name to inject worker_id type: string type: object type: object tag: description: Which tag to be matched. type: string type: object type: array type: object status: description: ClusterFilterStatus defines the observed state of ClusterFilter type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 name: clusterfluentbitconfigs.fluentbit.fluent.io spec: group: fluentbit.fluent.io names: kind: ClusterFluentBitConfig listKind: ClusterFluentBitConfigList plural: clusterfluentbitconfigs shortNames: - cfbc singular: clusterfluentbitconfig scope: Cluster versions: - name: v1alpha2 schema: openAPIV3Schema: description: ClusterFluentBitConfig is the Schema for the cluster-level fluentbitconfigs API properties: apiVersion: description: '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' type: string kind: description: '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' type: string metadata: type: object spec: description: FluentBitConfigSpec defines the desired state of ClusterFluentBitConfig properties: filterSelector: description: Select filter plugins properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic inputSelector: description: Select input plugins properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic multilineParserSelector: description: Select multiline parser plugins properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespace: description: If namespace is defined, then the configmap and secret for fluent-bit is in this namespace. If it is not defined, it is in the namespace of the fluentd-operator type: string outputSelector: description: Select output plugins properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic parserSelector: description: Select parser plugins properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic service: description: Service defines the global behaviour of the Fluent Bit engine. properties: daemon: description: If true go to background on start type: boolean emitterMemBufLimit: type: string emitterName: description: Per-namespace re-emitter configuration type: string emitterStorageType: type: string flushSeconds: description: Interval to flush output format: int64 type: integer graceSeconds: description: Wait time on exit format: int64 type: integer hcErrorsCount: description: 'the error count to meet the unhealthy requirement, this is a sum for all output plugins in a defined HC_Period, example for output error: [2022/02/16 10:44:10] [ warn] [engine] failed to flush chunk ''1-1645008245.491540684.flb'', retry in 7 seconds: task_id=0, input=forward.1 > output=cloudwatch_logs.3 (out_id=3)' format: int64 minimum: 1 type: integer hcPeriod: description: The time period by second to count the error and retry failure data point format: int64 minimum: 1 type: integer hcRetryFailureCount: description: 'the retry failure count to meet the unhealthy requirement, this is a sum for all output plugins in a defined HC_Period, example for retry failure: [2022/02/16 20:11:36] [ warn] [engine] chunk ''1-1645042288.260516436.flb'' cannot be retried: task_id=0, input=tcp.3 > output=cloudwatch_logs.1' format: int64 minimum: 1 type: integer healthCheck: description: 'enable Health check feature at http://127.0.0.1:2020/api/v1/health Note: Enabling this will not automatically configure kubernetes to use fluentbit''s healthcheck endpoint' type: boolean httpListen: description: Address to listen pattern: ^\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}$ type: string httpPort: description: Port to listen format: int32 maximum: 65535 minimum: 1 type: integer httpServer: description: If true enable statistics HTTP server type: boolean logFile: description: File to log diagnostic output type: string logLevel: description: Diagnostic level (error/warning/info/debug/trace) enum: - "off" - error - warning - info - debug - trace type: string parsersFile: description: Optional 'parsers' config file (can be multiple) type: string parsersFiles: description: backward compatible items: type: string type: array storage: description: Configure a global environment for the storage layer in Service. It is recommended to configure the volume and volumeMount separately for this storage. The hostPath type should be used for that Volume in Fluentbit daemon set. properties: backlogMemLimit: description: This option configure a hint of maximum value of memory to use when processing these records type: string checksum: description: Enable the data integrity check when writing and reading data from the filesystem enum: - "on" - "off" type: string deleteIrrecoverableChunks: description: When enabled, irrecoverable chunks will be deleted during runtime, and any other irrecoverable chunk located in the configured storage path directory will be deleted when Fluent-Bit starts. enum: - "on" - "off" type: string maxChunksUp: description: If the input plugin has enabled filesystem storage type, this property sets the maximum number of Chunks that can be up in memory format: int64 type: integer metrics: description: If http_server option has been enabled in the Service section, this option registers a new endpoint where internal metrics of the storage layer can be consumed enum: - "on" - "off" type: string path: description: Select an optional location in the file system to store streams and chunks of data/ type: string sync: description: Configure the synchronization mode used to store the data into the file system enum: - normal - full type: string type: object type: object type: object type: object served: true storage: true --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 name: clusterfluentdconfigs.fluentd.fluent.io spec: group: fluentd.fluent.io names: kind: ClusterFluentdConfig listKind: ClusterFluentdConfigList plural: clusterfluentdconfigs shortNames: - cfdc singular: clusterfluentdconfig scope: Cluster versions: - name: v1alpha1 schema: openAPIV3Schema: description: ClusterFluentdConfig is the Schema for the clusterfluentdconfigs API properties: apiVersion: description: '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' type: string kind: description: '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' type: string metadata: type: object spec: description: ClusterFluentdConfigSpec defines the desired state of ClusterFluentdConfig properties: clusterFilterSelector: description: Select cluster filter plugins properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic clusterInputSelector: description: Select cluster input plugins properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic clusterOutputSelector: description: Select cluster output plugins properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic emit_mode: description: 'Emit mode. If batch, the plugin will emit events per labels matched. Enum: record, batch. will make no effect if EnableFilterKubernetes is set false.' enum: - record - batch type: string stickyTags: description: Sticky tags will match only one record from an event stream. The same tag will be treated the same way. will make no effect if EnableFilterKubernetes is set false. type: string watchedConstainers: description: A set of container names. Ignored if left empty. items: type: string type: array watchedHosts: description: A set of hosts. Ignored if left empty. items: type: string type: array watchedLabels: additionalProperties: type: string description: Use this field to filter the logs, will make no effect if EnableFilterKubernetes is set false. type: object watchedNamespaces: description: A set of namespaces. The whole namespaces would be watched if left empty. items: type: string type: array type: object status: description: ClusterFluentdConfigStatus defines the observed state of ClusterFluentdConfig properties: messages: description: Messages defines the plugin errors which is selected by this fluentdconfig type: string state: description: The state of this fluentd config type: string type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 name: clusterinputs.fluentbit.fluent.io spec: group: fluentbit.fluent.io names: kind: ClusterInput listKind: ClusterInputList plural: clusterinputs shortNames: - cfbi singular: clusterinput scope: Cluster versions: - name: v1alpha2 schema: openAPIV3Schema: description: ClusterInput is the Schema for the inputs API properties: apiVersion: description: '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' type: string kind: description: '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' type: string metadata: type: object spec: description: InputSpec defines the desired state of ClusterInput properties: alias: description: A user friendly alias name for this input plugin. Used in metrics for distinction of each configured input. type: string collectd: description: Collectd defines the Collectd input plugin configuration properties: listen: description: 'Set the address to listen to, default: 0.0.0.0' type: string port: description: 'Set the port to listen to, default: 25826' format: int32 maximum: 65535 minimum: 1 type: integer typesDB: description: 'Set the data specification file,default: /usr/share/collectd/types.db' type: string type: object customPlugin: description: CustomPlugin defines Custom Input configuration. properties: config: type: string type: object dummy: description: Dummy defines Dummy Input configuration. properties: dummy: description: Dummy JSON record. type: string rate: description: Events number generated per second. format: int32 type: integer samples: description: Sample events to generate. format: int32 type: integer tag: description: Tag name associated to all records comming from this plugin. type: string type: object fluentBitMetrics: description: FluentBitMetrics defines Fluent Bit Metrics Input configuration. properties: scrapeInterval: description: The rate at which metrics are collected from the host operating system. default is 2 seconds. type: string scrapeOnStart: description: Scrape metrics upon start, useful to avoid waiting for 'scrape_interval' for the first round of metrics. type: boolean tag: type: string type: object forward: description: Forward defines forward input plugin configuration properties: bufferMaxSize: description: Specify maximum buffer memory size used to recieve a forward message. The value must be according to the Unit Size specification. pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$ type: string bufferchunkSize: description: Set the initial buffer size to store incoming data. This value is used too to increase buffer size as required. The value must be according to the Unit Size specification. pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$ type: string listen: description: Listener network interface. type: string port: description: Port for forward plugin instance. format: int32 maximum: 65535 minimum: 1 type: integer tag: description: in_forward uses the tag value for incoming logs. If not set it uses tag from incoming log. type: string tagPrefix: description: Adds the prefix to incoming event's tag type: string threaded: description: Threaded mechanism allows input plugin to run in a separate thread which helps to desaturate the main pipeline. type: string unixPath: description: Specify the path to unix socket to recieve a forward message. If set, Listen and port are ignnored. type: string unixPerm: description: Set the permission of unix socket file. type: string type: object http: description: HTTP defines the HTTP input plugin configuration properties: bufferChunkSize: description: This sets the chunk size for incoming incoming JSON messages. These chunks are then stored/managed in the space available by buffer_max_size,default 512K. pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$ type: string bufferMaxSize: description: Specify the maximum buffer size in KB to receive a JSON message,default 4M. pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$ type: string listen: description: The address to listen on,default 0.0.0.0 type: string port: description: The port for Fluent Bit to listen on,default 9880 format: int32 maximum: 65535 minimum: 1 type: integer successfulHeader: description: 'Add an HTTP header key/value pair on success. Multiple headers can be set. Example: X-Custom custom-answer.' type: string successfulResponseCode: description: It allows to set successful response code. 200, 201 and 204 are supported,default 201. format: int32 type: integer tagKey: description: Specify the key name to overwrite a tag. If set, the tag will be overwritten by a value of the key. type: string tls: description: Fluent Bit provides integrated support for Transport Layer Security (TLS) and it predecessor Secure Sockets Layer (SSL) respectively. properties: caFile: description: Absolute path to CA certificate file type: string caPath: description: Absolute path to scan for certificate files type: string crtFile: description: Absolute path to Certificate file type: string debug: description: 'Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose' enum: - 0 - 1 - 2 - 3 - 4 format: int32 type: integer keyFile: description: Absolute path to private Key file type: string keyPassword: description: Optional password for tls.key_file file properties: valueFrom: description: ValueSource defines how to find a value's key. properties: secretKeyRef: description: Selects a key of a secret in the pod's namespace properties: key: description: The key of the secret to select from. Must be a valid secret key. type: string name: description: '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?' type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object type: object verify: description: Force certificate validation type: boolean vhost: description: Hostname to be used for TLS SNI extension type: string type: object type: object logLevel: enum: - "off" - error - warning - info - debug - trace type: string mqtt: description: MQTT defines the MQTT input plugin configuration properties: listen: description: 'Listener network interface, default: 0.0.0.0' type: string port: description: 'TCP port where listening for connections, default: 1883' format: int32 maximum: 65535 minimum: 1 type: integer type: object nginx: description: Nginx defines the Nginx input plugin configuration properties: host: description: 'Name of the target host or IP address to check, default: localhost' type: string nginxPlus: description: 'Turn on NGINX plus mode,default: true' type: boolean port: description: 'Port of the target nginx service to connect to, default: 80' format: int32 maximum: 65535 minimum: 1 type: integer statusURL: description: 'The URL of the Stub Status Handler,default: /status' type: string type: object nodeExporterMetrics: description: NodeExporterMetrics defines Node Exporter Metrics Input configuration. properties: path: properties: procfs: description: The mount point used to collect process information and metrics. type: string sysfs: description: The path in the filesystem used to collect system metrics. type: string type: object scrapeInterval: description: The rate at which metrics are collected from the host operating system, default is 5 seconds. type: string tag: description: Tag name associated to all records comming from this plugin. type: string type: object openTelemetry: description: OpenTelemetry defines the OpenTelemetry input plugin configuration properties: bufferChunkSize: description: This sets the chunk size for incoming incoming JSON messages. These chunks are then stored/managed in the space available by buffer_max_size(default 512K). pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$ type: string bufferMaxSize: description: Specify the maximum buffer size in KB to receive a JSON message(default 4M). pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$ type: string listen: description: The address to listen on,default 0.0.0.0 type: string port: description: The port for Fluent Bit to listen on.default 4318. format: int32 maximum: 65535 minimum: 1 type: integer rawTraces: description: Route trace data as a log message(default false). type: boolean successfulResponseCode: description: It allows to set successful response code. 200, 201 and 204 are supported(default 201). format: int32 type: integer tagKey: description: Specify the key name to overwrite a tag. If set, the tag will be overwritten by a value of the key. type: string type: object prometheusScrapeMetrics: description: PrometheusScrapeMetrics defines Prometheus Scrape Metrics Input configuration. properties: host: description: The host of the prometheus metric endpoint that you want to scrape type: string metricsPath: description: 'The metrics URI endpoint, that must start with a forward slash, deflaut: /metrics' type: string port: description: The port of the promethes metric endpoint that you want to scrape format: int32 maximum: 65535 minimum: 1 type: integer scrapeInterval: description: 'The interval to scrape metrics, default: 10s' type: string tag: description: Tag name associated to all records comming from this plugin type: string type: object statsd: description: StatsD defines the StatsD input plugin configuration properties: listen: description: 'Listener network interface, default: 0.0.0.0' type: string port: description: 'UDP port where listening for connections, default: 8125' format: int32 maximum: 65535 minimum: 1 type: integer type: object syslog: description: Syslog defines the Syslog input plugin configuration properties: bufferChunkSize: description: By default the buffer to store the incoming Syslog messages, do not allocate the maximum memory allowed, instead it allocate memory when is required. The rounds of allocations are set by Buffer_Chunk_Size. If not set, Buffer_Chunk_Size is equal to 32000 bytes (32KB). pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$ type: string bufferMaxSize: description: Specify the maximum buffer size to receive a Syslog message. If not set, the default size will be the value of Buffer_Chunk_Size. pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$ type: string listen: description: 'If Mode is set to tcp or udp, specify the network interface to bind, default: 0.0.0.0' type: string mode: description: 'Defines transport protocol mode: unix_udp (UDP over Unix socket), unix_tcp (TCP over Unix socket), tcp or udp' enum: - unix_udp - unix_tcp - tcp - udp type: string parser: description: Specify an alternative parser for the message. If Mode is set to tcp or udp then the default parser is syslog-rfc5424 otherwise syslog-rfc3164-local is used. If your syslog messages have fractional seconds set this Parser value to syslog-rfc5424 instead. type: string path: description: If Mode is set to unix_tcp or unix_udp, set the absolute path to the Unix socket file. type: string port: description: If Mode is set to tcp or udp, specify the TCP port to listen for incoming connections. format: int32 maximum: 65535 minimum: 1 type: integer receiveBufferSize: description: Specify the maximum socket receive buffer size. If not set, the default value is OS-dependant, but generally too low to accept thousands of syslog messages per second without loss on udp or unix_udp sockets. Note that on Linux the value is capped by sysctl net.core.rmem_max. pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$ type: string sourceAddressKey: description: Specify the key where the source address will be injected. type: string unixPerm: description: 'If Mode is set to unix_tcp or unix_udp, set the permission of the Unix socket file, default: 0644' format: int32 type: integer type: object systemd: description: Systemd defines Systemd Input configuration. properties: db: description: Specify the database file to keep track of monitored files and offsets. type: string dbSync: description: 'Set a default synchronization (I/O) method. values: Extra, Full, Normal, Off. This flag affects how the internal SQLite engine do synchronization to disk, for more details about each option please refer to this section. note: this option was introduced on Fluent Bit v1.4.6.' enum: - Extra - Full - Normal - "Off" type: string maxEntries: description: When Fluent Bit starts, the Journal might have a high number of logs in the queue. In order to avoid delays and reduce memory usage, this option allows to specify the maximum number of log entries that can be processed per round. Once the limit is reached, Fluent Bit will continue processing the remaining log entries once Journald performs the notification. type: integer maxFields: description: Set a maximum number of fields (keys) allowed per record. type: integer path: description: Optional path to the Systemd journal directory, if not set, the plugin will use default paths to read local-only logs. type: string pauseOnChunksOverlimit: description: Specifies if the input plugin should be paused (stop ingesting new data) when the storage.max_chunks_up value is reached. enum: - "on" - "off" type: string readFromTail: description: Start reading new entries. Skip entries already stored in Journald. enum: - "on" - "off" type: string storageType: description: Specify the buffering mechanism to use. It can be memory or filesystem enum: - filesystem - memory type: string stripUnderscores: description: Remove the leading underscore of the Journald field (key). For example the Journald field _PID becomes the key PID. enum: - "on" - "off" type: string systemdFilter: description: 'Allows to perform a query over logs that contains a specific Journald key/value pairs, e.g: _SYSTEMD_UNIT=UNIT. The Systemd_Filter option can be specified multiple times in the input section to apply multiple filters as required.' items: type: string type: array systemdFilterType: description: Define the filter type when Systemd_Filter is specified multiple times. Allowed values are And and Or. With And a record is matched only when all of the Systemd_Filter have a match. With Or a record is matched when any of the Systemd_Filter has a match. enum: - And - Or type: string tag: description: 'The tag is used to route messages but on Systemd plugin there is an extra functionality: if the tag includes a star/wildcard, it will be expanded with the Systemd Unit file (e.g: host.* => host.UNIT_NAME).' type: string type: object tail: description: Tail defines Tail Input configuration. properties: bufferChunkSize: description: Set the initial buffer size to read files data. This value is used too to increase buffer size. The value must be according to the Unit Size specification. pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$ type: string bufferMaxSize: description: 'Set the limit of the buffer size per monitored file. When a buffer needs to be increased (e.g: very long lines), this value is used to restrict how much the memory buffer can grow. If reading a file exceed this limit, the file is removed from the monitored file list The value must be according to the Unit Size specification.' pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$ type: string db: description: Specify the database file to keep track of monitored files and offsets. type: string dbSync: description: 'Set a default synchronization (I/O) method. Values: Extra, Full, Normal, Off.' enum: - Extra - Full - Normal - "Off" type: string disableInotifyWatcher: description: DisableInotifyWatcher will disable inotify and use the file stat watcher instead. type: boolean dockerMode: description: If enabled, the plugin will recombine split Docker log lines before passing them to any parser as configured above. This mode cannot be used at the same time as Multiline. type: boolean dockerModeFlushSeconds: description: Wait period time in seconds to flush queued unfinished split lines. format: int64 type: integer dockerModeParser: description: Specify an optional parser for the first line of the docker multiline mode. The parser name to be specified must be registered in the parsers.conf file. type: string excludePath: description: 'Set one or multiple shell patterns separated by commas to exclude files matching a certain criteria, e.g: exclude_path=*.gz,*.zip' type: string ignoredOlder: description: Ignores records which are older than this time in seconds. Supports m,h,d (minutes, hours, days) syntax. Default behavior is to read all records from specified files. Only available when a Parser is specificied and it can parse the time of a record. pattern: ^\d+(m|h|d)?$ type: string key: description: When a message is unstructured (no parser applied), it's appended as a string under the key name log. This option allows to define an alternative name for that key. type: string memBufLimit: description: Set a limit of memory that Tail plugin can use when appending data to the Engine. If the limit is reach, it will be paused; when the data is flushed it resumes. type: string multiline: description: If enabled, the plugin will try to discover multiline messages and use the proper parsers to compose the outgoing messages. Note that when this option is enabled the Parser option is not used. type: boolean multilineFlushSeconds: description: Wait period time in seconds to process queued multiline messages format: int64 type: integer multilineParser: description: This will help to reassembly multiline messages originally split by Docker or CRI Specify one or Multiline Parser definition to apply to the content. type: string parser: description: Specify the name of a parser to interpret the entry as a structured message. type: string parserFirstline: description: Name of the parser that matchs the beginning of a multiline message. Note that the regular expression defined in the parser must include a group name (named capture) type: string parserN: description: Optional-extra parser to interpret and structure multiline entries. This option can be used to define multiple parsers. items: type: string type: array path: description: Pattern specifying a specific log files or multiple ones through the use of common wildcards. type: string pathKey: description: If enabled, it appends the name of the monitored file as part of the record. The value assigned becomes the key in the map. type: string pauseOnChunksOverlimit: description: Specifies if the input plugin should be paused (stop ingesting new data) when the storage.max_chunks_up value is reached. enum: - "on" - "off" type: string readFromHead: description: For new discovered files on start (without a database offset/position), read the content from the head of the file, not tail. type: boolean refreshIntervalSeconds: description: The interval of refreshing the list of watched files in seconds. format: int64 type: integer rotateWaitSeconds: description: Specify the number of extra time in seconds to monitor a file once is rotated in case some pending data is flushed. format: int64 type: integer skipLongLines: description: When a monitored file reach it buffer capacity due to a very long line (Buffer_Max_Size), the default behavior is to stop monitoring that file. Skip_Long_Lines alter that behavior and instruct Fluent Bit to skip long lines and continue processing other lines that fits into the buffer size. type: boolean storageType: description: Specify the buffering mechanism to use. It can be memory or filesystem enum: - filesystem - memory type: string tag: description: Set a tag (with regex-extract fields) that will be placed on lines read. E.g. kube... type: string tagRegex: description: Set a regex to exctract fields from the file type: string type: object tcp: description: TCP defines the TCP input plugin configuration properties: bufferSize: description: Specify the maximum buffer size in KB to receive a JSON message. If not set, the default size will be the value of Chunk_Size. pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$ type: string chunkSize: description: By default the buffer to store the incoming JSON messages, do not allocate the maximum memory allowed, instead it allocate memory when is required. The rounds of allocations are set by Chunk_Size in KB. If not set, Chunk_Size is equal to 32 (32KB). pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$ type: string format: description: Specify the expected payload format. It support the options json and none. When using json, it expects JSON maps, when is set to none, it will split every record using the defined Separator (option below). type: string listen: description: Listener network interface,default 0.0.0.0 type: string port: description: TCP port where listening for connections,default 5170 format: int32 maximum: 65535 minimum: 1 type: integer separator: description: When the expected Format is set to none, Fluent Bit needs a separator string to split the records. By default it uses the breakline character (LF or 0x10). type: string type: object type: object type: object served: true storage: true --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 name: clusterinputs.fluentd.fluent.io spec: group: fluentd.fluent.io names: kind: ClusterInput listKind: ClusterInputList plural: clusterinputs shortNames: - cfdi singular: clusterinput scope: Cluster versions: - name: v1alpha1 schema: openAPIV3Schema: description: ClusterInput is the Schema for the clusterinputs API properties: apiVersion: description: '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' type: string kind: description: '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' type: string metadata: type: object spec: description: ClusterInputSpec defines the desired state of ClusterInput properties: inputs: items: description: Input defines all available input plugins and their parameters properties: customPlugin: description: Custom plugin type properties: config: type: string required: - config type: object forward: description: in_forward plugin properties: addTagPrefix: description: Adds the prefix to the incoming event's tag. type: string bind: description: The port to listen to, default is "0.0.0.0" type: string chunkSizeLimit: description: The size limit of the received chunk. If the chunk size is larger than this value, the received chunk is dropped. pattern: ^\d+(KB|MB|GB|TB)$ type: string chunkSizeWarnLimit: description: The warning size limit of the received chunk. If the chunk size is larger than this value, a warning message will be sent. pattern: ^\d+(KB|MB|GB|TB)$ type: string client: description: The security section of client plugin properties: host: description: The IP address or hostname of the client. This is exclusive with Network. type: string network: description: The network address specification. This is exclusive with Host. type: string sharedKey: description: The shared key per client. type: string users: description: The array of usernames. type: string type: object denyKeepalive: description: The connections will be disconnected right after receiving a message, if true. type: boolean lingerTimeout: description: The timeout used to set the linger option. type: integer port: description: The port to listen to, default is 24224. format: int32 maximum: 65535 minimum: 1 type: integer resolveHostname: description: Tries to resolve hostname from IP addresses or not. type: boolean security: description: The security section of forward plugin properties: allowAnonymousSource: description: Allows the anonymous source. sections are required, if disabled. type: string selfHostname: description: The hostname. type: string sharedKey: description: The shared key for authentication. type: string user: description: Defines user section directly. properties: password: description: Secret defines the key of a value. properties: valueFrom: description: ValueSource defines how to find a value's key. properties: secretKeyRef: description: Selects a key of a secret in the pod's namespace properties: key: description: The key of the secret to select from. Must be a valid secret key. type: string name: description: '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?' type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object type: object username: description: Secret defines the key of a value. properties: valueFrom: description: ValueSource defines how to find a value's key. properties: secretKeyRef: description: Selects a key of a secret in the pod's namespace properties: key: description: The key of the secret to select from. Must be a valid secret key. type: string name: description: '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?' type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object type: object type: object userAuth: description: If true, user-based authentication is used. type: string type: object sendKeepalivePacket: description: Enables the TCP keepalive for sockets. type: boolean skipInvalidEvent: description: Skips the invalid incoming event. type: boolean sourceAddressKey: description: The field name of the client's source address. If set, the client's address will be set to its key. type: string sourceHostnameKey: description: The field name of the client's hostname. If set, the client's hostname will be set to its key. type: string tag: description: in_forward uses incoming event's tag by default (See Protocol Section). If the tag parameter is set, its value is used instead. type: string transport: description: The transport section of forward plugin properties: caCertPath: description: for Cert generated type: string caPath: description: for Cert signed by public CA type: string caPrivateKeyPassphrase: type: string caPrivateKeyPath: type: string certPath: type: string certVerifier: description: other parameters type: string ciphers: type: string clientCertAuth: type: boolean insecure: type: boolean privateKeyPassphrase: type: string privateKeyPath: type: string protocol: description: 'The protocal name of this plugin, i.e: tls' type: string version: type: string type: object user: description: The security section of user plugin properties: password: description: Secret defines the key of a value. properties: valueFrom: description: ValueSource defines how to find a value's key. properties: secretKeyRef: description: Selects a key of a secret in the pod's namespace properties: key: description: The key of the secret to select from. Must be a valid secret key. type: string name: description: '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?' type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object type: object username: description: Secret defines the key of a value. properties: valueFrom: description: ValueSource defines how to find a value's key. properties: secretKeyRef: description: Selects a key of a secret in the pod's namespace properties: key: description: The key of the secret to select from. Must be a valid secret key. type: string name: description: '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?' type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object type: object type: object type: object http: description: in_http plugin properties: addHttpHeaders: description: Adds HTTP_ prefix headers to the record. type: boolean addRemoteAddr: description: 'Adds REMOTE_ADDR field to the record. The value of REMOTE_ADDR is the client''s address. i.e: X-Forwarded-For: host1, host2' type: string bind: description: The port to listen to, default is "0.0.0.0" type: string bodySizeLimit: description: The size limit of the POSTed element. pattern: ^\d+(KB|MB|GB|TB)$ type: string corsAllOrigins: description: Whitelist domains for CORS. type: string corsAllowCredentials: description: Add Access-Control-Allow-Credentials header. It's needed when a request's credentials mode is include type: string keepaliveTimeout: description: The timeout limit for keeping the connection alive. pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ type: string parse: description: The parse section of http plugin properties: customPatternPath: description: Path to the file that includes custom grok patterns. type: string estimateCurrentEvent: description: If true, use Fluent::Eventnow(current time) as a timestamp when time_key is specified. type: boolean expression: description: Specifies the regular expression for matching logs. Regular expression also supports i and m suffix. type: string grok: description: Grok Sections items: properties: keepTimeKey: description: If true, keep time field in the record. type: boolean name: description: The name of this grok section. type: string pattern: description: The pattern of grok. Required parameter. type: string timeFormat: description: Process value using specified format. This is available only when time_type is string type: string timeKey: description: Specify time field for event time. If the event doesn't have this field, current time is used. type: string timeZone: description: Use specified timezone. one can parse/format the time value in the specified timezone. type: string type: object type: array grokFailureKey: description: The key has grok failure reason. type: string grokPattern: description: The pattern of grok. type: string grokPatternSeries: description: Specify grok pattern series set. type: string id: description: The @id parameter specifies a unique name for the configuration. type: string keepTimeKey: description: If true, keep time field in th record. type: boolean localtime: description: If true, uses local time. type: boolean logLevel: description: The @log_level parameter specifies the plugin-specific logging level type: string multiLineStartRegexp: description: The regexp to match beginning of multiline. This is only for "multiline_grok". type: string timeFormat: description: Process value according to the specified format. This is available only when time_type is string type: string timeFormatFallbacks: description: Uses the specified time format as a fallback in the specified order. You can parse undetermined time format by using time_format_fallbacks. This options is enabled when time_type is mixed. type: string timeKey: description: Specify time field for event time. If the event doesn't have this field, current time is used. type: string timeType: description: parses/formats value according to this type, default is string enum: - float - unixtime - string - mixed type: string timeout: description: Specify timeout for parse processing. pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ type: string timezone: description: Uses the specified timezone. type: string type: description: The @type parameter specifies the type of the plugin. enum: - regexp - apache2 - apache_error - nginx - syslog - csv - tsv - ltsv - json - multiline - none - grok - multiline_grok type: string types: description: 'Specify types for converting field into another, i.e: types user_id:integer,paid:bool,paid_usd_amount:float' type: string utc: description: If true, uses UTC. type: boolean required: - type type: object port: description: The port to listen to, default is 9880. format: int32 maximum: 65535 minimum: 1 type: integer respondsWithEmptyImg: description: Responds with an empty GIF image of 1x1 pixel (rather than an empty string). type: boolean transport: description: The transport section of http plugin properties: caCertPath: description: for Cert generated type: string caPath: description: for Cert signed by public CA type: string caPrivateKeyPassphrase: type: string caPrivateKeyPath: type: string certPath: type: string certVerifier: description: other parameters type: string ciphers: type: string clientCertAuth: type: boolean insecure: type: boolean privateKeyPassphrase: type: string privateKeyPath: type: string protocol: description: 'The protocal name of this plugin, i.e: tls' type: string version: type: string type: object type: object id: description: The @id parameter specifies a unique name for the configuration. type: string label: description: The @label parameter is to route the input events to