A Bridge between SDN and Cloud Native (Project under CNCF)
This report summarizes scanner evidence for kubeovn/kube-ovn, a Go project with 2,415 GitHub stars. SynthScan examined 361,294 lines of code across 1333 source files, recording 237 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 0.9 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 215 finding(s).
Are imports declared and package/API names verified? 7 finding(s).
Are wrappers, guards, and repeated structures necessary? 29 finding(s).
Which changes need focused human review? 237 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 237 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/e2e/framework/log.go | 61 | COMMENT | |
| LOW | test/e2e/framework/expect.go | 101 | // - The complete error object is logged because it may contain | COMMENT |
| LOW | test/e2e/iptables-vpc-nat-gw/e2e_test.go | 3501 | // input shape per validateSnatRule in vpc_nat_gw_nat.go. iptables normalizes | COMMENT |
| LOW | test/e2e/ha/ha_test.go | 121 | // Role: follower | COMMENT |
| LOW | test/e2e/iptables-eip-qos/e2e_test.go | 481 | // From the NOTES section: | COMMENT |
| LOW | test/e2e/iptables-eip-qos/e2e_test.go | 501 | // │ Safe burst value: rate × 1 second (ensures burst >> MTU for low rates) │ | COMMENT |
| LOW | test/e2e/iptables-eip-qos/e2e_test.go | 901 | } | COMMENT |
| LOW | test/e2e/iptables-eip-qos/e2e_test.go | 1061 | } | COMMENT |
| LOW | test/e2e/iptables-eip-qos/e2e_test.go | 1301 | vpcQosParams.subnetProvider, | COMMENT |
| LOW | test/e2e/kube-ovn/underlay/underlay.go | 1461 | // - underlay pod -> overlay pod: hit existing 31000 dst overlay CIDR allow. | COMMENT |
| LOW | test/e2e/kube-ovn/optional_crd/optional_crd.go | 21 | evpnConfCRDName = "evpn-confs.kubeovn.io" | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 21 | # @section -- Global parameters | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 41 | # Note: This feature uses Helm "lookup" function, which is not compatible with tools such as ArgoCD. | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 61 | pods: | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 81 | v4: "10.16.0.1" | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 101 | # @section -- Network parameters of the CNI | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 121 | # -- Name of the join subnet once it gets generated in the cluster. | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 141 | enableSsl: false | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 161 | # @section -- Network parameters of the CNI | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 181 | # @section -- Network parameters of the CNI | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 201 | id: "100" | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 221 | enableNetworkPolicies: true | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 241 | # @section -- Opt-in/out Features | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 281 | # -- Location of the CNI configuration to be mounted inside the pod. | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 301 | # @section -- CNI configuration | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 321 | # -- Override image settings for kube-ovn-webhook. Empty fields fall back to the global kube-ovn image. | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 341 | labels: {} | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 361 | # (`controller.serviceMonitor.enabled`, `monitor.serviceMonitor.enabled`, | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 381 | # `release` selector of a kube-prometheus-stack installation. | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 401 | # @section -- Grafana dashboards configuration | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 421 | datasource: "Prometheus" | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 441 | # @section -- NAT gateways configuration | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 461 | # -- Image repository. | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 481 | # Enforcement "standard" blocks everything except what is allowed by the network policies. | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 501 | # @section -- ACL sampling configuration | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 521 | # @section -- API Network Attachment Definition configuration | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 541 | # @section -- API Network Attachment Definition configuration | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 561 | # @section -- OVS/OVN daemons configuration | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 641 | # ref: https://kubeovn.github.io/docs/v1.12.x/en/advance/dpdk/ | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 701 | # @section -- BGP speaker configuration | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 721 | COMMENT | |
| LOW | charts/kube-ovn-v2/values.yaml | 741 | requests: | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 761 | # @section -- Ping daemon configuration | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 781 | annotations: {} | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 821 | serviceMonitor: | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 841 | # -- Domains to resolve and to ping. | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 861 | # -- Override image settings for kube-ovn-monitor. Empty fields fall back to the global kube-ovn image. | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 881 | labels: {} | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 901 | memory: "200Mi" | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 921 | # -- Each entry should look like the following: | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 941 | serviceMonitor: | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 961 | retryPeriod: "" | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 981 | # @section -- Kube-OVN controller configuration | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 1001 | cpu: "200m" | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 1021 | # -- User-required node affinity matchExpressions. Each entry should be a series of match expressions to be AND'd to | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 1041 | # @default -- "{}" | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 1061 | # @section -- OVN-central daemon configuration | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 1121 | # -- - key: topology.kubernetes.io/zone | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 1141 | # @section -- OVN-central daemon configuration. | COMMENT |
| LOW | charts/kube-ovn-v2/values.yaml | 1161 | # -- Tag override for this component image. Defaults to `.global.images.kubeovn.tag`. | COMMENT |
| 112 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | hack/network_e2e_diagnostics.py | 738 | except ProcessLookupError: | CODE |
| HIGH | hack/network_e2e_diagnostics.py | 500 | except ProcessLookupError: | CODE |
| HIGH | hack/network_e2e_diagnostics.py | 678 | except ProcessLookupError: | CODE |
| HIGH | hack/network_e2e_diagnostics.py | 687 | except ProcessLookupError: | CODE |
| HIGH | hack/network_e2e_diagnostics.py | 734 | except ProcessLookupError: | CODE |
| HIGH | hack/network_e2e_diagnostics.py | 769 | except ProcessLookupError: | CODE |
| HIGH | hack/network_e2e_diagnostics.py | 69 | except ProcessLookupError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | pkg/webhook/static_ip.go | 96 | staticIPSAnno := o.Spec.JobTemplate.Spec.Template.GetAnnotations()[util.IPPoolAnnotation] | CODE |
| CRITICAL | pkg/webhook/static_ip.go | 101 | return v.validateIP(ctx, o.Spec.JobTemplate.Spec.Template.GetAnnotations(), o.Kind, o.GetName(), o.GetNamespace()) | CODE |
| CRITICAL | pkg/controller/ipsec_cleanup.go | 129 | if status.Name == "ipsec-cleanup" && status.State.Terminated != nil && status.State.Terminated.ExitCode == 0 && !stat | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ary-cni/testconfigs/LogicalNetwork/00-lnet-simple.yaml | 7 | # Create a namespace | COMMENT |
| MEDIUM | …e2e/non-primary-cni/testconfigs/VPC/00-vpc-simple.yaml | 5 | # Create the test namespace | COMMENT |
| MEDIUM | …e2e/non-primary-cni/testconfigs/VPC/01-vpc-nat-gw.yaml | 4 | # Create a namespace | COMMENT |
| MEDIUM | …e2e/non-primary-cni/testconfigs/VPC/01-vpc-nat-gw.yaml | 12 | # Create a VPC | COMMENT |
| MEDIUM | …e2e/non-primary-cni/testconfigs/VPC/01-vpc-nat-gw.yaml | 44 | # Create a subnet | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | hack/network_e2e_diagnostics.py | 218 | case "$(cat "$proc/comm" 2>/dev/null)" in | STRING |
| HIGH | hack/network_e2e_diagnostics.py | 451 | trap 'if [ -n "$child" ]; then kill -TERM "$child" 2>/dev/null || true; fi; rm -f "$pidfile"' EXIT | CODE |
| HIGH | hack/test-ovn-db-mode.py | 100 | db-name) [[ "$2" == *ovnnb* ]] && echo OVN_Northbound || echo OVN_Southbound ;; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/e2e/non-primary-cni/e2e_test.go | 731 | // name is absent. This is more robust across iptables variants | COMMENT |
| MEDIUM | hack/test-ipsec-runtime.sh | 4 | # This harness uses private Docker network namespaces. It never attaches an | COMMENT |
| MEDIUM | pkg/ovs/ovn-nb-nat.go | 52 | // addOrUpdateDnatAndSnat is the robust path for dnat_and_snat. | COMMENT |
| MEDIUM | pkg/controller/switch_lb_rule.go | 252 | // the VIP cleanup path robust when a concurrent service-delete event races ahead | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hack/test-ipsec-monitor.py | 30 | def test_current_children_are_not_mistaken_for_obsolete_interfaces(self): | CODE |
| LOW | hack/test-ipsec-monitor.py | 61 | def test_intent_records_versions_and_refuses_a_different_lease(self): | CODE |
| LOW | hack/test-ovn-db-mode.py | 135 | def test_new_single_instance_uses_standalone(self): | STRING |
| LOW⚡ | hack/test-ovn-db-mode.py | 146 | def test_multiple_instances_keep_raft(self): | STRING |
| LOW⚡ | hack/test-ovn-db-mode.py | 154 | def test_multiple_replicas_accept_standalone_files(self): | STRING |
| LOW⚡ | hack/test-ovn-db-mode.py | 162 | def test_existing_standalone_restarts_without_rewriting_data(self): | STRING |
| LOW⚡ | hack/test-ovn-db-mode.py | 169 | def test_existing_raft_retains_cluster_mode(self): | STRING |
| LOW⚡ | hack/test-ovn-db-mode.py | 177 | def test_healthcheck_uses_database_model(self): | STRING |
| LOW | hack/test-ovn-db-mode.py | 190 | def test_unsafe_or_unknown_modes_stop_before_starting_servers(self): | STRING |
| LOW | hack/test-ipsec-container.py | 90 | def validate_signer_permissions(text): | CODE |
| LOW | hack/test-ipsec-container.py | 161 | def validate_installer_discovery_failures(): | CODE |
| LOW | hack/test-ipsec-container.py | 172 | def validate_cleanup_ovs_assertions(): | CODE |
| LOW | hack/test-ipsec-container.py | 196 | def validate_cleanup_xfrm_assertions(): | STRING |
| LOW | hack/test-ipsec-container.py | 232 | def validate_talos_installation(): | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/e2e/iptables-eip-qos/e2e_test.go | 490 | // ┌─────────────────────────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM | test/e2e/iptables-eip-qos/e2e_test.go | 502 | // └─────────────────────────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM | pkg/controller/vpc_nat_gw_nat.go | 327 | // ──────────────── ────────────────────── ────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hack/network_e2e_diagnostics.py | 53 | CODE | |
| LOW | hack/network_e2e_diagnostics.py | 88 | CODE | |
| LOW | hack/network_e2e_diagnostics.py | 693 | CODE | |
| LOW | hack/network_e2e_diagnostics.py | 396 | CODE | |
| LOW | hack/network_e2e_diagnostics.py | 437 | CODE | |
| LOW | hack/network_e2e_diagnostics.py | 579 | CODE | |
| LOW | hack/test-tproxy-container.py | 76 | CODE | |
| LOW | hack/test-ipsec-container.py | 90 | CODE | |
| LOW | hack/test_network_e2e_diagnostics.py | 227 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | pkg/controller/vpc_egress_gateway_test.go | 907 | // Step 1: verify routes annotation key exists on internal provider. | COMMENT |
| LOW⚡ | pkg/controller/vpc_egress_gateway_test.go | 912 | // Step 2: verify routes annotation is populated. | COMMENT |
| LOW⚡ | pkg/controller/vpc_egress_gateway_test.go | 915 | // Step 3: verify route payload includes destination and gateway fields. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | pkg/controller/vpc_egress_gateway_test.go | 907 | // Step 1: verify routes annotation key exists on internal provider. | COMMENT |
| LOW⚡ | pkg/controller/vpc_egress_gateway_test.go | 912 | // Step 2: verify routes annotation is populated. | COMMENT |
| LOW⚡ | pkg/controller/vpc_egress_gateway_test.go | 915 | // Step 3: verify route payload includes destination and gateway fields. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | charts/kube-ovn/values.yaml | 255 | # Set existingClaim to skip in-chart PVC creation and point the | COMMENT |
| LOW | hack/cherry-pick.sh | 37 | # Check if working directory is clean | COMMENT |
| LOW | hack/cherry-pick.sh | 43 | # Verify if merge commit exists | COMMENT |
| LOW | hack/cherry-pick.sh | 61 | # Check if remote branch exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hack/network_e2e_diagnostics.py | 632 | except Exception as error: | STRING |
| LOW | hack/network_e2e_diagnostics.py | 658 | except Exception as error: | STRING |
| LOW | hack/network_e2e_diagnostics.py | 807 | except Exception as error: | STRING |
| LOW | hack/network_e2e_diagnostics.py | 818 | except Exception as error: | STRING |
| MEDIUM | hack/network_e2e_diagnostics.py | 53 | def capture(command, seconds=10, cancel=None): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hack/backup.sh | 10 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pkg/controller/ipsec_pod_template_test.go | 76 | {"fake-token-secret", func(p *corev1.Pod) { | CODE |