diff --git a/example/seed-crds/10-crd-fluentd.fluent.io_clusterfilters.yaml b/example/seed-crds/10-crd-fluentd.fluent.io_clusterfilters.yaml new file mode 100644 index 00000000000..59f6f2b957e --- /dev/null +++ b/example/seed-crds/10-crd-fluentd.fluent.io_clusterfilters.yaml @@ -0,0 +1,432 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.3 + creationTimestamp: null + 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: + 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: + 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 + 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 + 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 + 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 + 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: {} diff --git a/example/seed-crds/10-crd-fluentd.fluent.io_clusterfluentdconfigs.yaml b/example/seed-crds/10-crd-fluentd.fluent.io_clusterfluentdconfigs.yaml new file mode 100644 index 00000000000..b60f7e7998b --- /dev/null +++ b/example/seed-crds/10-crd-fluentd.fluent.io_clusterfluentdconfigs.yaml @@ -0,0 +1,183 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.3 + creationTimestamp: null + 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 + 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: {} diff --git a/example/seed-crds/10-crd-fluentd.fluent.io_clusteroutputs.yaml b/example/seed-crds/10-crd-fluentd.fluent.io_clusteroutputs.yaml new file mode 100644 index 00000000000..4ef7d48b30e --- /dev/null +++ b/example/seed-crds/10-crd-fluentd.fluent.io_clusteroutputs.yaml @@ -0,0 +1,1512 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.3 + creationTimestamp: null + name: clusteroutputs.fluentd.fluent.io +spec: + group: fluentd.fluent.io + names: + kind: ClusterOutput + listKind: ClusterOutputList + plural: clusteroutputs + shortNames: + - cfdo + singular: clusteroutput + scope: Cluster + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: ClusterOutput is the Schema for the clusteroutputs 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: ClusterOutputSpec defines the desired state of ClusterOutput + properties: + outputs: + items: + description: Output defines all available output plugins and their + parameters + properties: + buffer: + description: buffer section + properties: + calcNumRecords: + description: Calculates the number of records, chunk size, + during chunk resume. + type: string + chunkFormat: + description: ChunkFormat specifies the chunk format for + calc_num_records. + enum: + - msgpack + - text + - auto + type: string + chunkLimitRecords: + description: The max number of events that each chunks can + store in it. + pattern: ^\d+(KB|MB|GB|TB)$ + type: string + chunkLimitSize: + description: 'Buffer parameters The max size of each chunks: + events will be written into chunks until the size of chunks + become this size Default: 8MB (memory) / 256MB (file)' + pattern: ^\d+(KB|MB|GB|TB)$ + type: string + compress: + description: Fluentd will decompress these compressed chunks + automatically before passing them to the output plugin + If gzip is set, Fluentd compresses data records before + writing to buffer chunks. Default:text. + enum: + - text + - gzip + type: string + delayedCommitTimeout: + description: The timeout (seconds) until output plugin decides + if the async write operation has failed. Default is 60s + pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ + type: string + disableChunkBackup: + description: Instead of storing unrecoverable chunks in + the backup directory, just discard them. This option is + new in Fluentd v1.2.6. + type: boolean + flushAtShutdown: + description: Flush parameters This specifies whether to + flush/write all buffer chunks on shutdown or not. + type: boolean + flushInterval: + description: FlushInterval defines the flush interval + pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ + type: string + flushMode: + description: 'FlushMode defines the flush mode: lazy: flushes/writes + chunks once per timekey interval: flushes/writes chunks + per specified time via flush_interval immediate: flushes/writes + chunks immediately after events are appended into chunks + default: equals to lazy if time is specified as chunk + key, interval otherwise' + enum: + - default + - lazy + - interval + - immediate + type: string + flushThreadCount: + description: The sleep interval (seconds) for threads to + wait for the next flush try(when no chunks are waiting) + pattern: ^\d+$ + 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 + overflowAction: + description: 'OverflowAtction defines the output plugin + behave when its buffer queue is full. Default: throw_exception' + type: string + path: + description: The path where buffer chunks are stored. This + field would make no effect in memory buffer plugin. + type: string + pathSuffix: + description: Changes the suffix of the buffer file. + type: string + queueLimitLength: + description: 'The queue length limitation of this buffer + plugin instance. Default: 0.95' + pattern: ^\d+.?\d+$ + type: string + queuedChunksLimitSize: + description: 'Limit the number of queued chunks. Default: + 1 If a smaller flush_interval is set, e.g. 1s, there are + lots of small queued chunks in the buffer. With file buffer, + it may consume a lot of fd resources when output destination + has a problem. This parameter mitigates such situations.' + minimum: 1 + type: integer + retryExponentialBackoffBase: + description: The base number of exponential backoff for + retries. + pattern: ^\d+(\.[0-9]{0,2})?$ + type: string + retryForever: + description: If true, plugin will ignore retry_timeout and + retry_max_times options and retry flushing forever. + type: boolean + retryMaxInterval: + description: The maximum interval (seconds) for exponential + backoff between retries while failing + pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ + type: string + retryMaxTimes: + description: 'The maximum number of times to retry to flush + the failed chunks. Default: none' + type: integer + retryRandomize: + description: If true, the output plugin will retry after + randomized interval not to do burst retries + type: boolean + retrySecondaryThreshold: + description: The ratio of retry_timeout to switch to use + the secondary while failing. + pattern: ^\d+.?\d+$ + type: string + retryTimeout: + description: Retry parameters The maximum time (seconds) + to retry to flush again the failed chunks, until the plugin + discards the buffer chunks + pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ + type: string + retryType: + description: Output plugin will retry periodically with + fixed intervals. + type: string + retryWait: + description: Wait in seconds before the next retry to flush + or constant factor of exponential backoff + pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ + type: string + tag: + description: The output plugins group events into chunks. + Chunk keys, specified as the argument of section, + control how to group events into chunks. If tag is empty, + which means blank Chunk Keys. Tag also supports Nested + Field, combination of Chunk Keys, placeholders, etc. See + https://docs.fluentd.org/configuration/buffer-section. + 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 + timeType: + description: parses/formats value according to this type, + default is *string + enum: + - float + - unixtime + - '*string' + - mixed + type: string + timekey: + description: Output plugin will flush chunks per specified + time (enabled when time is specified in chunk keys) + type: string + timekeyWait: + description: Output plugin will write chunks after timekey_wait + seconds later after timekey expiration + type: string + timezone: + description: Uses the specified timezone. + type: string + totalLimitSize: + description: 'The size limitation of this buffer plugin + instance Default: 512MB (memory) / 64GB (file)' + pattern: ^\d+(KB|MB|GB|TB)$ + type: string + type: + description: The @type parameter specifies the type of the + plugin. + enum: + - file + - memory + - file_single + type: string + utc: + description: If true, uses UTC. + type: boolean + required: + - path + - type + type: object + elasticsearch: + description: out_es plugin + properties: + host: + description: 'The hostname of your Elasticsearch node (default: + localhost).' + type: string + hosts: + description: Hosts defines a list of hosts if you want to + connect to more than one Elasticsearch nodes + type: string + indexName: + description: IndexName defines the placeholder syntax of + Fluentd plugin API. See https://docs.fluentd.org/configuration/buffer-section. + type: string + logstashFormat: + description: 'If true, Fluentd uses the conventional index + name format logstash-%Y.%m.%d (default: false). This option + supersedes the index_name option.' + type: boolean + logstashPrefix: + description: 'LogstashPrefix defines the logstash prefix + index name to write events when logstash_format is true + (default: logstash).' + type: string + password: + description: Optional, The login credentials to connect + to Elasticsearch + 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 + path: + description: 'Path defines the REST API endpoint of Elasticsearch + to post write requests (default: nil).' + type: string + port: + description: 'The port number of your Elasticsearch node + (default: 9200).' + format: int32 + maximum: 65535 + minimum: 1 + type: integer + scheme: + description: 'Specify https if your Elasticsearch endpoint + supports SSL (default: http).' + type: string + user: + description: Optional, The login credentials to connect + to Elasticsearch + 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 + format: + description: 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 + forward: + description: out_forward plugin + properties: + ackResponseTimeout: + description: This option is used when require_ack_response + is true. This default value is based on popular tcp_syn_retries. + pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ + type: string + connectTimeout: + description: The connection timeout for the socket. When + the connection is timed out during the connection establishment, + Errno::ETIMEDOUT error is raised. + pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ + type: string + dnsRoundRobin: + description: Enable client-side DNS round robin. Uniform + randomly pick an IP address to send data when a hostname + has several IP addresses. heartbeat_type udp is not available + with dns_round_robintrue. Use heartbeat_type tcp or heartbeat_type + none. + type: boolean + expireDnsCache: + description: Sets TTL to expire DNS cache in seconds. Set + 0 not to use DNS Cache. + pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ + type: string + hardTimeout: + description: The hard timeout used to detect server failure. + The default value is equal to the send_timeout parameter. + pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ + type: string + heartbeatInterval: + description: The interval of the heartbeat packer. + pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ + type: string + heartbeatType: + description: Specifies the transport protocol for heartbeats. + Set none to disable. + enum: + - transport + - tcp + - udp + - none + type: string + ignoreNetworkErrorsAtStartup: + description: Ignores DNS resolution and errors at startup + time. + type: boolean + keepalive: + description: Enables the keepalive connection. + type: boolean + keepaliveTimeout: + description: Timeout for keepalive. Default value is nil + which means to keep the connection alive as long as possible. + pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ + type: string + phiFailureDetector: + description: Use the "Phi accrual failure detector" to detect + server failure. + type: boolean + phiThreshold: + description: The threshold parameter used to detect server + faults. + type: integer + recoverWait: + description: The wait time before accepting a server fault + recovery. + pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ + type: string + requireAckResponse: + description: Changes the protocol to at-least-once. The + plugin waits the ack from destination's in_forward plugin. + type: boolean + security: + description: ServiceDiscovery defines the security section + 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 + sendTimeout: + description: The timeout time when sending event logs. + pattern: ^\d+(\.[0-9]{0,2})?(s|m|h|d)?$ + type: string + servers: + description: Servers defines the servers section, at least + one is required + items: + description: Server defines the common parameters for + the server plugin + properties: + host: + description: Host defines the IP address or host name + of the server. + type: string + id: + description: The @id parameter specifies a unique + name for the configuration. + type: string + logLevel: + description: The @log_level parameter specifies the + plugin-specific logging level + type: string + name: + description: Name defines the name of the server. + Used for logging and certificate verification in + TLS transport (when the host is the address). + type: string + password: + description: Password defines the password for authentication. + 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 + port: + description: Port defines the port number of the host. + Note that both TCP packets (event stream) and UDP + packets (heartbeat messages) are sent to this port. + type: string + sharedKey: + description: SharedKey defines the shared key per + server. + type: string + standby: + description: Standby marks a node as the standby node + for an Active-Standby model between Fluentd nodes. + type: string + type: + description: The @type parameter specifies the type + of the plugin. + type: string + username: + description: Username defines the username for authentication. + 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 + weight: + description: Weight defines the load balancing weight + type: string + type: object + type: array + serviceDiscovery: + description: ServiceDiscovery defines the service_discovery + section + properties: + confEncoding: + description: The encoding of the configuration file. + type: string + dnsLookup: + description: DnsLookup resolves the hostname to IP address + of the SRV's Target. + type: string + dnsServerHost: + description: DnsServerHost defines the hostname of the + DNS server to request the SRV record. + type: string + hostname: + description: The name in RFC2782. + type: string + id: + description: The @id parameter specifies a unique name + for the configuration. + type: string + interval: + description: Interval defines the interval of sending + requests to DNS server. + type: string + logLevel: + description: The @log_level parameter specifies the + plugin-specific logging level + type: string + path: + description: The path of the target list. Default is + '/etc/fluent/sd.yaml' + type: string + proto: + description: Proto without the underscore in RFC2782. + type: string + server: + description: The server section of this plugin + properties: + host: + description: Host defines the IP address or host + name of the server. + type: string + id: + description: The @id parameter specifies a unique + name for the configuration. + type: string + logLevel: + description: The @log_level parameter specifies + the plugin-specific logging level + type: string + name: + description: Name defines the name of the server. + Used for logging and certificate verification + in TLS transport (when the host is the address). + type: string + password: + description: Password defines the password for authentication. + 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 + port: + description: Port defines the port number of the + host. Note that both TCP packets (event stream) + and UDP packets (heartbeat messages) are sent + to this port. + type: string + sharedKey: + description: SharedKey defines the shared key per + server. + type: string + standby: + description: Standby marks a node as the standby + node for an Active-Standby model between Fluentd + nodes. + type: string + type: + description: The @type parameter specifies the type + of the plugin. + type: string + username: + description: Username defines the username for authentication. + 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 + weight: + description: Weight defines the load balancing weight + type: string + type: object + service: + description: Service without the underscore in RFC2782. + type: string + type: + description: The @type parameter specifies the type + of the plugin. + enum: + - static + - file + - srv + type: string + required: + - type + type: object + tlsAllowSelfSignedCert: + description: Allows self-signed certificates or not. + type: boolean + tlsCertLogicalStoreName: + description: The certificate logical store name on Windows + system certstore. This parameter is for Windows only. + type: string + tlsCertPath: + description: The additional CA certificate path for TLS. + type: string + tlsCertThumbprint: + description: The certificate thumbprint for searching from + Windows system certstore. This parameter is for Windows + only. + type: string + tlsCertUseEnterpriseStore: + description: Enables the certificate enterprise store on + Windows system certstore. This parameter is for Windows + only. + type: boolean + tlsCiphers: + description: The cipher configuration of TLS transport. + type: string + tlsClientCertPath: + description: The client certificate path for TLS. + type: string + tlsClientPrivateKeyPassphrase: + description: The TLS private key passphrase for the client. + type: string + tlsClientPrivateKeyPath: + description: The client private key path for TLS. + type: string + tlsInsecureMode: + description: Skips all verification of certificates or not. + type: boolean + tlsVerifyHostname: + description: Verifies hostname of servers and certificates + or not in TLS transport. + type: boolean + tlsVersion: + description: The default version of TLS transport. + enum: + - TLSv1_1 + - TLSv1_2 + type: string + verifyConnectionAtStartup: + description: Verify that a connection can be made with one + of out_forward nodes at the time of startup. + type: boolean + required: + - servers + type: object + http: + description: out_http plugin + properties: + auth: + description: Auth section for this plugin + properties: + auth: + description: The method for HTTP authentication. Now + only basic. + type: string + password: + description: The password for basic authentication. + 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: The username for basic authentication. + 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 + contentType: + description: ContentType defines Content-Type for HTTP request. + out_http automatically set Content-Type for built-in formatters + when this parameter is not specified. + type: string + endpoint: + description: Endpoint defines the endpoint for HTTP request. + If you want to use HTTPS, use https prefix. + type: string + errorResponseAsUnrecoverable: + description: Raise UnrecoverableError when the response + code is not SUCCESS. + type: boolean + headers: + description: Headers defines the additional headers for + HTTP request. + type: string + headersFromPlaceholders: + description: Additional placeholder based headers for HTTP + request. If you want to use tag or record field, use this + parameter instead of headers. + type: string + httpMethod: + description: HttpMethod defines the method for HTTP request. + enum: + - post + - put + type: string + jsonArray: + description: JsonArray defines whether to use the array + format of JSON or not + type: boolean + openTimeout: + description: OpenTimeout defines the connection open timeout + in seconds. + type: integer + proxy: + description: Proxy defines the proxy for HTTP request. + type: string + readTimeout: + description: ReadTimeout defines the read timeout in seconds. + type: integer + retryableResponseCodes: + description: The list of retryable response codes. If the + response code is included in this list, out_http retries + the buffer flush. + type: string + sslTimeout: + description: SslTimeout defines the TLS timeout in seconds. + type: integer + tlsCaCertPath: + description: TlsCaCertPath defines the CA certificate path + for TLS. + type: string + tlsCiphers: + description: TlsCiphers defines the cipher suites configuration + of TLS. + type: string + tlsClientCertPath: + description: TlsClientCertPath defines the client certificate + path for TLS. + type: string + tlsPrivateKeyPassphrase: + description: TlsPrivateKeyPassphrase defines the client + private key passphrase for TLS. + type: string + tlsPrivateKeyPath: + description: TlsPrivateKeyPath defines the client private + key path for TLS. + type: string + tlsVerifyMode: + description: TlsVerifyMode defines the verify mode of TLS. + enum: + - peer + - none + type: string + tlsVersion: + description: TlsVersion defines the default version of TLS + transport. + enum: + - TLSv1_1 + - TLSv1_2 + type: string + type: object + inject: + description: 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 + kafka: + description: out_kafka plugin + properties: + brokers: + description: 'The list of all seed brokers, with their host + and port information. Default: localhost:9092' + type: string + compressionCodec: + description: 'The codec the producer uses to compress messages + (default: nil).' + enum: + - gzip + - snappy + type: string + defaultTopic: + description: 'The name of the default topic. (default: nil)' + type: string + requiredAcks: + description: The number of acks required per request. + type: integer + topicKey: + description: The field name for the target topic. If the + field value is app, this plugin writes events to the app + topic. + type: string + useEventTime: + description: Set fluentd event time to Kafka's CreateTime. + type: boolean + type: object + logLevel: + description: The @log_level parameter specifies the plugin-specific + logging level + type: string + loki: + description: out_loki plugin + properties: + autoKubernetesLabels: + description: If set to true, it will add all Kubernetes + labels to the Stream labels. + enum: + - "on" + - "off" + type: string + host: + description: Loki hostname or IP address. + type: string + httpPassword: + description: Password for user defined in HTTP_User Set + HTTP basic authentication password + 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 + httpUser: + description: Set HTTP basic authentication user name. + 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 + labelKeys: + description: Optional list of record keys that will be placed + as stream labels. This configuration property is for records + key only. + items: + type: string + type: array + labels: + description: Stream labels for API request. It can be multiple + comma separated of strings specifying key=value pairs. + In addition to fixed parameters, it also allows to add + custom record keys (similar to label_keys property). + items: + type: string + type: array + lineFormat: + description: Format to use when flattening the record to + a log line. Valid values are json or key_value. If set + to json, the log line sent to Loki will be the Fluentd + record dumped as JSON. If set to key_value, the log line + will be each item in the record concatenated together + (separated by a single space) in the format. + enum: + - json + - key_value + type: string + port: + description: Loki TCP port + format: int32 + maximum: 65535 + minimum: 1 + type: integer + tenantID: + description: Tenant ID used by default to push logs to Loki. + If omitted or empty it assumes Loki is running in single-tenant + mode and no X-Scope-OrgID header is sent. + 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 + tls: + description: Fluentd 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 + required: + - host + type: object + opensearch: + description: out_opensearch plugin + properties: + host: + description: 'The hostname of your Opensearch node (default: + localhost).' + type: string + hosts: + description: Hosts defines a list of hosts if you want to + connect to more than one Openearch nodes + type: string + indexName: + description: IndexName defines the placeholder syntax of + Fluentd plugin API. See https://docs.fluentd.org/configuration/buffer-section. + type: string + logstashFormat: + description: 'If true, Fluentd uses the conventional index + name format logstash-%Y.%m.%d (default: false). This option + supersedes the index_name option.' + type: boolean + logstashPrefix: + description: 'LogstashPrefix defines the logstash prefix + index name to write events when logstash_format is true + (default: logstash).' + type: string + password: + description: Optional, The login credentials to connect + to Opensearch + 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 + path: + description: 'Path defines the REST API endpoint of Opensearch + to post write requests (default: nil).' + type: string + port: + description: 'The port number of your Opensearch node (default: + 9200).' + format: int32 + maximum: 65535 + minimum: 1 + type: integer + scheme: + description: 'Specify https if your Opensearch endpoint + supports SSL (default: http).' + type: string + user: + description: Optional, The login credentials to connect + to Opensearch + 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 + s3: + description: out_s3 plugin + properties: + awsKeyId: + description: The AWS access key id. + type: string + awsSecKey: + description: The AWS secret key. + type: string + path: + description: The path prefix of the files on S3. + type: string + proxyUri: + description: The proxy URL. + type: string + s3Bucket: + description: The Amazon S3 bucket name. + type: string + s3ObjectKeyFormat: + description: The actual S3 path. This is interpolated to + the actual path. + type: string + s3Region: + description: The Amazon S3 region name + type: string + sslVerifyPeer: + description: Verify the SSL certificate of the endpoint. + type: boolean + storeAs: + description: The compression type. + enum: + - gzip + - lzo + - json + - txt + type: string + type: object + stdout: + description: out_stdout plugin + type: object + type: object + type: array + type: object + status: + description: ClusterOutputStatus defines the observed state of ClusterOutput + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/example/seed-crds/10-crd-fluentd.fluent.io_filters.yaml b/example/seed-crds/10-crd-fluentd.fluent.io_filters.yaml new file mode 100644 index 00000000000..f1c37996414 --- /dev/null +++ b/example/seed-crds/10-crd-fluentd.fluent.io_filters.yaml @@ -0,0 +1,432 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.3 + creationTimestamp: null + name: filters.fluentd.fluent.io +spec: + group: fluentd.fluent.io + names: + kind: Filter + listKind: FilterList + plural: filters + shortNames: + - fdf + singular: filter + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: Filter is the Schema for the filters 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: FilterSpec defines the desired state of Filter + properties: + filters: + items: + description: Filter defines all available filter plugins and their + parameters. + properties: + 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: + 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 + 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 + 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 + 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 + type: object + type: array + type: object + status: + description: FilterStatus defines the observed state of Filter + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/example/seed-crds/10-crd-fluentd.fluent.io_fluentdconfigs.yaml b/example/seed-crds/10-crd-fluentd.fluent.io_fluentdconfigs.yaml new file mode 100644 index 00000000000..0182fbf9cee --- /dev/null +++ b/example/seed-crds/10-crd-fluentd.fluent.io_fluentdconfigs.yaml @@ -0,0 +1,265 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.3 + creationTimestamp: null + name: fluentdconfigs.fluentd.fluent.io +spec: + group: fluentd.fluent.io + names: + kind: FluentdConfig + listKind: FluentdConfigList + plural: fluentdconfigs + shortNames: + - fdc + singular: fluentdconfig + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: FluentdConfig is the Schema for the fluentdconfigs 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: FluentdConfigSpec defines the desired state of FluentdConfig + 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 + 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 + filterSelector: + description: Select namespaced 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 + outputSelector: + description: Select namespaced 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 + 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 + type: object + status: + description: FluentdConfigStatus defines the observed state of FluentdConfig + 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: {} diff --git a/example/seed-crds/10-crd-fluentd.fluent.io_fluentds.yaml b/example/seed-crds/10-crd-fluentd.fluent.io_fluentds.yaml new file mode 100644 index 00000000000..e7ee0e631d1 --- /dev/null +++ b/example/seed-crds/10-crd-fluentd.fluent.io_fluentds.yaml @@ -0,0 +1,1922 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.3 + creationTimestamp: null + name: fluentds.fluentd.fluent.io +spec: + group: fluentd.fluent.io + names: + kind: Fluentd + listKind: FluentdList + plural: fluentds + shortNames: + - fd + singular: fluentd + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: Fluentd is the Schema for the fluentds 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: FluentdSpec defines the desired state of Fluentd + properties: + affinity: + description: Pod's scheduling constraints. + properties: + nodeAffinity: + description: Describes node affinity scheduling rules for the + pod. + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods to + nodes that satisfy the affinity expressions specified by + this field, but it may choose a node that violates one or + more of the expressions. The node that is most preferred + is the one with the greatest sum of weights, i.e. for each + node that meets all of the scheduling requirements (resource + request, requiredDuringScheduling affinity expressions, + etc.), compute a sum by iterating through the elements of + this field and adding "weight" to the sum if the node matches + the corresponding matchExpressions; the node(s) with the + highest sum are the most preferred. + items: + description: An empty preferred scheduling term matches + all objects with implicit weight 0 (i.e. it's a no-op). + A null preferred scheduling term matches no objects (i.e. + is also a no-op). + properties: + preference: + description: A node selector term, associated with the + corresponding weight. + properties: + matchExpressions: + description: A list of node selector requirements + by node's labels. + items: + description: A node selector requirement is a + selector that contains values, a key, and an + operator that relates the key and values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators are + In, NotIn, Exists, DoesNotExist. Gt, and + Lt. + type: string + values: + description: 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. If the operator is Gt or + Lt, the values array must have a single + element, which will be interpreted as an + integer. This array is replaced during a + strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements + by node's fields. + items: + description: A node selector requirement is a + selector that contains values, a key, and an + operator that relates the key and values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators are + In, NotIn, Exists, DoesNotExist. Gt, and + Lt. + type: string + values: + description: 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. If the operator is Gt or + Lt, the values array must have a single + element, which will be interpreted as an + integer. This array is replaced during a + strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + weight: + description: Weight associated with matching the corresponding + nodeSelectorTerm, in the range 1-100. + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the affinity requirements specified by this + field are not met at scheduling time, the pod will not be + scheduled onto the node. If the affinity requirements specified + by this field cease to be met at some point during pod execution + (e.g. due to an update), the system may or may not try to + eventually evict the pod from its node. + properties: + nodeSelectorTerms: + description: Required. A list of node selector terms. + The terms are ORed. + items: + description: A null or empty node selector term matches + no objects. The requirements of them are ANDed. The + TopologySelectorTerm type implements a subset of the + NodeSelectorTerm. + properties: + matchExpressions: + description: A list of node selector requirements + by node's labels. + items: + description: A node selector requirement is a + selector that contains values, a key, and an + operator that relates the key and values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators are + In, NotIn, Exists, DoesNotExist. Gt, and + Lt. + type: string + values: + description: 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. If the operator is Gt or + Lt, the values array must have a single + element, which will be interpreted as an + integer. This array is replaced during a + strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements + by node's fields. + items: + description: A node selector requirement is a + selector that contains values, a key, and an + operator that relates the key and values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators are + In, NotIn, Exists, DoesNotExist. Gt, and + Lt. + type: string + values: + description: 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. If the operator is Gt or + Lt, the values array must have a single + element, which will be interpreted as an + integer. This array is replaced during a + strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + type: array + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + description: Describes pod affinity scheduling rules (e.g. co-locate + this pod in the same node, zone, etc. as some other pod(s)). + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods to + nodes that satisfy the affinity expressions specified by + this field, but it may choose a node that violates one or + more of the expressions. The node that is most preferred + is the one with the greatest sum of weights, i.e. for each + node that meets all of the scheduling requirements (resource + request, requiredDuringScheduling affinity expressions, + etc.), compute a sum by iterating through the elements of + this field and adding "weight" to the sum if the node has + pods which matches the corresponding podAffinityTerm; the + node(s) with the highest sum are the most preferred. + items: + description: The weights of all of the matched WeightedPodAffinityTerm + fields are added per-node to find the most preferred node(s) + properties: + podAffinityTerm: + description: Required. A pod affinity term, associated + with the corresponding weight. + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + 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 + namespaceSelector: + description: A label query over the set of namespaces + that the term applies to. The term is applied + to the union of the namespaces selected by this + field and the ones listed in the namespaces field. + null selector and null or empty namespaces list + means "this pod's namespace". An empty selector + ({}) matches all namespaces. + 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 + namespaces: + description: namespaces specifies a static list + of namespace names that the term applies to. The + term is applied to the union of the namespaces + listed in this field and the ones selected by + namespaceSelector. null or empty namespaces list + and null namespaceSelector means "this pod's namespace". + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the pods + matching the labelSelector in the specified namespaces, + where co-located is defined as running on a node + whose value of the label with key topologyKey + matches that of any node on which any of the selected + pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + weight: + description: weight associated with matching the corresponding + podAffinityTerm, in the range 1-100. + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the affinity requirements specified by this + field are not met at scheduling time, the pod will not be + scheduled onto the node. If the affinity requirements specified + by this field cease to be met at some point during pod execution + (e.g. due to a pod label update), the system may or may + not try to eventually evict the pod from its node. When + there are multiple elements, the lists of nodes corresponding + to each podAffinityTerm are intersected, i.e. all terms + must be satisfied. + items: + description: Defines a set of pods (namely those matching + the labelSelector relative to the given namespace(s)) + that this pod should be co-located (affinity) or not co-located + (anti-affinity) with, where co-located is defined as running + on a node whose value of the label with key + matches that of any node on which a pod of the set of + pods is running + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + 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 + namespaceSelector: + description: A label query over the set of namespaces + that the term applies to. The term is applied to the + union of the namespaces selected by this field and + the ones listed in the namespaces field. null selector + and null or empty namespaces list means "this pod's + namespace". An empty selector ({}) matches all namespaces. + 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 + namespaces: + description: namespaces specifies a static list of namespace + names that the term applies to. The term is applied + to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. null or + empty namespaces list and null namespaceSelector means + "this pod's namespace". + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where + co-located is defined as running on a node whose value + of the label with key topologyKey matches that of + any node on which any of the selected pods is running. + Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + description: Describes pod anti-affinity scheduling rules (e.g. + avoid putting this pod in the same node, zone, etc. as some + other pod(s)). + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods to + nodes that satisfy the anti-affinity expressions specified + by this field, but it may choose a node that violates one + or more of the expressions. The node that is most preferred + is the one with the greatest sum of weights, i.e. for each + node that meets all of the scheduling requirements (resource + request, requiredDuringScheduling anti-affinity expressions, + etc.), compute a sum by iterating through the elements of + this field and adding "weight" to the sum if the node has + pods which matches the corresponding podAffinityTerm; the + node(s) with the highest sum are the most preferred. + items: + description: The weights of all of the matched WeightedPodAffinityTerm + fields are added per-node to find the most preferred node(s) + properties: + podAffinityTerm: + description: Required. A pod affinity term, associated + with the corresponding weight. + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + 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 + namespaceSelector: + description: A label query over the set of namespaces + that the term applies to. The term is applied + to the union of the namespaces selected by this + field and the ones listed in the namespaces field. + null selector and null or empty namespaces list + means "this pod's namespace". An empty selector + ({}) matches all namespaces. + 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 + namespaces: + description: namespaces specifies a static list + of namespace names that the term applies to. The + term is applied to the union of the namespaces + listed in this field and the ones selected by + namespaceSelector. null or empty namespaces list + and null namespaceSelector means "this pod's namespace". + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the pods + matching the labelSelector in the specified namespaces, + where co-located is defined as running on a node + whose value of the label with key topologyKey + matches that of any node on which any of the selected + pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + weight: + description: weight associated with matching the corresponding + podAffinityTerm, in the range 1-100. + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the anti-affinity requirements specified by + this field are not met at scheduling time, the pod will + not be scheduled onto the node. If the anti-affinity requirements + specified by this field cease to be met at some point during + pod execution (e.g. due to a pod label update), the system + may or may not try to eventually evict the pod from its + node. When there are multiple elements, the lists of nodes + corresponding to each podAffinityTerm are intersected, i.e. + all terms must be satisfied. + items: + description: Defines a set of pods (namely those matching + the labelSelector relative to the given namespace(s)) + that this pod should be co-located (affinity) or not co-located + (anti-affinity) with, where co-located is defined as running + on a node whose value of the label with key + matches that of any node on which a pod of the set of + pods is running + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + 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 + namespaceSelector: + description: A label query over the set of namespaces + that the term applies to. The term is applied to the + union of the namespaces selected by this field and + the ones listed in the namespaces field. null selector + and null or empty namespaces list means "this pod's + namespace". An empty selector ({}) matches all namespaces. + 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 + namespaces: + description: namespaces specifies a static list of namespace + names that the term applies to. The term is applied + to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. null or + empty namespaces list and null namespaceSelector means + "this pod's namespace". + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where + co-located is defined as running on a node whose value + of the label with key topologyKey matches that of + any node on which any of the selected pods is running. + Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + args: + description: Fluentd Watcher command line arguments. + items: + type: string + type: array + buffer: + description: Buffer definition + properties: + DisableBufferVolume: + description: Enabled buffer pvc by default. + type: boolean + emptyDir: + description: Represents an empty directory for a pod. Empty directory + volumes support ownership management and SELinux relabeling. + properties: + medium: + description: 'medium represents what type of storage medium + should back this directory. The default is "" which means + to use the node''s default medium. Must be an empty string + (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + description: 'sizeLimit is the total amount of local storage + required for this EmptyDir volume. The size limit is also + applicable for memory medium. The maximum usage on memory + medium EmptyDir would be the minimum value between the SizeLimit + specified here and the sum of memory limits of all containers + in a pod. The default is nil which means that the limit + is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir' + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + hostPath: + description: Volume definition. + properties: + path: + description: 'path of the directory on the host. If the path + is a symlink, it will follow the link to the real path. + More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' + type: string + type: + description: 'type for HostPath Volume Defaults to "" More + info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' + type: string + required: + - path + type: object + pvc: + description: PVC definition + 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: + description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' + type: object + spec: + description: 'spec defines the desired characteristics of + a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' + properties: + accessModes: + description: 'accessModes contains the desired access + modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' + items: + type: string + type: array + dataSource: + description: 'dataSource field can be used to specify + either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) + * An existing PVC (PersistentVolumeClaim) If the provisioner + or an external controller can support the specified + data source, it will create a new volume based on the + contents of the specified data source. When the AnyVolumeDataSource + feature gate is enabled, dataSource contents will be + copied to dataSourceRef, and dataSourceRef contents + will be copied to dataSource when dataSourceRef.namespace + is not specified. If the namespace is specified, then + dataSourceRef will not be copied to dataSource.' + properties: + apiGroup: + description: APIGroup is the group for the resource + being referenced. If APIGroup is not specified, + the specified Kind must be in the core API group. + For any other third-party types, APIGroup is required. + type: string + kind: + description: Kind is the type of resource being referenced + type: string + name: + description: Name is the name of resource being referenced + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + description: 'dataSourceRef specifies the object from + which to populate the volume with data, if a non-empty + volume is desired. This may be any object from a non-empty + API group (non core object) or a PersistentVolumeClaim + object. When this field is specified, volume binding + will only succeed if the type of the specified object + matches some installed volume populator or dynamic provisioner. + This field will replace the functionality of the dataSource + field and as such if both fields are non-empty, they + must have the same value. For backwards compatibility, + when namespace isn''t specified in dataSourceRef, both + fields (dataSource and dataSourceRef) will be set to + the same value automatically if one of them is empty + and the other is non-empty. When namespace is specified + in dataSourceRef, dataSource isn''t set to the same + value and must be empty. There are three important differences + between dataSource and dataSourceRef: * While dataSource + only allows two specific types of objects, dataSourceRef + allows any non-core object, as well as PersistentVolumeClaim + objects. * While dataSource ignores disallowed values + (dropping them), dataSourceRef preserves all values, + and generates an error if a disallowed value is specified. + * While dataSource only allows local objects, dataSourceRef + allows objects in any namespaces. (Beta) Using this + field requires the AnyVolumeDataSource feature gate + to be enabled. (Alpha) Using the namespace field of + dataSourceRef requires the CrossNamespaceVolumeDataSource + feature gate to be enabled.' + properties: + apiGroup: + description: APIGroup is the group for the resource + being referenced. If APIGroup is not specified, + the specified Kind must be in the core API group. + For any other third-party types, APIGroup is required. + type: string + kind: + description: Kind is the type of resource being referenced + type: string + name: + description: Name is the name of resource being referenced + type: string + namespace: + description: Namespace is the namespace of resource + being referenced Note that when a namespace is specified, + a gateway.networking.k8s.io/ReferenceGrant object + is required in the referent namespace to allow that + namespace's owner to accept the reference. See the + ReferenceGrant documentation for details. (Alpha) + This field requires the CrossNamespaceVolumeDataSource + feature gate to be enabled. + type: string + required: + - kind + - name + type: object + resources: + description: 'resources represents the minimum resources + the volume should have. If RecoverVolumeExpansionFailure + feature is enabled users are allowed to specify resource + requirements that are lower than previous value but + must still be higher than capacity recorded in the status + field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' + properties: + claims: + description: "Claims lists the names of resources, + defined in spec.resourceClaims, that are used by + this container. \n This is an alpha field and requires + enabling the DynamicResourceAllocation feature gate. + \n This field is immutable." + items: + description: ResourceClaim references one entry + in PodSpec.ResourceClaims. + properties: + name: + description: Name must match the name of one + entry in pod.spec.resourceClaims of the Pod + where this field is used. It makes that resource + available inside a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount + of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount + of compute resources required. If Requests is omitted + for a container, it defaults to Limits if that is + explicitly specified, otherwise to an implementation-defined + value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + type: object + type: object + selector: + description: selector is a label query over volumes to + consider for binding. + 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 + storageClassName: + description: 'storageClassName is the name of the StorageClass + required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' + type: string + volumeMode: + description: volumeMode defines what type of volume is + required by the claim. Value of Filesystem is implied + when not included in claim spec. + type: string + volumeName: + description: volumeName is the binding reference to the + PersistentVolume backing this claim. + type: string + type: object + status: + description: 'status represents the current information/status + of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' + properties: + accessModes: + description: 'accessModes contains the actual access modes + the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' + items: + type: string + type: array + allocatedResources: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: allocatedResources is the storage resource + within AllocatedResources tracks the capacity allocated + to a PVC. It may be larger than the actual capacity + when a volume expansion operation is requested. For + storage quota, the larger value from allocatedResources + and PVC.spec.resources is used. If allocatedResources + is not set, PVC.spec.resources alone is used for quota + calculation. If a volume expansion capacity request + is lowered, allocatedResources is only lowered if there + are no expansion operations in progress and if the actual + volume capacity is equal or lower than the requested + capacity. This is an alpha field and requires enabling + RecoverVolumeExpansionFailure feature. + type: object + capacity: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: capacity represents the actual resources + of the underlying volume. + type: object + conditions: + description: conditions is the current Condition of persistent + volume claim. If underlying persistent volume is being + resized then the Condition will be set to 'ResizeStarted'. + items: + description: PersistentVolumeClaimCondition contails + details about state of pvc + properties: + lastProbeTime: + description: lastProbeTime is the time we probed + the condition. + format: date-time + type: string + lastTransitionTime: + description: lastTransitionTime is the time the + condition transitioned from one status to another. + format: date-time + type: string + message: + description: message is the human-readable message + indicating details about last transition. + type: string + reason: + description: reason is a unique, this should be + a short, machine understandable string that gives + the reason for condition's last transition. If + it reports "ResizeStarted" that means the underlying + persistent volume is being resized. + type: string + status: + type: string + type: + description: PersistentVolumeClaimConditionType + is a valid value of PersistentVolumeClaimCondition.Type + type: string + required: + - status + - type + type: object + type: array + phase: + description: phase represents the current phase of PersistentVolumeClaim. + type: string + resizeStatus: + description: resizeStatus stores status of resize operation. + ResizeStatus is not set by default but when expansion + is complete resizeStatus is set to empty string by resize + controller or kubelet. This is an alpha field and requires + enabling RecoverVolumeExpansionFailure feature. + type: string + type: object + type: object + type: object + disableService: + description: By default will build the related service according to + the globalinputs definition. + type: boolean + fluentdCfgSelector: + description: FluentdCfgSelector defines the selectors to select the + fluentd config CRs. + 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 + globalInputs: + description: Fluentd global inputs. + items: + description: Input defines all available input plugins and their + parameters + properties: + 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: + 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 + 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 + 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 + 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