# defaults to spec.namespace
# Console plugin read timeout
- # readTimeout: 30s
+ # readTimeout: 30s # default
# # Write stage configuration
- # writeTimeout: 10s
- # writeBatchWait: 1s
- # writeBatchSize: 10485760
+ # writeTimeout: 10s # default
+ # writeBatchWait: 1s # default
+ # writeBatchSize: 10485760 # default
# prometheus:
# querier:
- # enable: true
- # mode: Auto
- # timeout: 30s
- consolePlugin:
- enable: true
- # imagePullPolicy: IfNotPresent
- # logLevel: info
- # Scaling configuration
- # replicas: 1
- # autoscaler:
- # status: Disabled
- # minReplicas: 1
- # maxReplicas: 3
- # metrics:
- # - type: Resource
- # resource:
- # name: cpu
- # target:
- # type: Utilization
- # averageUtilization: 50
- # Custom optionnal port-to-service name translation
- # portNaming:
- # enable: true
- # portNames:
- # "3100": loki
- # Custom optionnal filter presets
- # quickFilters:
- # - name: Applications
- # filter:
- # flow_layer: '"app"'
- # default: true
- # - name: Infrastructure
- # filter:
- # flow_layer: '"infra"'
- # - name: Pods network
- # filter:
- # src_kind: '"Pod"'
- # dst_kind: '"Pod"'
- # default: true
- # - name: Services network
- # filter:
- # dst_kind: '"Service"'
- # - name: External ingress
- # filter:
- # src_subnet_label: '"",EXT:'
- # - name: External egress
- # filter:
- # dst_subnet_label: '"",EXT:'
- # Custom optionnal resources configuration
- # resources:
- # requests:
- # memory: 50Mi
- # cpu: 100m
- # limits:
- # memory: 100Mi
- exporters: []
- # - type: Kafka
- # kafka:
- # address: "kafka-cluster-kafka-bootstrap.netobserv"
- # topic: netobserv-flows-export
- # or
- # - type: IPFIX
- # ipfix:
- # # see https://github.com/netobserv/flowlogs-pipeline/blob/main/contrib/kubernetes/ipfix-collector-stdout.yaml
- # targetHost: "flp-ipfix-stdout.netobserv.svc.cluster.local"
- # targetPort: 2055
- # transport: UDP
- # enterpriseID: 2021
- # or
- # - type: OpenTelemetry
- # openTelemetry:
- # targetHost: "1.2.3.4:443"
- # targetPort: 4317
- # protocol: grpc
- # logs:
- # enable: true
- # metrics:
- # enable: true
- # prefix: netobserv
- # pushTimeInterval: 20s
- # expiryTime: 2m
+ # enable: true # default
+ # mode: Auto # default
+ # timeout: 30s # default
+ # consolePlugin:
+ # enable: true # default
+ # standalone: false # default
+ # imagePullPolicy: IfNotPresent # default
+ # logLevel: info # default
+ # # Scaling configuration
+ # replicas: 1 # default
+ # unmanagedReplicas: false # default - Set to true when using external autoscaler
+ # autoscaler: # deprecated
+ # status: Disabled
+ # minReplicas: 1
+ # maxReplicas: 3
+ # metrics:
+ # - type: Resource
+ # resource:
+ # name: cpu
+ # target:
+ # type: Utilization
+ # averageUtilization: 50
+ # # Custom optional port-to-service name translation
+ # portNaming:
+ # enable: true # default
+ # portNames:
+ # "3100": loki
+ # # Custom optional filter presets (defaults provided, override here if needed)
+ # quickFilters:
+ # - name: Applications
+ # filter:
+ # flow_layer: '"app"'
+ # default: true
+ # - name: Infrastructure
+ # filter:
+ # flow_layer: '"infra"'
+ # - name: Pods network
+ # filter:
+ # src_kind: '"Pod"'
+ # dst_kind: '"Pod"'
+ # default: true
+ # - name: Services network
+ # filter:
+ # dst_kind: '"Service"'
+ # - name: External ingress
+ # filter:
+ # src_subnet_label: '"",EXT:'
+ # - name: External egress
+ # filter:
+ # dst_subnet_label: '"",EXT:'
+ # # Custom optional resources configuration
+ # resources:
+ # requests:
+ # memory: 50Mi
+ # cpu: 100m
+ # limits:
+ # memory: 100Mi
+ # exporters: # empty by default, uncomment examples below to add exporters
+ # Example: Kafka exporter
+ # - type: Kafka
+ # kafka:
+ # address: "kafka-cluster-kafka-bootstrap.netobserv"
+ # topic: netobserv-flows-export
+ # Example: IPFIX exporter
+ # - type: IPFIX
+ # ipfix:
+ # # see https://github.com/netobserv/flowlogs-pipeline/blob/main/contrib/kubernetes/ipfix-collector-stdout.yaml
+ # targetHost: "flp-ipfix-stdout.netobserv.svc.cluster.local"
+ # targetPort: 2055
+ # transport: UDP
+ # enterpriseID: 2021
+ # Example: OpenTelemetry exporter
+ # - type: OpenTelemetry
+ # openTelemetry:
+ # targetHost: "1.2.3.4:443"
+ # targetPort: 4317
+ # protocol: grpc
+ # logs:
+ # enable: true # default
+ # metrics:
+ # enable: true # default
+ # prefix: netobserv
+ # pushTimeInterval: 20s
+ # expiryTime: 2m
diff --git a/docs/FlowCollector.md b/docs/FlowCollector.md
index 6b9a932f3..e391a9141 100644
--- a/docs/FlowCollector.md
+++ b/docs/FlowCollector.md
@@ -368,6 +368,8 @@ Otherwise it is matched as a case-sensitive string.
Privileged mode for the eBPF Agent container. When set to `true`, the agent is able to capture more traffic, including from secondary interfaces.
When ignored or set to `false`, the operator sets granular capabilities (BPF, PERFMON, NET_ADMIN) to the container.
Some agent features require the privileged mode, such as packet drops tracking (see `features`) and SR-IOV support.
+
+ Default: false
false |
@@ -2239,6 +2241,8 @@ To filter two ports, use a "port1,port2" in string format. For example, `ports:
| boolean |
Set `enable` to `true` to enable the eBPF flow filtering feature.
+
+ Default: false
|
false |
@@ -2510,6 +2514,8 @@ Possible values are:
boolean |
Set `enable` to `false` to disable eBPF agent metrics collection. It is enabled by default.
+
+ Default: true
|
false |
@@ -3087,6 +3093,8 @@ For more information, see https://kubernetes.io/docs/concepts/configuration/mana
Deploy as a standalone console, instead of a plugin of the OpenShift Console.
This is not recommended when using with OpenShift, as it doesn't provide an integrated experience.
[Unsupported (*)].
+
+ Default: false
false |
@@ -3094,6 +3102,8 @@ This is not recommended when using with OpenShift, as it doesn't provide an inte
| boolean |
If `unmanagedReplicas` is `true`, the operator will not reconcile `replicas`. This is useful when using a pod autoscaler.
+
+ Default: false
|
false |
@@ -5912,6 +5922,8 @@ for example, `filter: {"src_namespace": "namespace1,namespace2"}`.
boolean |
`default` defines whether this filter should be active by default or not
+
+ Default: false
|
false |
@@ -8425,6 +8437,8 @@ enriches them, generates metrics, and forwards them to the Loki persistence laye
`addZone` allows availability zone awareness by labeling flows with their source and destination zones.
This feature requires the "topology.kubernetes.io/zone" label to be set on nodes.
+
+ Default: false
|
false |
@@ -8592,6 +8606,8 @@ When a subnet matches the source or destination IP of a flow, a corresponding fi
| boolean |
If `unmanagedReplicas` is `true`, the operator will not reconcile `consumerReplicas`. This is useful when using a pod autoscaler.
+
+ Default: false
|
false |
@@ -12136,6 +12152,8 @@ If `openShiftAutoDetect` is enabled, `customLabels` overrides the detected subne
`openShiftAutoDetect` allows, when set to `true`, to detect automatically the machines, pods and services subnets based on the
OpenShift install configuration and the Cluster Network Operator configuration. Indirectly, this is a way to accurately detect
external traffic: flows that are not labeled for those subnets are external to the cluster. Enabled by default on OpenShift.
+
+ Default: true
false |
@@ -12242,6 +12260,8 @@ Not all queries are transposable from Loki to Prometheus. Hence, if Loki is disa
such as getting per-pod information or viewing raw flows.
If both Prometheus and Loki are enabled, Prometheus takes precedence and Loki is used as a fallback for queries that Prometheus cannot handle.
If they are both disabled, the Console plugin is not deployed.
+
+ Default: true
false |
@@ -12282,6 +12302,15 @@ Prometheus configuration for `Manual` mode.
+ | forwardUserToken |
+ boolean |
+
+ Set `true` to forward logged in user token in queries to Prometheus
+
+ Default: false
+ |
+ true |
+
| alertManager |
object |
@@ -12290,13 +12319,6 @@ When used in OpenShift it can be left empty to use the Console API instead.
[Unsupported (*)].
|
false |
-
- | forwardUserToken |
- boolean |
-
- Set `true` to forward logged in user token in queries to Prometheus
- |
- false |
| tls |
object |
diff --git a/helm/crds/flows.netobserv.io_flowcollectors.yaml b/helm/crds/flows.netobserv.io_flowcollectors.yaml
index 360026bde..f3718e694 100644
--- a/helm/crds/flows.netobserv.io_flowcollectors.yaml
+++ b/helm/crds/flows.netobserv.io_flowcollectors.yaml
@@ -1124,6 +1124,7 @@ spec:
- Egress
type: string
enable:
+ default: false
description: Set `enable` to `true` to enable the eBPF flow filtering feature.
type: boolean
icmpCode:
@@ -1353,6 +1354,7 @@ spec:
type: string
type: array
enable:
+ default: true
description: Set `enable` to `false` to disable eBPF agent metrics collection. It is enabled by default.
type: boolean
server:
@@ -1438,6 +1440,7 @@ spec:
type: object
type: object
privileged:
+ default: false
description: |-
Privileged mode for the eBPF Agent container. When set to `true`, the agent is able to capture more traffic, including from secondary interfaces.
When ignored or set to `false`, the operator sets granular capabilities (BPF, PERFMON, NET_ADMIN) to the container.
@@ -2930,6 +2933,7 @@ spec:
description: '`QuickFilter` defines preset configuration for Console''s quick filters'
properties:
default:
+ default: false
description: '`default` defines whether this filter should be active by default or not'
type: boolean
filter:
@@ -3021,12 +3025,14 @@ spec:
type: object
type: object
standalone:
+ default: false
description: |-
Deploy as a standalone console, instead of a plugin of the OpenShift Console.
This is not recommended when using with OpenShift, as it doesn't provide an integrated experience.
[Unsupported (*)].
type: boolean
unmanagedReplicas:
+ default: false
description: If `unmanagedReplicas` is `true`, the operator will not reconcile `replicas`. This is useful when using a pod autoscaler.
type: boolean
type: object
@@ -3960,6 +3966,7 @@ spec:
enriches them, generates metrics, and forwards them to the Loki persistence layer and/or any available exporter.
properties:
addZone:
+ default: false
description: |-
`addZone` allows availability zone awareness by labeling flows with their source and destination zones.
This feature requires the "topology.kubernetes.io/zone" label to be set on nodes.
@@ -5763,6 +5770,7 @@ spec:
type: object
type: array
openShiftAutoDetect:
+ default: true
description: |-
`openShiftAutoDetect` allows, when set to `true`, to detect automatically the machines, pods and services subnets based on the
OpenShift install configuration and the Cluster Network Operator configuration. Indirectly, this is a way to accurately detect
@@ -5770,6 +5778,7 @@ spec:
type: boolean
type: object
unmanagedReplicas:
+ default: false
description: If `unmanagedReplicas` is `true`, the operator will not reconcile `consumerReplicas`. This is useful when using a pod autoscaler.
type: boolean
type: object
@@ -5780,6 +5789,7 @@ spec:
description: Prometheus querying configuration, such as client settings, used in the Console plugin.
properties:
enable:
+ default: true
description: |-
When `enable` is `true`, the Console plugin queries flow metrics from Prometheus instead of Loki whenever possible.
It is enbaled by default: set it to `false` to disable this feature.
@@ -5867,6 +5877,7 @@ spec:
type: string
type: object
forwardUserToken:
+ default: false
description: Set `true` to forward logged in user token in queries to Prometheus
type: boolean
tls:
@@ -5937,6 +5948,8 @@ spec:
default: http://prometheus:9090
description: '`url` is the address of an existing Prometheus service to use for querying metrics.'
type: string
+ required:
+ - forwardUserToken
type: object
mode:
default: Auto
diff --git a/internal/controller/flowcollector_controller_iso_test.go b/internal/controller/flowcollector_controller_iso_test.go
index 8c5de03c4..abda958c1 100644
--- a/internal/controller/flowcollector_controller_iso_test.go
+++ b/internal/controller/flowcollector_controller_iso_test.go
@@ -81,6 +81,9 @@ func flowCollectorIsoSpecs() {
DropUnusedFields: ptr.To(false),
},
LogTypes: ptr.To(flowslatest.LogTypeAll),
+ SubnetLabels: flowslatest.SubnetLabels{
+ OpenShiftAutoDetect: ptr.To(true),
+ },
Metrics: flowslatest.FLPMetrics{
Server: flowslatest.MetricsServerConfig{
Port: ptr.To(int32(12347)),