You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: modules/network-observability-flowcollector-api-specifications.adoc
+50-91Lines changed: 50 additions & 91 deletions
Original file line number
Diff line number
Diff line change
@@ -154,7 +154,7 @@ is set to `eBPF`.
154
154
155
155
| `type`
156
156
| `string`
157
-
| `type` [deprecated *] selects the flows tracing agent. Previously, this field allowed to select between `eBPF` or `IPFIX`.
157
+
| `type` [deprecated (*)] selects the flows tracing agent. Previously, this field allowed to select between `eBPF` or `IPFIX`.
158
158
Only `eBPF` is allowed now, so this field is deprecated and is planned for removal in a future version of the API.
159
159
160
160
|===
@@ -180,7 +180,8 @@ Type::
180
180
| `object`
181
181
| `advanced` allows setting some aspects of the internal configuration of the eBPF agent.
182
182
This section is aimed mostly for debugging and fine-grained performance optimizations,
183
-
such as `GOGC` and `GOMAXPROCS` env vars. Set these values at your own risk.
183
+
such as `GOGC` and `GOMAXPROCS` environment vars. Set these values at your own risk. You can also
184
+
override the default Linux capabilities from there.
184
185
185
186
| `cacheActiveTimeout`
186
187
| `string`
@@ -205,25 +206,28 @@ Otherwise it is matched as a case-sensitive string.
205
206
| List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are: +
206
207
207
208
- `PacketDrop`: Enable the packets drop flows logging feature. This feature requires mounting
208
-
the kernel debug filesystem, so the eBPF agent pods must run as privileged.
209
-
If the `spec.agent.ebpf.privileged` parameter is not set, an error is reported. +
209
+
the kernel debug filesystem, so the eBPF agent pods must run as privileged via `spec.agent.ebpf.privileged`. +
210
210
211
211
- `DNSTracking`: Enable the DNS tracking feature. +
212
212
213
213
- `FlowRTT`: Enable flow latency (sRTT) extraction in the eBPF agent from TCP traffic. +
214
214
215
215
- `NetworkEvents`: Enable the network events monitoring feature, such as correlating flows and network policies.
216
-
This feature requires mounting the kernel debug filesystem, so the eBPF agent pods must run as privileged.
217
-
It requires using the OVN-Kubernetes network plugin with the Observability feature. +
218
-
IMPORTANT: This feature is available as a Technology Preview.
216
+
This feature requires mounting the kernel debug filesystem, so the eBPF agent pods must run as privileged via `spec.agent.ebpf.privileged`.
217
+
It requires using the OVN-Kubernetes network plugin with the Observability feature.
218
+
IMPORTANT: This feature is available as a Technology Preview. +
219
219
220
220
- `PacketTranslation`: Enable enriching flows with packet translation information, such as Service NAT. +
221
221
222
-
- `EbpfManager`: Unsupported * . Use eBPF Manager to manage Network Observability eBPF programs. Pre-requisite: the eBPF Manager operator (or upstream bpfman operator) must be installed. +
222
+
- `EbpfManager`: [Unsupported (*)]. Use eBPF Manager to manage Network Observability eBPF programs. Pre-requisite: the eBPF Manager operator (or upstream bpfman operator) must be installed. +
223
+
224
+
- `UDNMapping`: Enable interfaces mapping to User Defined Networks (UDN). +
225
+
226
+
This feature requires mounting the kernel debug filesystem, so the eBPF agent pods must run as privileged via `spec.agent.ebpf.privileged`.
227
+
It requires using the OVN-Kubernetes network plugin with the Observability feature. +
228
+
229
+
- `IPSec`, to track flows between nodes with IPsec encryption. +
223
230
224
-
- `UDNMapping`: Unsupported *. Enable interfaces mapping to User Defined Networks (UDN). +
225
-
This feature requires mounting the kernel debug filesystem, so the eBPF agent pods must run as privileged.
226
-
It requires using the OVN-Kubernetes network plugin with the Observability feature.
227
231
228
232
| `flowFilter`
229
233
| `object`
@@ -255,7 +259,7 @@ Otherwise it is matched as a case-sensitive string.
255
259
| `privileged`
256
260
| `boolean`
257
261
| Privileged mode for the eBPF Agent container. When ignored or set to `false`, the operator sets
258
-
granular capabilities (BPF, PERFMON, NET_ADMIN, SYS_RESOURCE) to the container.
262
+
granular capabilities (BPF, PERFMON, NET_ADMIN) to the container.
259
263
If for some reason these capabilities cannot be set, such as if an old kernel version not knowing CAP_BPF
260
264
is in use, then you can turn on this mode for more global privileges.
261
265
Some agent features require the privileged mode, such as packet drops tracking (see `features`) and SR-IOV support.
@@ -267,7 +271,7 @@ For more information, see https://kubernetes.io/docs/concepts/configuration/mana
267
271
268
272
| `sampling`
269
273
| `integer`
270
-
| Sampling rate of the flow reporter. 100 means one flow on 100 is sent. 0 or 1 means all flows are sampled.
274
+
| Sampling ratio of the eBPF probe. 100 means one packet on 100 is sent. 0 or 1 means all packets are sampled.
271
275
272
276
|===
273
277
== .spec.agent.ebpf.advanced
@@ -276,7 +280,8 @@ Description::
276
280
--
277
281
`advanced` allows setting some aspects of the internal configuration of the eBPF agent.
278
282
This section is aimed mostly for debugging and fine-grained performance optimizations,
279
-
such as `GOGC` and `GOMAXPROCS` env vars. Set these values at your own risk.
283
+
such as `GOGC` and `GOMAXPROCS` environment vars. Set these values at your own risk. You can also
284
+
override the default Linux capabilities from there.
280
285
--
281
286
282
287
Type::
@@ -289,6 +294,10 @@ Type::
289
294
|===
290
295
| Property | Type | Description
291
296
297
+
| `capOverride`
298
+
| `array (string)`
299
+
| Linux capabilities override, when not running as privileged. Default capabilities are BPF, PERFMON and NET_ADMIN.
300
+
292
301
| `env`
293
302
| `object (string)`
294
303
| `env` allows passing custom environment variables to underlying components. Useful for passing
@@ -448,7 +457,7 @@ Unsupported *.
448
457
449
458
| `sampling`
450
459
| `integer`
451
-
| `sampling` sampling rate for the matched flows, overriding the global sampling defined at `spec.agent.ebpf.sampling`.
460
+
| `sampling` is the sampling ratio for the matched packets, overriding the global sampling defined at `spec.agent.ebpf.sampling`.
452
461
453
462
| `sourcePorts`
454
463
| `integer-or-string`
@@ -551,7 +560,7 @@ To filter two ports, use a "port1,port2" in string format. For example, `ports:
551
560
552
561
| `sampling`
553
562
| `integer`
554
-
| `sampling` sampling rate for the matched flows, overriding the global sampling defined at `spec.agent.ebpf.sampling`.
563
+
| `sampling` is the sampling ratio for the matched packets, overriding the global sampling defined at `spec.agent.ebpf.sampling`.
555
564
556
565
| `sourcePorts`
557
566
| `integer-or-string`
@@ -663,7 +672,7 @@ If set to `true`, the `providedCaFile` field is ignored.
663
672
| Select the type of TLS configuration: +
664
673
665
674
- `Disabled` (default) to not configure TLS for the endpoint.
666
-
- `Provided` to manually provide cert file and a key file. Unsupported *.
675
+
- `Provided` to manually provide cert file and a key file. [Unsupported (*)].
667
676
- `Auto` to use {product-title} auto generated certificate using annotations.
668
677
669
678
|===
@@ -793,7 +802,7 @@ Type::
793
802
| `object`
794
803
| `advanced` allows setting some aspects of the internal configuration of the console plugin.
795
804
This section is aimed mostly for debugging and fine-grained performance optimizations,
796
-
such as `GOGC` and `GOMAXPROCS` env vars. Set these values at your own risk.
805
+
such as `GOGC` and `GOMAXPROCS`environment vars. Set these values at your own risk.
797
806
798
807
| `autoscaler`
799
808
| `object`
@@ -835,7 +844,7 @@ Description::
835
844
--
836
845
`advanced` allows setting some aspects of the internal configuration of the console plugin.
837
846
This section is aimed mostly for debugging and fine-grained performance optimizations,
838
-
such as `GOGC` and `GOMAXPROCS` env vars. Set these values at your own risk.
847
+
such as `GOGC` and `GOMAXPROCS`environment vars. Set these values at your own risk.
- `Forward` forwards the user token for authorization. +
2081
2090
2082
-
- `Host` [deprecated *] - uses the local pod service account to authenticate to Loki. +
2091
+
- `Host` [deprecated (*)] - uses the local pod service account to authenticate to Loki. +
2083
2092
2084
2093
When using the Loki Operator, this must be set to `Forward`.
2085
2094
@@ -2695,7 +2704,7 @@ This feature requires the "topology.kubernetes.io/zone" label to be set on nodes
2695
2704
| `object`
2696
2705
| `advanced` allows setting some aspects of the internal configuration of the flow processor.
2697
2706
This section is aimed mostly for debugging and fine-grained performance optimizations,
2698
-
such as `GOGC` and `GOMAXPROCS` env vars. Set these values at your own risk.
2707
+
such as `GOGC` and `GOMAXPROCS` environment vars. Set these values at your own risk.
2699
2708
2700
2709
| `clusterName`
2701
2710
| `string`
@@ -2704,14 +2713,12 @@ such as `GOGC` and `GOMAXPROCS` env vars. Set these values at your own risk.
2704
2713
| `deduper`
2705
2714
| `object`
2706
2715
| `deduper` allows you to sample or drop flows identified as duplicates, in order to save on resource usage.
2707
-
Unsupported *.
2708
2716
2709
2717
| `filters`
2710
2718
| `array`
2711
2719
| `filters` lets you define custom filters to limit the amount of generated flows.
2712
2720
These filters provide more flexibility than the eBPF Agent filters (in `spec.agent.ebpf.flowFilter`), such as allowing to filter by Kubernetes namespace,
2713
2721
but with a lesser improvement in performance.
2714
-
Unsupported *.
2715
2722
2716
2723
| `imagePullPolicy`
2717
2724
| `string`
@@ -2745,9 +2752,9 @@ This setting is ignored when Kafka is disabled.
2745
2752
2746
2753
- `Flows` to export regular network flows. This is the default. +
2747
2754
2748
-
- `Conversations` to generate events for started conversations, ended conversations as well as periodic "tick" updates. +
2755
+
- `Conversations` to generate events for started conversations, ended conversations as well as periodic "tick" updates. Note that in this mode, Prometheus metrics are not accurate on long-standing conversations. +
2749
2756
2750
-
- `EndedConversations` to generate only ended conversations events. +
2757
+
- `EndedConversations` to generate only ended conversations events. Note that in this mode, Prometheus metrics are not accurate on long-standing conversations. +
2751
2758
2752
2759
- `All` to generate both network flows and all conversations events. It is not recommended due to the impact on resources footprint. +
2753
2760
@@ -2777,7 +2784,7 @@ Description::
2777
2784
--
2778
2785
`advanced` allows setting some aspects of the internal configuration of the flow processor.
2779
2786
This section is aimed mostly for debugging and fine-grained performance optimizations,
2780
-
such as `GOGC` and `GOMAXPROCS` env vars. Set these values at your own risk.
2787
+
such as `GOGC` and `GOMAXPROCS` environment vars. Set these values at your own risk.
2781
2788
--
2782
2789
2783
2790
Type::
@@ -2805,7 +2812,7 @@ This delay is ignored when a FIN packet is collected for TCP flows (see `convers
2805
2812
2806
2813
| `dropUnusedFields`
2807
2814
| `boolean`
2808
-
| `dropUnusedFields` [deprecated *] this setting is not used anymore.
2815
+
| `dropUnusedFields` [deprecated (*)] this setting is not used anymore.
2809
2816
2810
2817
| `enableKubeProbes`
2811
2818
| `boolean`
@@ -2912,7 +2919,8 @@ Description::
2912
2919
+
2913
2920
--
2914
2921
Defines secondary networks to be checked for resources identification.
2915
-
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.
2922
+
To guarantee a correct identification, indexed values must form an unique identifier across the cluster.
2923
+
If the same index is used by several resources, those resources might be incorrectly labeled.
2916
2924
--
2917
2925
2918
2926
Type::
@@ -2957,7 +2965,6 @@ Description::
2957
2965
+
2958
2966
--
2959
2967
`deduper` allows you to sample or drop flows identified as duplicates, in order to save on resource usage.
2960
-
Unsupported *.
2961
2968
--
2962
2969
2963
2970
Type::
@@ -2972,7 +2979,7 @@ Type::
2972
2979
2973
2980
| `mode`
2974
2981
| `string`
2975
-
| Set the Processor de-duplication mode. It comes in addition to the Agent-based deduplication because the Agent cannot de-duplicate same flows reported from different nodes. +
2982
+
| 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. +
2976
2983
2977
2984
- Use `Drop` to drop every flow considered as duplicates, allowing saving more on resource usage but potentially losing some information such as the network interfaces used from peer, or network events. +
2978
2985
@@ -2983,7 +2990,7 @@ Type::
2983
2990
2984
2991
| `sampling`
2985
2992
| `integer`
2986
-
| `sampling` is the sampling rate when deduper `mode` is `Sample`.
2993
+
| `sampling` is the sampling ratio when deduper `mode` is `Sample`. For example, a value of `50` means that 1 flow in 50 is sampled.
2987
2994
2988
2995
|===
2989
2996
== .spec.processor.filters
@@ -2993,7 +3000,6 @@ Description::
2993
3000
`filters` lets you define custom filters to limit the amount of generated flows.
2994
3001
These filters provide more flexibility than the eBPF Agent filters (in `spec.agent.ebpf.flowFilter`), such as allowing to filter by Kubernetes namespace,
2995
3002
but with a lesser improvement in performance.
2996
-
Unsupported *.
2997
3003
--
2998
3004
2999
3005
Type::
@@ -3019,64 +3025,17 @@ Type::
3019
3025
|===
3020
3026
| Property | Type | Description
3021
3027
3022
-
| `allOf`
3023
-
| `array`
3024
-
| `filters` is a list of matches that must be all satisfied in order to remove a flow.
3025
-
3026
3028
| `outputTarget`
3027
3029
| `string`
3028
-
| If specified, these filters only target a single output: `Loki`, `Metrics` or `Exporters`. By default, all outputs are targeted.
3029
-
3030
-
| `sampling`
3031
-
| `integer`
3032
-
| `sampling` is an optional sampling rate to apply to this filter.
3033
-
3034
-
|===
3035
-
== .spec.processor.filters[].allOf
3036
-
Description::
3037
-
+
3038
-
--
3039
-
`filters` is a list of matches that must be all satisfied in order to remove a flow.
3040
-
--
3041
-
3042
-
Type::
3043
-
`array`
3044
-
3045
-
3046
-
3047
-
3048
-
== .spec.processor.filters[].allOf[]
3049
-
Description::
3050
-
+
3051
-
--
3052
-
`FLPSingleFilter` defines the desired configuration for a single FLP-based filter.
3053
-
--
3054
-
3055
-
Type::
3056
-
`object`
3057
-
3058
-
Required::
3059
-
- `field`
3060
-
- `matchType`
3061
-
3062
-
3063
-
3064
-
[cols="1,1,1",options="header"]
3065
-
|===
3066
-
| Property | Type | Description
3067
-
3068
-
| `field`
3069
-
| `string`
3070
-
| Name of the field to filter on.
3071
-
Refer to the documentation for the list of available fields: https://github.com/netobserv/network-observability-operator/blob/main/docs/flows-format.adoc.
3030
+
| If specified, these filters target a single output: `Loki`, `Metrics` or `Exporters`. By default, all outputs are targeted.
3072
3031
3073
-
| `matchType`
3032
+
| `query`
3074
3033
| `string`
3075
-
| Type of matching to apply.
3034
+
| 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.
3076
3035
3077
-
| `value`
3078
-
| `string`
3079
-
| Value to filter on. When `matchType` is `Equal` or `NotEqual`, you can use field injection with `$(SomeField)` to refer to any other field of the flow.
3036
+
| `sampling`
3037
+
| `integer`
3038
+
| `sampling` is an optional sampling ratio to apply to this filter. For example, a value of `50` means that 1 matching flow in 50 is sampled.
3080
3039
3081
3040
|===
3082
3041
== .spec.processor.kafkaConsumerAutoscaler
@@ -3201,7 +3160,7 @@ If set to `true`, the `providedCaFile` field is ignored.
3201
3160
| Select the type of TLS configuration: +
3202
3161
3203
3162
- `Disabled` (default) to not configure TLS for the endpoint.
3204
-
- `Provided` to manually provide cert file and a key file. Unsupported *.
3163
+
- `Provided` to manually provide cert file and a key file. [Unsupported (*)].
3205
3164
- `Auto` to use {product-title} auto generated certificate using annotations.
3206
3165
3207
3166
|===
@@ -3595,4 +3554,4 @@ If the namespace is different, the config map or the secret is copied so that it
3595
3554
| `string`
3596
3555
| Type for the certificate reference: `configmap` or `secret`.
0 commit comments