diff --git a/bundle/manifests/netobserv-informers_rbac.authorization.k8s.io_v1_clusterrole.yaml b/bundle/manifests/netobserv-informers_rbac.authorization.k8s.io_v1_clusterrole.yaml index 0408c5799..bdcc42bf6 100644 --- a/bundle/manifests/netobserv-informers_rbac.authorization.k8s.io_v1_clusterrole.yaml +++ b/bundle/manifests/netobserv-informers_rbac.authorization.k8s.io_v1_clusterrole.yaml @@ -22,3 +22,12 @@ rules: - get - list - watch +- apiGroups: + - k8s.ovn.org + resources: + - clusteruserdefinednetworks + - userdefinednetworks + verbs: + - get + - list + - watch diff --git a/bundle/manifests/netobserv-operator.clusterserviceversion.yaml b/bundle/manifests/netobserv-operator.clusterserviceversion.yaml index a6fa49d54..d36ab3fbe 100644 --- a/bundle/manifests/netobserv-operator.clusterserviceversion.yaml +++ b/bundle/manifests/netobserv-operator.clusterserviceversion.yaml @@ -1109,6 +1109,15 @@ spec: - get - patch - update + - apiGroups: + - k8s.ovn.org + resources: + - clusteruserdefinednetworks + - userdefinednetworks + verbs: + - get + - list + - watch - apiGroups: - loki.grafana.com resources: diff --git a/config/rbac/component_roles.yaml b/config/rbac/component_roles.yaml index 8468ed37e..9b4204090 100644 --- a/config/rbac/component_roles.yaml +++ b/config/rbac/component_roles.yaml @@ -78,6 +78,15 @@ rules: - get - list - watch +- apiGroups: + - k8s.ovn.org + resources: + - clusteruserdefinednetworks + - userdefinednetworks + verbs: + - get + - list + - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml index 8ea315072..dd937b3d6 100644 --- a/config/rbac/role.yaml +++ b/config/rbac/role.yaml @@ -155,6 +155,15 @@ rules: - get - patch - update +- apiGroups: + - k8s.ovn.org + resources: + - clusteruserdefinednetworks + - userdefinednetworks + verbs: + - get + - list + - watch - apiGroups: - loki.grafana.com resources: diff --git a/controllers/consoleplugin/config/config.go b/controllers/consoleplugin/config/config.go index ae74ce363..66924ddca 100644 --- a/controllers/consoleplugin/config/config.go +++ b/controllers/consoleplugin/config/config.go @@ -105,7 +105,6 @@ type FieldConfig struct { Type string `yaml:"type" json:"type"` Description string `yaml:"description" json:"description"` LokiLabel bool `yaml:"lokiLabel,omitempty" json:"lokiLabel,omitempty"` - Filter string `yaml:"filter,omitempty" json:"filter,omitempty"` } type FrontendConfig struct { diff --git a/controllers/consoleplugin/config/static-frontend-config.yaml b/controllers/consoleplugin/config/static-frontend-config.yaml index 3c48e1392..8ef540fb2 100644 --- a/controllers/consoleplugin/config/static-frontend-config.yaml +++ b/controllers/consoleplugin/config/static-frontend-config.yaml @@ -175,8 +175,9 @@ columns: tooltip: Network name, such as Secondary network or UDN. field: SrcK8S_NetworkName filter: src_network - default: false + default: true width: 15 + feature: multiNetworks - id: DstK8S_Name group: Destination name: Name @@ -315,8 +316,9 @@ columns: tooltip: Network name, such as Secondary network or UDN. field: DstK8S_NetworkName filter: dst_network - default: false + default: true width: 15 + feature: multiNetworks - id: K8S_Name name: Names calculated: '[SrcK8S_Name,DstK8S_Name]' @@ -458,7 +460,7 @@ columns: tooltip: The list of User Defined Networks. field: Udns filter: udns - default: true + default: false width: 15 feature: udnMapping - id: FlowDirInts @@ -483,7 +485,6 @@ columns: fields: - Packets - PktDropPackets - filter: pkt_drop_cause default: true width: 5 - id: FlowDuration @@ -523,6 +524,7 @@ columns: name: Drop State tooltip: TCP state on last dropped packet. field: PktDropLatestState + filter: pkt_drop_state default: false width: 10 feature: pktDrop @@ -530,6 +532,7 @@ columns: name: Drop Cause tooltip: TCP state on last dropped packet. field: PktDropLatestDropCause + filter: pkt_drop_cause default: false width: 10 feature: pktDrop @@ -1094,7 +1097,7 @@ scopes: labels: - SrcK8S_NetworkName - DstK8S_NetworkName - feature: udnMapping + feature: multiNetworks filters: - src_network - dst_network @@ -1377,11 +1380,9 @@ fields: - name: PktDropLatestState type: string description: TCP state on last dropped packet - filter: pkt_drop_state # couldn't guess from config - name: PktDropLatestDropCause type: string description: Latest drop cause - filter: pkt_drop_cause # couldn't guess from config - name: PktDropLatestFlags type: number description: TCP flags on last dropped packet diff --git a/controllers/consoleplugin/consoleplugin_objects.go b/controllers/consoleplugin/consoleplugin_objects.go index 633a84f0e..4991b4ef5 100644 --- a/controllers/consoleplugin/consoleplugin_objects.go +++ b/controllers/consoleplugin/consoleplugin_objects.go @@ -455,6 +455,10 @@ func (b *builder) setFrontendConfig(fconf *cfg.FrontendConfig) error { fconf.Features = append(fconf.Features, "udnMapping") } + if helper.IsUDNMappingEnabled(&b.desired.Agent.EBPF) || helper.HasSecondaryIndexes(&b.desired.Processor) { + fconf.Features = append(fconf.Features, "multiNetworks") + } + if helper.IsIPSecEnabled(&b.desired.Agent.EBPF) { fconf.Features = append(fconf.Features, "ipsec") } diff --git a/helm/templates/clusterrole.yaml b/helm/templates/clusterrole.yaml index 4a6768fe7..0566c6202 100644 --- a/helm/templates/clusterrole.yaml +++ b/helm/templates/clusterrole.yaml @@ -154,6 +154,15 @@ rules: - get - patch - update + - apiGroups: + - k8s.ovn.org + resources: + - clusteruserdefinednetworks + - userdefinednetworks + verbs: + - get + - list + - watch - apiGroups: - loki.grafana.com resources: diff --git a/pkg/helper/flowcollector.go b/pkg/helper/flowcollector.go index 177204fc7..174cc571e 100644 --- a/pkg/helper/flowcollector.go +++ b/pkg/helper/flowcollector.go @@ -166,6 +166,10 @@ func IsEBPFFlowFilterEnabled(spec *flowslatest.FlowCollectorEBPF) bool { return spec.FlowFilter != nil && spec.FlowFilter.Enable != nil && *spec.FlowFilter.Enable } +func HasSecondaryIndexes(spec *flowslatest.FlowCollectorFLP) bool { + return spec.Advanced != nil && len(spec.Advanced.SecondaryNetworks) > 0 +} + func GetEBPFMetricsPort(spec *flowslatest.FlowCollectorEBPF) int32 { port := int32(constants.EBPFMetricPort) if spec.Metrics.Server.Port != nil { diff --git a/pkg/manager/manager.go b/pkg/manager/manager.go index 4f543fbdc..bfebb1771 100644 --- a/pkg/manager/manager.go +++ b/pkg/manager/manager.go @@ -41,6 +41,7 @@ import ( //+kubebuilder:rbac:groups=apiextensions.k8s.io,resources=customresourcedefinitions,verbs=get;list;watch //+kubebuilder:rbac:groups=apiextensions.k8s.io,resources=customresourcedefinitions/status,verbs=update;patch //+kubebuilder:rbac:groups=autoscaling,resources=horizontalpodautoscalers,verbs=create;delete;patch;update;get;watch;list +//+kubebuilder:rbac:groups=k8s.ovn.org,resources=userdefinednetworks;clusteruserdefinednetworks,verbs=get;list;watch type Registerer func(context.Context, *Manager) error