FlowCollector is the schema for the network flows collection API, which pilots and configures the underlying deployments.
The FlowCollector API is the underlying schema used to pilot and configure the deployments for collecting network flows. This reference guide helps you manage those critical settings.
FlowCollector is the schema for the network flows collection API, which pilots and configures the underlying deployments.
object
| Property | Type | Description |
|---|---|---|
|
|
APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and might reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
|
Kind is a string value representing the REST resource this object represents. Servers might 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 |
|
|
Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
|
|
Defines the desired state of the FlowCollector resource.
*: the mention of "unsupported" or "deprecated" for a feature throughout this document means that this feature is not officially supported by Red Hat. It might have been, for example, contributed by the community and accepted without a formal agreement for maintenance. The product maintainers might provide some support for these features as a best effort only. |
Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
object
Defines the desired state of the FlowCollector resource.
*: the mention of "unsupported" or "deprecated" for a feature throughout this document means that this feature is not officially supported by Red Hat. It might have been, for example, contributed by the community and accepted without a formal agreement for maintenance. The product maintainers might provide some support for these features as a best effort only.
object
| Property | Type | Description |
|---|---|---|
|
|
Agent configuration for flows extraction. |
|
|
|
|
|
- - - Kafka can provide better scalability, resiliency, and high availability (for more details, see https://www.redhat.com/en/topics/integration/what-is-apache-kafka).
|
|
|
|
|
|
Kafka configuration, allowing to use Kafka as a broker as part of the flow collection pipeline. Available when the |
|
|
|
|
|
Namespace where Network Observability pods are deployed. |
|
|
|
|
|
|
|
|
|
Agent configuration for flows extraction.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
ebpf describes the settings related to the eBPF-based flow reporter when spec.agent.type
is set to eBPF.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are: - - - - - - - This feature requires mounting the kernel debug filesystem, so the eBPF agent pods must run as privileged via - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Privileged mode for the eBPF Agent container. When set to |
|
|
|
|
|
Sampling interval of the eBPF probe. 100 means one packet on 100 is sent. 0 or 1 means all packets are sampled. |
advanced allows setting some aspects of the internal configuration of the eBPF agent.
This section is aimed mostly for debugging and fine-grained performance optimizations,
such as GOGC and GOMAXPROCS environment variables. Set these values at your own risk. You can also
override the default Linux capabilities from there.
object
| Property | Type | Description |
|---|---|---|
|
|
Linux capabilities override, when not running as privileged. Default capabilities are BPF, PERFMON and NET_ADMIN. |
|
|
|
|
|
scheduling controls how the pods are scheduled on nodes. |
scheduling controls how the pods are scheduled on nodes.
object
| Property | Type | Description |
|---|---|---|
|
|
If specified, the pod’s scheduling constraints. For documentation, refer to https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling. |
|
|
|
|
|
If specified, indicates the pod’s priority. For documentation, refer to https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#how-to-use-priority-and-preemption. If not specified, default priority is used, or zero if there is no default. |
|
|
|
If specified, the pod’s scheduling constraints. For documentation, refer to https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling.
object
tolerations is a list of tolerations that allow the pod to schedule onto nodes with matching taints.
For documentation, refer to https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling.
array
flowFilter defines the eBPF agent configuration regarding flow filtering.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Set |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rules defines a list of filtering rules on the eBPF Agents.
When filtering is enabled, by default, flows that don’t match any rule are rejected.
To change the default, you can define a rule that accepts everything: { action: "Accept", cidr: "0.0.0.0/0" }, and then refine with rejecting rules.
array
EBPFFlowFilterRules defines the desired eBPF agent configuration regarding flow filtering rules.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
metrics defines the eBPF agent configuration regarding metrics.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
Set |
|
|
Metrics server endpoint configuration for the Prometheus scraper. |
Metrics server endpoint configuration for the Prometheus scraper.
object
| Property | Type | Description |
|---|---|---|
|
|
The metrics server HTTP port. |
|
|
TLS configuration. |
TLS configuration.
object
type
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
TLS configuration when |
|
|
Reference to the CA file when |
|
|
Select the type of TLS configuration: - |
TLS configuration when type is set to Provided.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
Reference to the CA file when type is set to Provided.
object
| Property | Type | Description |
|---|---|---|
|
|
File name within the config map or secret. |
|
|
Name of the config map or secret containing the file. |
|
|
Namespace of the config map or secret containing the file. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the file reference: |
resources are the compute resources required by this container.
For more information, see https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
object
| Property | Type | Description |
|---|---|---|
|
|
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ |
|
|
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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ |
consolePlugin defines the settings related to the OKD Console plugin, when available.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Enables the console plugin deployment. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Deploy as a standalone console, instead of a plugin of the OKD Console. This is not recommended when using with OKD, as it doesn’t provide an integrated experience. [Unsupported (*)]. |
|
|
If |
advanced allows setting some aspects of the internal configuration of the console plugin.
This section is aimed mostly for debugging and fine-grained performance optimizations,
such as GOGC and GOMAXPROCS environment variables. Set these values at your own risk.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
scheduling controls how the pods are scheduled on nodes.
object
| Property | Type | Description |
|---|---|---|
|
|
If specified, the pod’s scheduling constraints. For documentation, refer to https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling. |
|
|
|
|
|
If specified, indicates the pod’s priority. For documentation, refer to https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#how-to-use-priority-and-preemption. If not specified, default priority is used, or zero if there is no default. |
|
|
|
If specified, the pod’s scheduling constraints. For documentation, refer to https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling.
object
tolerations is a list of tolerations that allow the pod to schedule onto nodes with matching taints.
For documentation, refer to https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling.
array
autoscaler [deprecated (*)] spec of a horizontal pod autoscaler to set up for the plugin Deployment.
Deprecation notice: managed autoscaler will be removed in a future version. You might configure instead an autoscaler of your choice, and set spec.consolePlugin.unmanagedReplicas to true. Refer to HorizontalPodAutoscaler documentation (autoscaling/v2).
object
portNaming defines the configuration of the port-to-service name translation.
object
| Property | Type | Description |
|---|---|---|
|
|
Enable the console plugin port-to-service name translation |
|
|
|
quickFilters configures quick filter presets for the Console plugin.
Filters for external traffic assume the subnet labels are configured to distinguish internal and external traffic (see spec.processor.subnetLabels).
array
QuickFilter defines preset configuration for Console’s quick filters
object
filter
name
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the filter, that is displayed in the Console |
resources, in terms of compute resources, required by this container.
For more information, see https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/.
object
| Property | Type | Description |
|---|---|---|
|
|
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ |
|
|
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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ |
exporters defines additional optional exporters for custom consumption or storage.
array
FlowCollectorExporter defines an additional exporter to send enriched flows to.
object
type
| Property | Type | Description |
|---|---|---|
|
|
IPFIX configuration, such as the IP address and port to send enriched IPFIX flows to. |
|
|
Kafka configuration, such as the address and topic, to send enriched flows to. |
|
|
OpenTelemetry configuration, such as the IP address and port to send enriched logs or metrics to. |
|
|
|
IPFIX configuration, such as the IP address and port to send enriched IPFIX flows to.
object
enterpriseID
targetHost
targetPort
| Property | Type | Description |
|---|---|---|
|
|
EnterpriseID, or Private Enterprise Number (PEN). To date, Network Observability does not own an assigned number, so it is left open for configuration. The PEN is needed to collect non standard data, such as Kubernetes names, RTT, etc. |
|
|
Address of the IPFIX external receiver. |
|
|
Port for the IPFIX external receiver. |
|
|
Transport protocol ( |
Kafka configuration, such as the address and topic, to send enriched flows to.
object
address
topic
| Property | Type | Description |
|---|---|---|
|
|
Address of the Kafka server |
|
|
SASL authentication configuration. [Unsupported (*)]. |
|
|
TLS client configuration. When using TLS, verify that the address matches the Kafka port used for TLS, generally 9093. |
|
|
Kafka topic to use. It must exist. Network Observability does not create it. |
SASL authentication configuration. [Unsupported (*)].
object
| Property | Type | Description |
|---|---|---|
|
|
Reference to the secret or config map containing the client ID |
|
|
Reference to the secret or config map containing the client secret |
|
|
Type of SASL authentication to use, or |
Reference to the secret or config map containing the client ID
object
| Property | Type | Description |
|---|---|---|
|
|
File name within the config map or secret. |
|
|
Name of the config map or secret containing the file. |
|
|
Namespace of the config map or secret containing the file. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the file reference: |
Reference to the secret or config map containing the client secret
object
| Property | Type | Description |
|---|---|---|
|
|
File name within the config map or secret. |
|
|
Name of the config map or secret containing the file. |
|
|
Namespace of the config map or secret containing the file. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the file reference: |
TLS client configuration. When using TLS, verify that the address matches the Kafka port used for TLS, generally 9093.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
Enable TLS |
|
|
|
|
|
|
caCert defines the reference of the certificate for the Certificate Authority.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
userCert defines the user certificate reference and is used for mTLS. When you use one-way TLS, you can ignore this property.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
OpenTelemetry configuration, such as the IP address and port to send enriched logs or metrics to.
object
targetHost
targetPort
| Property | Type | Description |
|---|---|---|
|
|
Custom fields mapping to an OpenTelemetry conformant format. By default, Network Observability format proposal is used: https://github.com/rhobs/observability-data-model/blob/main/network-observability.md#format-proposal . As there is currently no accepted standard for L3 or L4 enriched network logs, you can freely override it with your own. |
|
|
Headers to add to messages (optional) |
|
|
OpenTelemetry configuration for logs. |
|
|
OpenTelemetry configuration for metrics. |
|
|
Protocol of the OpenTelemetry connection. The available options are |
|
|
Address of the OpenTelemetry receiver. |
|
|
Port for the OpenTelemetry receiver. |
|
|
TLS client configuration. |
Custom fields mapping to an OpenTelemetry conformant format. By default, Network Observability format proposal is used: https://github.com/rhobs/observability-data-model/blob/main/network-observability.md#format-proposal . As there is currently no accepted standard for L3 or L4 enriched network logs, you can freely override it with your own.
array
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
OpenTelemetry configuration for logs.
object
| Property | Type | Description |
|---|---|---|
|
|
Set |
OpenTelemetry configuration for metrics.
object
| Property | Type | Description |
|---|---|---|
|
|
Set |
|
|
Specify how often metrics are sent to a collector. |
TLS client configuration.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
Enable TLS |
|
|
|
|
|
|
caCert defines the reference of the certificate for the Certificate Authority.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
userCert defines the user certificate reference and is used for mTLS. When you use one-way TLS, you can ignore this property.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
Kafka configuration, allowing to use Kafka as a broker as part of the flow collection pipeline. Available when the spec.deploymentModel is Kafka.
object
address
topic
| Property | Type | Description |
|---|---|---|
|
|
Address of the Kafka server |
|
|
SASL authentication configuration. [Unsupported (*)]. |
|
|
TLS client configuration. When using TLS, verify that the address matches the Kafka port used for TLS, generally 9093. |
|
|
Kafka topic to use. It must exist. Network Observability does not create it. |
SASL authentication configuration. [Unsupported (*)].
object
| Property | Type | Description |
|---|---|---|
|
|
Reference to the secret or config map containing the client ID |
|
|
Reference to the secret or config map containing the client secret |
|
|
Type of SASL authentication to use, or |
Reference to the secret or config map containing the client ID
object
| Property | Type | Description |
|---|---|---|
|
|
File name within the config map or secret. |
|
|
Name of the config map or secret containing the file. |
|
|
Namespace of the config map or secret containing the file. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the file reference: |
Reference to the secret or config map containing the client secret
object
| Property | Type | Description |
|---|---|---|
|
|
File name within the config map or secret. |
|
|
Name of the config map or secret containing the file. |
|
|
Namespace of the config map or secret containing the file. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the file reference: |
TLS client configuration. When using TLS, verify that the address matches the Kafka port used for TLS, generally 9093.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
Enable TLS |
|
|
|
|
|
|
caCert defines the reference of the certificate for the Certificate Authority.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
userCert defines the user certificate reference and is used for mTLS. When you use one-way TLS, you can ignore this property.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
loki, the flow store, client settings.
object
mode
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
Set |
|
|
Loki configuration for |
|
|
Loki configuration for |
|
|
Loki configuration for |
|
|
- Use - Use - Use - Use |
|
|
Loki configuration for |
|
|
|
|
|
|
|
|
|
|
|
|
advanced allows setting some aspects of the internal configuration of the Loki clients.
This section is aimed mostly for debugging and fine-grained performance optimizations.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Loki configuration for LokiStack mode. This is useful for an easy Loki Operator configuration.
It is ignored for other modes.
object
name
| Property | Type | Description |
|---|---|---|
|
|
Name of an existing LokiStack resource to use. |
|
|
Namespace where this |
Loki configuration for Manual mode. This is the most flexible configuration.
It is ignored for other modes.
object
| Property | Type | Description |
|---|---|---|
|
|
- - - When using the Loki Operator, this must be set to |
|
|
|
|
|
|
|
|
TLS client configuration for Loki status URL. |
|
|
|
|
|
|
|
|
TLS client configuration for Loki URL. |
TLS client configuration for Loki status URL.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
Enable TLS |
|
|
|
|
|
|
caCert defines the reference of the certificate for the Certificate Authority.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
userCert defines the user certificate reference and is used for mTLS. When you use one-way TLS, you can ignore this property.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
TLS client configuration for Loki URL.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
Enable TLS |
|
|
|
|
|
|
caCert defines the reference of the certificate for the Certificate Authority.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
userCert defines the user certificate reference and is used for mTLS. When you use one-way TLS, you can ignore this property.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
Loki configuration for Microservices mode.
Use this option when Loki is installed using the microservices deployment mode (https://grafana.com/docs/loki/latest/fundamentals/architecture/deployment-modes/#microservices-mode).
It is ignored for other modes.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
TLS client configuration for Loki URL. |
TLS client configuration for Loki URL.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
Enable TLS |
|
|
|
|
|
|
caCert defines the reference of the certificate for the Certificate Authority.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
userCert defines the user certificate reference and is used for mTLS. When you use one-way TLS, you can ignore this property.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
Loki configuration for Monolithic mode.
Use this option when Loki is installed using the monolithic deployment mode (https://grafana.com/docs/loki/latest/fundamentals/architecture/deployment-modes/#monolithic-mode).
It is ignored for other modes.
object
| Property | Type | Description |
|---|---|---|
|
|
Set |
|
|
|
|
|
TLS client configuration for Loki URL. |
|
|
|
TLS client configuration for Loki URL.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
Enable TLS |
|
|
|
|
|
|
caCert defines the reference of the certificate for the Certificate Authority.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
userCert defines the user certificate reference and is used for mTLS. When you use one-way TLS, you can ignore this property.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
networkPolicy defines network policy settings for Network Observability components isolation.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
Deploys network policies on the namespaces used by Network Observability (main and privileged). These network policies better isolate the Network Observability components to prevent undesired connections from and to them. This option is enabled by default when using with OVNKubernetes, and disabled otherwise (it has not been tested with other CNIs). When disabled, you can manually create the network policies for the Network Observability components. |
processor defines the settings of the component that receives the flows from the agent,
enriches them, generates metrics, and forwards them to the Loki persistence layer and/or any available exporter.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- - - - |
|
|
|
|
|
Set |
|
|
|
|
|
Global configuration managing FlowCollectorSlices custom resources. |
|
|
|
|
|
If |
advanced allows setting some aspects of the internal configuration of the flow processor.
This section is aimed mostly for debugging and fine-grained performance optimizations,
such as GOGC and GOMAXPROCS environment variables. Set these values at your own risk.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Port of the flow collector (host port). By convention, some values are forbidden. It must be greater than 1024 and different from 4500, 4789 and 6081. |
|
|
|
|
|
scheduling controls how the pods are scheduled on nodes. |
|
|
Defines secondary networks to be checked for resources identification. To guarantee a correct identification, indexed values must form an unique identifier across the cluster. If the same index is used by several resources, those resources might be incorrectly labeled. |
scheduling controls how the pods are scheduled on nodes.
object
| Property | Type | Description |
|---|---|---|
|
|
If specified, the pod’s scheduling constraints. For documentation, refer to https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling. |
|
|
|
|
|
If specified, indicates the pod’s priority. For documentation, refer to https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#how-to-use-priority-and-preemption. If not specified, default priority is used, or zero if there is no default. |
|
|
|
If specified, the pod’s scheduling constraints. For documentation, refer to https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling.
object
tolerations is a list of tolerations that allow the pod to schedule onto nodes with matching taints.
For documentation, refer to https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling.
array
Defines secondary networks to be checked for resources identification. To guarantee a correct identification, indexed values must form an unique identifier across the cluster. If the same index is used by several resources, those resources might be incorrectly labeled.
array
object
index
name
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
deduper allows you to sample or drop flows identified as duplicates, in order to save on resource usage.
object
| Property | Type | Description |
|---|---|---|
|
|
Set the Processor de-duplication mode. It comes in addition to the Agent-based deduplication, since the Agent cannot de-duplicate same flows reported from different nodes. - Use - Use - Use |
|
|
|
filters lets you define custom filters to limit the amount of generated flows.
These filters provide more flexibility than the eBPF Agent filters (in spec.agent.ebpf.flowFilter), such as allowing to filter by Kubernetes namespace,
but with a lesser improvement in performance.
array
FLPFilterSet defines the desired configuration for FLP-based filtering satisfying all conditions.
object
| Property | Type | Description |
|---|---|---|
|
|
If specified, these filters target a single output: |
|
|
A query that selects the network flows to keep. More information about this query language in https://github.com/netobserv/flowlogs-pipeline/blob/main/docs/filtering.md. |
|
|
|
kafkaConsumerAutoscaler [deprecated (*)] is the spec of a horizontal pod autoscaler to set up for flowlogs-pipeline-transformer, which consumes Kafka messages.
This setting is ignored when Kafka is disabled.
Deprecation notice: managed autoscaler will be removed in a future version. You might configure instead an autoscaler of your choice, and set spec.processor.unmanagedReplicas to true. Refer to HorizontalPodAutoscaler documentation (autoscaling/v2).
object
Metrics define the processor configuration regarding metrics
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
Metrics server endpoint configuration for Prometheus scraper |
healthRules is a list of health rules to be created for Prometheus, organized by templates and variants.
Each health rule can be configured to generate either alerts or recording rules based on the mode field.
More information on health rules: https://github.com/netobserv/network-observability-operator/blob/main/docs/HealthRules.md
array
object
template
variants
| Property | Type | Description |
|---|---|---|
|
|
Mode defines whether this health rule should be generated as an alert or a recording rule.
Possible values are: |
|
|
Health rule template name.
Possible values are: |
|
|
A list of variants for this template |
A list of variants for this template
array
object
thresholds
| Property | Type | Description |
|---|---|---|
|
|
Optional grouping criteria, possible values are: |
|
|
The low volume threshold allows to ignore metrics with a too low volume of traffic, in order to improve signal-to-noise. It is provided as an absolute rate (bytes per second or packets per second, depending on the context). When provided, it must be parsable as a float. |
|
|
Mode overrides the health rule mode for this specific variant.
If not specified, inherits from the parent health rule’s mode.
Possible values are: |
|
|
Thresholds of the health rule per severity. They are expressed as a percentage of errors above which the alert is triggered. They must be parsable as floats. Required for both alert and recording modes |
|
|
For trending health rules, the duration interval for baseline comparison. For example, "2h" means comparing against a 2-hours average. Defaults to 2h. |
|
|
For trending health rules, the time offset for baseline comparison. For example, "1d" means comparing against yesterday. Defaults to 1d. |
Thresholds of the health rule per severity. They are expressed as a percentage of errors above which the alert is triggered. They must be parsable as floats. Required for both alert and recording modes
object
| Property | Type | Description |
|---|---|---|
|
|
Threshold for severity |
|
|
Threshold for severity |
|
|
Threshold for severity |
Metrics server endpoint configuration for Prometheus scraper
object
| Property | Type | Description |
|---|---|---|
|
|
The metrics server HTTP port. |
|
|
TLS configuration. |
TLS configuration.
object
type
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
TLS configuration when |
|
|
Reference to the CA file when |
|
|
Select the type of TLS configuration: - |
TLS configuration when type is set to Provided.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
Reference to the CA file when type is set to Provided.
object
| Property | Type | Description |
|---|---|---|
|
|
File name within the config map or secret. |
|
|
Name of the config map or secret containing the file. |
|
|
Namespace of the config map or secret containing the file. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the file reference: |
resources are the compute resources required by this container.
For more information, see https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
object
| Property | Type | Description |
|---|---|---|
|
|
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ |
|
|
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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ |
Global configuration managing FlowCollectorSlices custom resources.
object
enable
| Property | Type | Description |
|---|---|---|
|
|
- When set to - When set to |
|
|
|
|
|
|
subnetLabels allows to define custom labels on subnets and IPs or to enable automatic labeling of recognized subnets in OKD, which is used to identify cluster external traffic.
When a subnet matches the source or destination IP of a flow, a corresponding field is added: SrcSubnetLabel or DstSubnetLabel.
object
| Property | Type | Description |
|---|---|---|
|
|
If If |
|
|
|
customLabels allows you to customize subnets and IPs labeling, such as to identify cluster external workloads or web services.
External subnets must be labeled with the prefix EXT:, or not labeled at all, in order to work with default quick filters and some metrics examples provided.
If openShiftAutoDetect is disabled or you are not using OKD, it is recommended to manually configure labels for the cluster subnets, to distinguish internal traffic from external traffic.
If openShiftAutoDetect is enabled, customLabels overrides the detected subnets when they overlap.
array
SubnetLabel allows to label subnets and IPs, such as to identify cluster-external workloads or web services.
object
cidrs
name
| Property | Type | Description |
|---|---|---|
|
|
List of CIDRs, such as |
|
|
Label name, used to flag matching flows.
External subnets must be labeled with the prefix |
prometheus defines Prometheus settings, such as querier configuration used to fetch metrics from the Console plugin.
object
| Property | Type | Description |
|---|---|---|
|
|
Prometheus querying configuration, such as client settings, used in the Console plugin. |
Prometheus querying configuration, such as client settings, used in the Console plugin.
object
mode
| Property | Type | Description |
|---|---|---|
|
|
When |
|
|
Prometheus configuration for |
|
|
- Use - Use |
|
|
|
Prometheus configuration for Manual mode.
object
| Property | Type | Description |
|---|---|---|
|
|
AlertManager configuration. This is used in the console to query silenced alerts, for displaying health information. When used in OKD it can be left empty to use the Console API instead. [Unsupported (*)]. |
|
|
Set |
|
|
TLS client configuration for Prometheus URL. |
|
|
|
AlertManager configuration. This is used in the console to query silenced alerts, for displaying health information. When used in OKD it can be left empty to use the Console API instead. [Unsupported (*)].
object
| Property | Type | Description |
|---|---|---|
|
|
TLS client configuration for Prometheus AlertManager URL. |
|
|
|
TLS client configuration for Prometheus AlertManager URL.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
Enable TLS |
|
|
|
|
|
|
caCert defines the reference of the certificate for the Certificate Authority.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
userCert defines the user certificate reference and is used for mTLS. When you use one-way TLS, you can ignore this property.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
TLS client configuration for Prometheus URL.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
Enable TLS |
|
|
|
|
|
|
caCert defines the reference of the certificate for the Certificate Authority.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |
userCert defines the user certificate reference and is used for mTLS. When you use one-way TLS, you can ignore this property.
object
| Property | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
|
Name of the config map or secret containing certificates. |
|
|
Namespace of the config map or secret containing certificates. If omitted, the default is to use the same namespace as where Network Observability is deployed. If the namespace is different, the config map or the secret is copied so that it can be mounted as required. |
|
|
Type for the certificate reference: |