The module lifecycle stage: Experimental
The module has requirements for installation
The Deckhouse Kubernetes Platform installs CRDs but does not remove them when a module is disabled. If you no longer need the created CRDs, delete them.
ClusterSecurityEventConfig
Scope: Cluster
Version: v1alpha1
-
objectspecDefines which sources are enabled and which destinations they should be shipped to.
-
stringspec.defaultSeverityThreshold
Required value
Minimal severity to ship (inclusive).Allowed values:
Low,Medium,High,Critical -
array of stringsspec.destinations
Required value
List of ClusterSecurityEventDestination names. -
array of stringsspec.enabledSources
If set, only these sources are enabled. If omitted, all sources are enabled. Expected format:
- clusterSecurityEventShipper/
/<source> - podSecurityEventShipper/<namespace>/
/<source>
-
stringspec.enabledSources.Element of the array
Pattern:
^(clusterSecurityEventShipper/[^/]+/[^/]+|podSecurityEventShipper/[^/]+/[^/]+/[^/]+)$
- clusterSecurityEventShipper/
-
array of stringsspec.enabledSourcesMasks
If set, only sources matching these glob-style masks are enabled. If omitted, all sources are enabled. Masks use ‘*’ to match any substring (including ‘/’). You must set either enabledSources or enabledSourcesMasks, but not both. Expected format:
- clusterSecurityEventShipper/
/<source> - podSecurityEventShipper/<namespace>/
/<source> Examples: - podSecurityEventShipper/*
- clusterSecurityEventShipper/kube-audit/*
-
stringspec.enabledSourcesMasks.Element of the array
Pattern:
^(clusterSecurityEventShipper/.+|podSecurityEventShipper/.+)$
- clusterSecurityEventShipper/
-
-
objectstatusCurrent status of this resource.
-
array of objectsstatus.conditionsRepresents the latest available observations of an object’s state.
-
stringstatus.conditions.lastTransitionTime
-
stringstatus.conditions.message
Maximum length:
32768 -
integerstatus.conditions.observedGeneration
-
stringstatus.conditions.reason
Length:
1..1024 -
stringstatus.conditions.status
Allowed values:
True,False,Unknown -
stringstatus.conditions.type
Maximum length:
316
-
-
integerstatus.observedGenerationThe generation observed by the controller.
-
ClusterSecurityEventDestination
Scope: Cluster
Version: v1alpha1
-
objectspecDescribes where to send security events. Fields are designed to be translated to deckhouse.io/log-shipper ClusterLogDestination.
-
objectspec.console
-
stringspec.console.target
Default:
StdoutAllowed values:
Stdout,Stderr
-
-
objectspec.elasticsearch
-
objectspec.elasticsearch.auth
-
stringspec.elasticsearch.auth.password
-
stringspec.elasticsearch.auth.strategy
Default:
NoneAllowed values:
None,Bearer,Basic -
stringspec.elasticsearch.auth.token
-
stringspec.elasticsearch.auth.username
-
-
stringspec.elasticsearch.endpoint
Required value
-
stringspec.elasticsearch.index
-
objectspec.elasticsearch.tls
-
stringspec.elasticsearch.tls.caBase64-encoded PEM with the CA certificate chain used to verify the destination server certificate.
-
booleanspec.elasticsearch.tls.verifyCertificate
Default:
true -
booleanspec.elasticsearch.tls.verifyHostname
Default:
true
-
-
-
objectspec.file
-
stringspec.file.path
Required value
-
-
objectspec.kafka
-
array of stringsspec.kafka.brokers
Required value
-
objectspec.kafka.sasl
-
stringspec.kafka.sasl.mechanism
Allowed values:
Plain,SCRAM-SHA-256,SCRAM-SHA-512 -
stringspec.kafka.sasl.password
-
stringspec.kafka.sasl.username
-
-
objectspec.kafka.tls
-
stringspec.kafka.tls.caBase64-encoded PEM with the CA certificate chain used to verify the destination server certificate.
-
booleanspec.kafka.tls.verifyCertificate
Default:
true -
booleanspec.kafka.tls.verifyHostname
Default:
true
-
-
stringspec.kafka.topic
Required value
-
-
objectspec.loki
-
objectspec.loki.auth
-
stringspec.loki.auth.password
-
stringspec.loki.auth.strategy
Default:
NoneAllowed values:
None,Bearer,Basic -
stringspec.loki.auth.token
-
stringspec.loki.auth.username
-
-
stringspec.loki.endpoint
Required value
-
objectspec.loki.tls
-
stringspec.loki.tls.caBase64-encoded PEM with the CA certificate chain used to verify the destination server certificate.
-
booleanspec.loki.tls.verifyCertificate
Default:
true -
booleanspec.loki.tls.verifyHostname
Default:
true
-
-
-
objectspec.splunkHEC
-
stringspec.splunkHEC.endpoint
Required value
-
objectspec.splunkHEC.tls
-
stringspec.splunkHEC.tls.caBase64-encoded PEM with the CA certificate chain used to verify the destination server certificate.
-
booleanspec.splunkHEC.tls.verifyCertificate
Default:
true -
booleanspec.splunkHEC.tls.verifyHostname
Default:
true
-
-
stringspec.splunkHEC.token
Required value
-
-
stringspec.type
Required value
Allowed values:
Loki,Elasticsearch,Kafka,SplunkHEC,File,Console,Vector -
objectspec.vector
-
stringspec.vector.endpoint
Required value
-
objectspec.vector.tls
-
stringspec.vector.tls.caBase64-encoded PEM with the CA certificate chain used to verify the destination server certificate.
-
booleanspec.vector.tls.verifyCertificate
Default:
true -
booleanspec.vector.tls.verifyHostname
Default:
true
-
-
-
ClusterSecurityEventLoggingTransformationRules
Scope: Cluster
Version: v1alpha1
-
objectspec
Cluster-wide rules to transform raw log lines into structured objects (Vector events) before further processing.
Namespaced SecurityEventLoggingTransformationRules (SELTR) take precedence over these rules when both match the same pod/container.
-
objectspec.file
Selection + shared transform for node file logs. Required when type is File.
File match is performed against the Vector event field
.file.-
array of stringsspec.file.paths
Required value
Exact file paths to match. -
objectspec.file.transform
Required value
Shared transformation applied to every matched file log line.-
booleanspec.file.transform.drop_raw
Default:
false -
array of objectsspec.file.transform.fields
-
stringspec.file.transform.fields.nameField name in the parsed object.
-
stringspec.file.transform.fields.typeTarget field type.
Allowed values:
String,Int,Float,Bool
-
-
objectspec.file.transform.parser
Required value
Parser configuration (defines how to unpack the original log line).
Semantics:
- parsing is best-effort (errors/mismatches do not drop events)
- first successful pattern wins (for Regex/Grok)
- named captures are written into
.parsed_data
-
objectspec.file.transform.parser.grokGrok parser configuration. Named fields are saved into
.parsed_data.-
array of objectsspec.file.transform.parser.grok.customPatternsCustom grok pattern definitions (name -> regex). These are added to the built-in grok patterns.
-
stringspec.file.transform.parser.grok.customPatterns.key
-
stringspec.file.transform.parser.grok.customPatterns.value
-
-
array of stringsspec.file.transform.parser.grok.patterns
Required value
Grok patterns to try in order. The first successfully matched pattern wins.
-
-
objectspec.file.transform.parser.regexRegex parser configuration. Only named capture groups are saved into
.parsed_data.-
array of stringsspec.file.transform.parser.regex.patterns
Required value
Regex patterns to try in order. The first successfully matched pattern wins.
-
-
stringspec.file.transform.parser.type
Required value
Parser type.
- JSON: parse the original log line as JSON (parse_json()).
- Regex: apply regex patterns and extract named capture groups.
- Grok: apply grok patterns and extract named fields.
Allowed values:
JSON,Regex,Grok
-
-
-
objectspec.kubernetesPodsSelection + per-container transforms for Kubernetes pod logs. Required when type is KubernetesPods.
-
array of objectsspec.kubernetesPods.containers
Required value
Per-container transformation rules.-
booleanspec.kubernetesPods.containers.drop_rawIf true, removes the original raw message field after parsing.
Default:
false -
array of objectsspec.kubernetesPods.containers.fieldsOptional field type conversions applied after parsing. Useful to enforce stable types for sinks (Elasticsearch/ClickHouse/etc.).
-
stringspec.kubernetesPods.containers.fields.nameField name in the parsed object.
-
stringspec.kubernetesPods.containers.fields.typeTarget field type.
Allowed values:
String,Int,Float,Bool
-
-
stringspec.kubernetesPods.containers.nameContainer name to apply this transformation to.
-
objectspec.kubernetesPods.containers.parser
Parser configuration (defines how to unpack the original log line).
Semantics:
- parsing is best-effort (errors/mismatches do not drop events)
- first successful pattern wins (for Regex/Grok)
- named captures are written into
.parsed_data
-
objectspec.kubernetesPods.containers.parser.grokGrok parser configuration. Named fields are saved into
.parsed_data.-
array of objectsspec.kubernetesPods.containers.parser.grok.customPatternsCustom grok pattern definitions (name -> regex). These are added to the built-in grok patterns.
-
stringspec.kubernetesPods.containers.parser.grok.customPatterns.key
-
stringspec.kubernetesPods.containers.parser.grok.customPatterns.value
-
-
array of stringsspec.kubernetesPods.containers.parser.grok.patterns
Required value
Grok patterns to try in order. The first successfully matched pattern wins.
-
-
objectspec.kubernetesPods.containers.parser.regexRegex parser configuration. Only named capture groups are saved into
.parsed_data.-
array of stringsspec.kubernetesPods.containers.parser.regex.patterns
Required value
Regex patterns to try in order. The first successfully matched pattern wins.
-
-
stringspec.kubernetesPods.containers.parser.type
Required value
Parser type.
- JSON: parse the original log line as JSON (parse_json()).
- Regex: apply regex patterns and extract named capture groups.
- Grok: apply grok patterns and extract named fields.
Allowed values:
JSON,Regex,Grok
-
-
objectspec.kubernetesPods.labelSelector
Required value
Pod label selector.-
array of objectsspec.kubernetesPods.labelSelector.matchExpressionsList of label selector requirements.
-
stringspec.kubernetesPods.labelSelector.matchExpressions.key
-
stringspec.kubernetesPods.labelSelector.matchExpressions.operator
Allowed values:
In,NotIn,Exists,DoesNotExist -
array of stringsspec.kubernetesPods.labelSelector.matchExpressions.values
-
-
objectspec.kubernetesPods.labelSelector.matchLabelsMap of label key to value.
-
-
objectspec.kubernetesPods.namespaceSelectorNamespace selection (subset of ClusterLoggingConfig). Only matchNames/excludeNames are supported.
-
array of stringsspec.kubernetesPods.namespaceSelector.excludeNames
-
array of stringsspec.kubernetesPods.namespaceSelector.matchNames
-
-
-
stringspec.type
Required value
Input type the rules apply to. KubernetesPods — match pod/container logs. File — match node file logs.Allowed values:
KubernetesPods,File
-
-
objectstatusCurrent status of this resource.
-
array of objectsstatus.conditionsRepresents the latest available observations of an object’s state.
-
stringstatus.conditions.lastTransitionTime
-
stringstatus.conditions.message
Maximum length:
32768 -
integerstatus.conditions.observedGeneration
-
stringstatus.conditions.reason
Length:
1..1024 -
stringstatus.conditions.status
Allowed values:
True,False,Unknown -
stringstatus.conditions.type
Maximum length:
316
-
-
integerstatus.observedGenerationThe generation observed by the controller.
-
ClusterSecurityEventShipper
Scope: Cluster
Version: v1alpha1
-
array of objectsspecCluster-wide pipelines for extracting security events from node files or pod logs. Each pipeline item describes the source and one or more event definitions (produces).
-
objectspec.input
-
array of stringsspec.input.filesNode file paths (required for type File).
-
objectspec.input.kubernetesPodsPod selection for cluster-wide collection.
-
objectspec.input.kubernetesPods.labelSelector
Required value
Kubernetes-style label selector.-
array of objectsspec.input.kubernetesPods.labelSelector.matchExpressionsList of label selector requirements.
-
stringspec.input.kubernetesPods.labelSelector.matchExpressions.key
-
stringspec.input.kubernetesPods.labelSelector.matchExpressions.operator
Allowed values:
In,NotIn,Exists,DoesNotExist -
array of stringsspec.input.kubernetesPods.labelSelector.matchExpressions.values
-
-
objectspec.input.kubernetesPods.labelSelector.matchLabelsMap of label key to value.
-
-
stringspec.input.kubernetesPods.namespaceNamespace to collect pod logs from (legacy exact namespace match).
-
objectspec.input.kubernetesPods.namespaceSelector
Namespace selector for cluster pod log collection.
- If
matchNamesis set, only these namespaces are included. - If
excludeNamesis set, these namespaces are excluded. - If both are empty, all namespaces are matched.
-
array of stringsspec.input.kubernetesPods.namespaceSelector.excludeNamesExplicitly excluded namespace names.
-
array of stringsspec.input.kubernetesPods.namespaceSelector.matchNamesExplicitly included namespace names.
- If
-
-
stringspec.input.type
Required value
File — read from node files. KubernetesPods — read from pod logs (cluster-wide; labelSelector required; namespace or namespaceSelector optional).Allowed values:
File,KubernetesPods
-
-
array of objectsspec.parser
Parser rules for best-effort parsing of raw log line
.messageinto.parsed_data.- For
input.type: KubernetesPods: this repeatsSecurityEventLoggingTransformationRules.spec.containers[]. Match is performed by.namespace+.container+.pod_labels. - For
input.type: File: setname: fileand the rule will be applied when.filematches one ofinput.files.
Container selection happens on the log-shipper side via
labelFilter.-
booleanspec.parser.drop_rawIf true, removes the original raw message field after parsing.
Default:
false -
array of objectsspec.parser.fieldsOptional field type conversions applied after parsing.
-
stringspec.parser.fields.nameField name in the parsed object.
-
stringspec.parser.fields.typeTarget field type.
Allowed values:
String,Int,Float,Bool
-
-
stringspec.parser.nameContainer name (or
filefor file input). -
objectspec.parser.parserParser configuration.
-
objectspec.parser.parser.grok
-
array of objectsspec.parser.parser.grok.customPatterns
-
stringspec.parser.parser.grok.customPatterns.key
-
stringspec.parser.parser.grok.customPatterns.value
-
-
array of stringsspec.parser.parser.grok.patterns
Required value
-
-
objectspec.parser.parser.regex
-
array of stringsspec.parser.parser.regex.patterns
Required value
-
-
stringspec.parser.parser.type
Required value
Parser type.Allowed values:
JSON,Regex,Grok
-
- For
-
stringspec.parserRef
Name of
ClusterSecurityEventLoggingTransformationRules(CSELTR) object to use as parser rule source.Used only when
parseris not set. -
array of objectsspec.producesList of produced security events for this source.
-
array of objectsspec.produces.enrich
Enrichment rules for adding extra fields into outgoing SecurityEvent.
Each rule writes into a destination field path (
target). Sources:Static: write a literal string fromvalue.Plugin: reserved for future (CSV/REST/K8s lookups).
Enrich rules are applied after
transform, so they overridetransformwhen targeting the same field.-
array of objectsspec.produces.enrich.argsPlugin arguments. Values may reference
.parsed_data.*and/or current SecurityEvent fields. Reserved for future.-
stringspec.produces.enrich.args.key
-
stringspec.produces.enrich.args.value
-
-
stringspec.produces.enrich.pluginPlugin name (required for
source=Plugin). -
stringspec.produces.enrich.sourceEnrichment source type.
Allowed values:
Static,Plugin -
stringspec.produces.enrich.targetDestination field path in outgoing SecurityEvent (dot-separated).
-
stringspec.produces.enrich.value
For
Staticsource: literal string to be written totarget.For
Pluginsource: selector of a field in plugin result (reserved for future).
-
stringspec.produces.eventCodeEvent code (references SecurityEventDefinition.spec.code).
-
objectspec.produces.extract
Detection rule for this produced event.
This structure maps 1:1 into log-shipper ClusterLoggingConfig.spec.labelFilter item.
Notes:
valuesis required forIn,NotIn,Regex,NotRegex.valuesmust be omitted/empty forExists,DoesNotExist.
Allowed
fieldvalues aremessageplus log-shipper metadata labels. Kubernetes:pod,namespace,pod_labels,pod_ip,image,container,node,pod_owner,node_group. File:host,host_ip,file.-
stringspec.produces.extract.field
Required value
Field name for filtering (same as ClusterLoggingConfiglabelFilter.field). Typical values:message,file,namespace. -
stringspec.produces.extract.operator
Required value
Operator for field comparison (same as ClusterLoggingConfiglabelFilter.operator).Allowed values:
In,NotIn,Regex,NotRegex,Exists,DoesNotExist -
array of stringsspec.produces.extract.valuesArray of values or regexes for corresponding operations (same as ClusterLoggingConfig
labelFilter.values).
-
array of objectsspec.produces.transform
Field mapping for transforming parsed raw logs into outgoing SecurityEvent.
Keys are destination field paths in the outgoing event (dot-separated). Values are source field paths inside the parsed raw object (dot-separated, relative to
.parsed_data). To read from root-level fields, use the@root.prefix (for example:metadata.extra.host_ip: @root.host_ip).Example:
pod.name: pod_namewill copy.parsed_data.pod_nameinto.pod.name.-
stringspec.produces.transform.key
-
stringspec.produces.transform.value
-
-
-
objectspec.producesDefaults
Default mappings applied to all items in
produces[]of this pipeline item.Precedence:
transform: keys are merged; defaults first, thenproduces[].transformoverwrites.enrich: used only whenproduces[].enrichis omitted.
-
array of objectsspec.producesDefaults.enrichDefault enrich rules (see
produces[].enrich).-
array of objectsspec.producesDefaults.enrich.argsPlugin arguments. Values may reference
.parsed_data.*and/or current SecurityEvent fields. Reserved for future.-
stringspec.producesDefaults.enrich.args.key
-
stringspec.producesDefaults.enrich.args.value
-
-
stringspec.producesDefaults.enrich.pluginPlugin name (required for
source=Plugin). -
stringspec.producesDefaults.enrich.sourceEnrichment source type.
Allowed values:
Static,Plugin -
stringspec.producesDefaults.enrich.targetDestination field path in outgoing SecurityEvent (dot-separated).
-
stringspec.producesDefaults.enrich.value
For
Staticsource: literal string to be written totarget.For
Pluginsource: selector of a field in plugin result (reserved for future).
-
-
array of objectsspec.producesDefaults.transformDefault field mapping (see
produces[].transform).-
stringspec.producesDefaults.transform.key
-
stringspec.producesDefaults.transform.value
-
-
stringspec.sourceSource identifier (used for enable/disable via ClusterSecurityEventConfig).
-
-
objectstatusCurrent status of this resource.
-
array of objectsstatus.conditionsRepresents the latest available observations of an object’s state.
-
stringstatus.conditions.lastTransitionTime
-
stringstatus.conditions.message
Maximum length:
32768 -
integerstatus.conditions.observedGeneration
-
stringstatus.conditions.reason
Length:
1..1024 -
stringstatus.conditions.status
Allowed values:
True,False,Unknown -
stringstatus.conditions.type
Maximum length:
316
-
-
integerstatus.observedGenerationThe generation observed by the controller.
-
PodSecurityEventShipper
Scope: Namespaced
Version: v1alpha1
-
array of objectsspecNamespaced pipelines for extracting security events from pod logs of this namespace. Namespace is implied and equals the PodSecurityEventShipper namespace.
-
objectspec.input
-
objectspec.input.kubernetesPods
Required value
-
objectspec.input.kubernetesPods.labelSelector
Required value
Kubernetes-style label selector.-
array of objectsspec.input.kubernetesPods.labelSelector.matchExpressionsList of label selector requirements.
-
stringspec.input.kubernetesPods.labelSelector.matchExpressions.key
-
stringspec.input.kubernetesPods.labelSelector.matchExpressions.operator
Allowed values:
In,NotIn,Exists,DoesNotExist -
array of stringsspec.input.kubernetesPods.labelSelector.matchExpressions.values
-
-
objectspec.input.kubernetesPods.labelSelector.matchLabelsMap of label key to value.
-
-
-
stringspec.input.type
Required value
Allowed values:
KubernetesPods
-
-
array of objectsspec.parserParser rules (same shape as
SecurityEventLoggingTransformationRules.spec.containers[]). Used by the gateway for best-effort parsing of raw logs.messageinto.parsed_databefore applying transform mappings. Note: container is selected by log-shipper vialabelFilter;nameis the container name these rules apply to.-
booleanspec.parser.drop_rawIf true, removes the original raw message field after parsing.
Default:
false -
array of objectsspec.parser.fieldsOptional field type conversions applied after parsing.
-
stringspec.parser.fields.nameField name in the parsed object.
-
stringspec.parser.fields.typeTarget field type.
Allowed values:
String,Int,Float,Bool
-
-
stringspec.parser.nameContainer name.
-
objectspec.parser.parserParser configuration.
-
objectspec.parser.parser.grokGrok parser configuration.
-
array of objectsspec.parser.parser.grok.customPatternsCustom grok pattern definitions (name -> regex).
-
stringspec.parser.parser.grok.customPatterns.key
-
stringspec.parser.parser.grok.customPatterns.value
-
-
array of stringsspec.parser.parser.grok.patterns
Required value
Grok patterns to try in order.
-
-
objectspec.parser.parser.regexRegex parser configuration.
-
array of stringsspec.parser.parser.regex.patterns
Required value
Regex patterns to try in order.
-
-
stringspec.parser.parser.type
Required value
Parser type.
- JSON: parse the original log line as JSON.
- Regex: apply regex patterns and extract named capture groups.
- Grok: apply grok patterns and extract named fields.
Allowed values:
JSON,Regex,Grok
-
-
-
stringspec.parserRefName of
SecurityEventLoggingTransformationRules(SELTR) resource in the same namespace to use as parser rules. Used only whenparseris not set. -
array of objectsspec.producesList of produced security events for this source.
-
array of objectsspec.produces.enrich
Enrichment rules for adding extra fields into outgoing SecurityEvent.
Each rule writes into a destination field path (
target). Sources:Static: write a literal string fromvalue.Plugin: reserved for future (CSV/REST/K8s lookups).
Enrich rules are applied after
transform, so they overridetransformwhen targeting the same field.-
array of objectsspec.produces.enrich.argsPlugin arguments. Values may reference
.parsed_data.*and/or current SecurityEvent fields. Reserved for future.-
stringspec.produces.enrich.args.key
-
stringspec.produces.enrich.args.value
-
-
stringspec.produces.enrich.pluginPlugin name (required for
source=Plugin). -
stringspec.produces.enrich.sourceEnrichment source type.
Allowed values:
Static,Plugin -
stringspec.produces.enrich.targetDestination field path in outgoing SecurityEvent (dot-separated).
-
stringspec.produces.enrich.value
For
Staticsource: literal string to be written totarget.For
Pluginsource: selector of a field in plugin result (reserved for future).
-
stringspec.produces.eventCodeEvent code (references SecurityEventDefinition.spec.code).
-
objectspec.produces.extract
Detection rule for this produced event.
This structure maps 1:1 into log-shipper PodLoggingConfig.spec.labelFilter item.
Notes:
valuesis required forIn,NotIn,Regex,NotRegex.valuesmust be omitted/empty forExists,DoesNotExist.
Allowed
fieldvalues aremessageplus log-shipper metadata labels. Kubernetes:pod,namespace,pod_labels,pod_ip,image,container,node,pod_owner,node_group. File:host,host_ip,file.-
stringspec.produces.extract.field
Required value
Field name for filtering (same as PodLoggingConfiglabelFilter.field). Typical values:message,container,namespace. -
stringspec.produces.extract.operator
Required value
Operator for field comparison (same as PodLoggingConfiglabelFilter.operator).Allowed values:
In,NotIn,Regex,NotRegex,Exists,DoesNotExist -
array of stringsspec.produces.extract.valuesArray of values or regexes for corresponding operations (same as PodLoggingConfig
labelFilter.values).
-
array of objectsspec.produces.transform
Field mapping for transforming parsed raw logs into outgoing SecurityEvent.
Keys are destination field paths in the outgoing event (dot-separated). Values are source field paths inside the parsed raw object (dot-separated, relative to
.parsed_data). To read from root-level fields, use the@root.prefix (for example:metadata.extra.host_ip: @root.host_ip).Example:
pod.name: pod_namewill copy.parsed_data.pod_nameinto.pod.name.-
stringspec.produces.transform.key
-
stringspec.produces.transform.value
-
-
-
objectspec.producesDefaults
Default mappings applied to all items in
produces[]of this pipeline item.Precedence:
transform: keys are merged; defaults first, thenproduces[].transformoverwrites.enrich: used only whenproduces[].enrichis omitted.
-
array of objectsspec.producesDefaults.enrichDefault enrich rules (see
produces[].enrich).-
array of objectsspec.producesDefaults.enrich.argsPlugin arguments. Values may reference
.parsed_data.*and/or current SecurityEvent fields. Reserved for future.-
stringspec.producesDefaults.enrich.args.key
-
stringspec.producesDefaults.enrich.args.value
-
-
stringspec.producesDefaults.enrich.pluginPlugin name (required for
source=Plugin). -
stringspec.producesDefaults.enrich.sourceEnrichment source type.
Allowed values:
Static,Plugin -
stringspec.producesDefaults.enrich.targetDestination field path in outgoing SecurityEvent (dot-separated).
-
stringspec.producesDefaults.enrich.value
For
Staticsource: literal string to be written totarget.For
Pluginsource: selector of a field in plugin result (reserved for future).
-
-
array of objectsspec.producesDefaults.transformDefault field mapping (see
produces[].transform).-
stringspec.producesDefaults.transform.key
-
stringspec.producesDefaults.transform.value
-
-
stringspec.sourceSource identifier (used for enable/disable via ClusterSecurityEventConfig).
-
-
objectstatusCurrent status of this resource.
-
array of objectsstatus.conditionsRepresents the latest available observations of an object’s state.
-
stringstatus.conditions.lastTransitionTime
-
stringstatus.conditions.message
Maximum length:
32768 -
integerstatus.conditions.observedGeneration
-
stringstatus.conditions.reason
Length:
1..1024 -
stringstatus.conditions.status
Allowed values:
True,False,Unknown -
stringstatus.conditions.type
Maximum length:
316
-
-
integerstatus.observedGenerationThe generation observed by the controller.
-
SecurityEvent
Scope: Cluster
Version: v1
-
objectactorActor (subject) that performed the action.
-
stringactor.idActor identifier.
-
stringactor.typeActor type.
Allowed values:
User,ServiceAccount,System
-
-
objecteventEvent classification and details.
-
stringevent.category
Required value
Event category.Allowed values:
Auth,Rbac,Runtime,Network,Config -
stringevent.code
Required value
Event code. -
stringevent.descriptionHuman-readable event description.
-
stringevent.outcome
Required value
Event outcome.Allowed values:
Success,Failure,Denied -
stringevent.severity
Required value
Event severity.Allowed values:
Low,Medium,High,Critical
-
-
objecteventMetadataAdditional metadata.
-
stringeventMetadata.cluster
Required value
Cluster identifier. -
array of objectseventMetadata.extraExtra key-value metadata.
-
stringeventMetadata.extra.key
-
stringeventMetadata.extra.value
-
-
stringeventMetadata.nodeNode name.
-
-
stringidUnique event identifier.
-
objectobjectObject the event is related to.
-
stringobject.nameObject name.
-
stringobject.namespaceObject namespace.
-
stringobject.typeObject type.
-
-
objectsourceSource identification for the event.
-
stringsource.component
Required value
Component name (e.g. kube-apiserver). -
stringsource.instanceOptional instance identifier.
-
-
stringtimestampEvent timestamp.
SecurityEventDefinition
Scope: Cluster
Version: v1alpha1
-
objectspecDescribes a possible security event.
-
stringspec.category
Required value
Event category.Allowed values:
Auth,Rbac,Runtime,Network,Config -
stringspec.code
Required value
Event code. -
stringspec.description
Required value
Human-readable description. -
stringspec.descriptionRuHuman-readable description in Russian.
-
array of objectsspec.fieldsList of fields that the event may contain.
-
stringspec.fields.nameField name.
-
booleanspec.fields.requiredWhether the field is required.
Default:
true
-
-
objectspec.metadataMetadata related to the rule
-
stringspec.severity
Required value
Event severity.Allowed values:
Low,Medium,High,Critical -
stringspec.source
Required value
Source identifier.
-
-
objectstatusCurrent status of this resource.
-
array of objectsstatus.conditionsRepresents the latest available observations of an object’s state.
-
stringstatus.conditions.lastTransitionTime
-
stringstatus.conditions.message
Maximum length:
32768 -
integerstatus.conditions.observedGeneration
-
stringstatus.conditions.reason
Length:
1..1024 -
stringstatus.conditions.status
Allowed values:
True,False,Unknown -
stringstatus.conditions.type
Maximum length:
316
-
-
integerstatus.observedGenerationThe generation observed by the controller.
-
SecurityEventLoggingTransformationRules
Scope: Namespaced
Version: v1alpha1
-
objectspecNamespaced rules to transform raw log lines into structured objects (Vector events) before further processing.
-
array of objectsspec.containers
Required value
Per-container transformation rules.-
booleanspec.containers.drop_rawIf true, removes the original raw message field after parsing.
Default:
false -
array of objectsspec.containers.fieldsOptional field type conversions applied after parsing. Useful to enforce stable types for sinks (Elasticsearch/ClickHouse/etc.).
-
stringspec.containers.fields.nameField name in the parsed object.
-
stringspec.containers.fields.typeTarget field type.
Allowed values:
String,Int,Float,Bool
-
-
stringspec.containers.nameContainer name to apply this transformation to.
-
objectspec.containers.parser
Parser configuration (defines how to unpack the original log line).
Semantics:
- parsing is best-effort (errors/mismatches do not drop events)
- first successful pattern wins (for Regex/Grok)
- named captures are written into
.parsed_data
-
objectspec.containers.parser.grokGrok parser configuration. Named fields are saved into
.parsed_data.-
array of objectsspec.containers.parser.grok.customPatternsCustom grok pattern definitions (name -> regex). These are added to the built-in grok patterns.
-
stringspec.containers.parser.grok.customPatterns.key
-
stringspec.containers.parser.grok.customPatterns.value
-
-
array of stringsspec.containers.parser.grok.patterns
Required value
Grok patterns to try in order. The first successfully matched pattern wins.
-
-
objectspec.containers.parser.regexRegex parser configuration. Only named capture groups are saved into
.parsed_data.-
array of stringsspec.containers.parser.regex.patterns
Required value
Regex patterns to try in order. The first successfully matched pattern wins.
-
-
stringspec.containers.parser.type
Required value
Parser type.
- JSON: parse the original log line as JSON (parse_json()).
- Regex: apply regex patterns and extract named capture groups.
- Grok: apply grok patterns and extract named fields.
Allowed values:
JSON,Regex,Grok
-
-
objectspec.selector
Required value
Pod label selector.-
array of objectsspec.selector.matchExpressionsList of label selector requirements.
-
stringspec.selector.matchExpressions.key
-
stringspec.selector.matchExpressions.operator
Allowed values:
In,NotIn,Exists,DoesNotExist -
array of stringsspec.selector.matchExpressions.values
-
-
objectspec.selector.matchLabelsMap of label key to value.
-
-
-
objectstatusCurrent status of this resource.
-
array of objectsstatus.conditionsRepresents the latest available observations of an object’s state.
-
stringstatus.conditions.lastTransitionTime
-
stringstatus.conditions.message
Maximum length:
32768 -
integerstatus.conditions.observedGeneration
-
stringstatus.conditions.reason
Length:
1..1024 -
stringstatus.conditions.status
Allowed values:
True,False,Unknown -
stringstatus.conditions.type
Maximum length:
316
-
-
integerstatus.observedGenerationThe generation observed by the controller.
-