Skip to content

WIP: monitortests: Add monitor test that requires default deny-all NetworkPolicy on all platform namespaces#30710

Open
liouk wants to merge 1 commit intoopenshift:mainfrom
liouk:e2e-network-policy
Open

WIP: monitortests: Add monitor test that requires default deny-all NetworkPolicy on all platform namespaces#30710
liouk wants to merge 1 commit intoopenshift:mainfrom
liouk:e2e-network-policy

Conversation

@liouk
Copy link
Copy Markdown
Member

@liouk liouk commented Jan 21, 2026

This PR is currently used for investigation purposes only.

/hold

Summary by CodeRabbit

  • New Features
    • Added a network policy monitor that checks watched namespaces for a default-deny ingress+egress NetworkPolicy and marks namespaces lacking it as test failures.
    • The monitor is now included in both the universal and disruptive monitoring groups, producing per-namespace results visible in the central monitoring suite.

@openshift-ci-robot
Copy link
Copy Markdown

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: automatic mode

@openshift-ci openshift-ci Bot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. labels Jan 21, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Jan 21, 2026

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Jan 21, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: liouk
Once this PR has been reviewed and has the lgtm label, please assign smg247 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@liouk liouk marked this pull request as ready for review January 21, 2026 13:33
@openshift-ci openshift-ci Bot requested review from deads2k and p0lyn0mial January 21, 2026 13:36
@liouk liouk force-pushed the e2e-network-policy branch from cdffa44 to 21ed8ba Compare January 21, 2026 13:52
@openshift-ci-robot
Copy link
Copy Markdown

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@liouk liouk force-pushed the e2e-network-policy branch from 21ed8ba to 83f670a Compare January 22, 2026 09:38
@openshift-ci-robot
Copy link
Copy Markdown

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@openshift-trt
Copy link
Copy Markdown

openshift-trt Bot commented Jan 22, 2026

Risk analysis has seen new tests most likely introduced by this PR.
Please ensure that new tests meet guidelines for naming and stability.

New Test Risks for sha: 83f670a

Job Name New Test Risk
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/kube-node-lease must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/kube-public must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/kube-system must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-apiserver must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-apiserver-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-authentication must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-authentication-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-cloud-network-config-controller must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-cloud-platform-infra must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-cluster-csi-drivers must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-cluster-machine-approver must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-cluster-node-tuning-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-cluster-samples-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-config must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-config-managed must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-config-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-console must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-console-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-console-user-settings must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
(...showing 20 of 642 rows)

New tests seen in this PR at sha: 83f670a

  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants cleanup" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants collection" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants interval construction" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants preparation" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants setup" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants test evaluation" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants writing to storage" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/kube-node-lease must have a default deny-all ingress/egress NetworkPolicy" [Total: 12, Pass: 0, Fail: 12, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/kube-public must have a default deny-all ingress/egress NetworkPolicy" [Total: 12, Pass: 0, Fail: 12, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/kube-system must have a default deny-all ingress/egress NetworkPolicy" [Total: 12, Pass: 0, Fail: 12, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-apiserver must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-apiserver-operator must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-authentication must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-authentication-operator must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-catalogd must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 10, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-cloud-controller-manager must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 10, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-cloud-controller-manager-operator must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 10, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-cloud-credential-operator must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 10, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-cloud-network-config-controller must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • (...showing 20 of 80 tests)

@liouk liouk force-pushed the e2e-network-policy branch from 83f670a to 8b11781 Compare February 6, 2026 15:01
@openshift-ci-robot
Copy link
Copy Markdown

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@openshift-trt
Copy link
Copy Markdown

openshift-trt Bot commented Feb 6, 2026

Risk analysis has seen new tests most likely introduced by this PR.
Please ensure that new tests meet guidelines for naming and stability.

New Test Risks for sha: 8b11781

Job Name New Test Risk
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-apiserver must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-apiserver-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-authentication must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-authentication-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-cloud-network-config-controller must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-cloud-platform-infra must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-cluster-csi-drivers must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-cluster-machine-approver must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-cluster-node-tuning-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-cluster-samples-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-cluster-version must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-config must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-config-managed must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-config-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-console must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-console-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-console-user-settings must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-controller-manager must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-controller-manager-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
(...showing 20 of 556 rows)

New tests seen in this PR at sha: 8b11781

  • "[Monitor:audit-log-analyzer][Jira:"Test Framework"] operator service account vmware-vsphere-csi-driver-operator should not create excessive watch requests" [Total: 2, Pass: 2, Fail: 0, Flake: 0]
  • "[Monitor:audit-log-analyzer][Jira:"Test Framework"] operator service account vsphere-problem-detector-operator should not create excessive watch requests" [Total: 2, Pass: 2, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants cleanup" [Total: 11, Pass: 11, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants collection" [Total: 11, Pass: 11, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants interval construction" [Total: 11, Pass: 11, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants preparation" [Total: 11, Pass: 11, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants setup" [Total: 11, Pass: 11, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants test evaluation" [Total: 11, Pass: 11, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants writing to storage" [Total: 11, Pass: 11, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift must have a default deny-all ingress/egress NetworkPolicy" [Total: 9, Pass: 0, Fail: 9, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-apiserver must have a default deny-all ingress/egress NetworkPolicy" [Total: 9, Pass: 0, Fail: 9, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-apiserver-operator must have a default deny-all ingress/egress NetworkPolicy" [Total: 9, Pass: 0, Fail: 9, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-authentication must have a default deny-all ingress/egress NetworkPolicy" [Total: 9, Pass: 0, Fail: 9, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-authentication-operator must have a default deny-all ingress/egress NetworkPolicy" [Total: 9, Pass: 0, Fail: 9, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-catalogd must have a default deny-all ingress/egress NetworkPolicy" [Total: 9, Pass: 9, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-cloud-controller-manager must have a default deny-all ingress/egress NetworkPolicy" [Total: 9, Pass: 9, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-cloud-controller-manager-operator must have a default deny-all ingress/egress NetworkPolicy" [Total: 9, Pass: 9, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-cloud-credential-operator must have a default deny-all ingress/egress NetworkPolicy" [Total: 9, Pass: 9, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-cloud-network-config-controller must have a default deny-all ingress/egress NetworkPolicy" [Total: 9, Pass: 0, Fail: 9, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-cloud-platform-infra must have a default deny-all ingress/egress NetworkPolicy" [Total: 9, Pass: 0, Fail: 9, Flake: 0]
  • (...showing 20 of 79 tests)

@liouk liouk force-pushed the e2e-network-policy branch from 8b11781 to 275551b Compare March 3, 2026 10:24
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 3, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e16ea019-79b2-4779-a0d5-4d5a4b78ee7d

📥 Commits

Reviewing files that changed from the base of the PR and between edac4b7 and 5789e96.

📒 Files selected for processing (2)
  • pkg/defaultmonitortests/types.go
  • pkg/monitortests/network/networkpolicy/monitortest.go
🚧 Files skipped from review as they are similar to previous changes (2)
  • pkg/monitortests/network/networkpolicy/monitortest.go
  • pkg/defaultmonitortests/types.go

Walkthrough

Registers a new monitor test "network-policy-invariants" and adds a monitor that scans watched namespaces for a default-deny NetworkPolicy, reporting a failure per namespace when such a policy is missing.

Changes

Cohort / File(s) Summary
Monitor Test Registration
pkg/defaultmonitortests/types.go
Imports the network policy monitor and registers network-policy-invariants (via NewNetworkPolicyMonitorTest()) under the "Networking" group in both universal and disruptive monitor lists.
Network Policy Monitor Implementation
pkg/monitortests/network/networkpolicy/monitortest.go
Adds NewNetworkPolicyMonitorTest() and an unexported networkPolicyMonitorTest implementing MonitorTest lifecycle methods. StartCollection builds a k8s client; CollectData lists watched namespaces, lists NetworkPolicies per namespace, validates policies with isDenyAllPolicy, and emits per-namespace test-case failures when no default-deny policy is found. Other lifecycle methods are stubbed.

Sequence Diagram(s)

sequenceDiagram
  participant Registry as "Monitor Registry"
  participant Monitor as "NetworkPolicy Monitor"
  participant KubeAPI as "Kubernetes API"
  participant Namespace as "Namespace"

  Registry->>Monitor: instantiate NewNetworkPolicyMonitorTest()
  Registry->>Monitor: StartCollection()
  Monitor->>KubeAPI: build client from admin REST config
  Monitor->>KubeAPI: list Namespaces
  KubeAPI-->>Monitor: namespace list
  loop per watched namespace
    Monitor->>KubeAPI: list NetworkPolicies in Namespace
    KubeAPI-->>Monitor: policies
    Monitor->>Monitor: evaluate isDenyAllPolicy(policies)
    alt deny-all missing
      Monitor->>Registry: report test-case failure (namespace)
    else deny-all present
      Monitor->>Registry: no failure
    end
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: adding a monitor test that validates default deny-all NetworkPolicy on platform namespaces, which matches the implemented functionality.
Stable And Deterministic Test Names ✅ Passed Test names use hardcoded, static namespace names from a predetermined set that never changes between runs, ensuring deterministic and stable test names without dynamic information.
Test Structure And Quality ✅ Passed The custom check targets Ginkgo test code patterns, but this PR adds a MonitorTest interface implementation using a different testing framework with lifecycle methods.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.5.0)

Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions
The command is terminated due to an error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pkg/monitortests/network/networkpolicy/monitortest.go`:
- Around line 48-49: The watched namespace list passed to sets.New(...) contains
a duplicated entry "openshift-oauth-apiserver" on consecutive lines; remove the
duplicate from the slice passed to sets.New (or replace the two identical
entries with the correct missing namespace if one was accidentally omitted) so
the list only contains unique intended namespaces; locate the call to
sets.New(...) in monitortest.go (the watched namespaces variable/argument) and
update it accordingly.
- Around line 93-95: The error branch that returns on failing to list network
policies currently discards the original error (err) — update the return to
preserve/wrap the underlying API error so callers can inspect it; replace
fmt.Errorf("could not list network policies of ns/%s", ns.Name) with a wrapped
error that includes err (e.g. use fmt.Errorf("could not list network policies of
ns/%s: %w", ns.Name, err) or include err in the message) in the same function
where ns.Name and err are in scope.

ℹ️ Review info

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between 84df1a9 and 275551b.

📒 Files selected for processing (2)
  • pkg/defaultmonitortests/types.go
  • pkg/monitortests/network/networkpolicy/monitortest.go

Comment thread pkg/monitortests/network/networkpolicy/monitortest.go Outdated
Comment thread pkg/monitortests/network/networkpolicy/monitortest.go
@liouk liouk force-pushed the e2e-network-policy branch 2 times, most recently from eee1f77 to edac4b7 Compare March 6, 2026 10:03
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
pkg/monitortests/network/networkpolicy/monitortest.go (1)

79-81: ⚠️ Potential issue | 🟡 Minor

Preserve underlying API errors in returned failures.

Line 80 and Line 97 drop the original error detail; wrap with %w so callers/logs keep the full cause chain. This also matches the previously raised concern on the policy-list path.

🛠️ Proposed fix
 	nsList, err := n.kubeClient.CoreV1().Namespaces().List(ctx, metav1.ListOptions{})
 	if err != nil {
-		return nil, nil, fmt.Errorf("could not list all namespaces; %v", err)
+		return nil, nil, fmt.Errorf("could not list all namespaces: %w", err)
 	}
@@
 		networkPolicies, err := n.kubeClient.NetworkingV1().NetworkPolicies(ns.Name).List(ctx, metav1.ListOptions{})
 		if err != nil {
-			return nil, nil, fmt.Errorf("could not list network policies of ns/%s", ns.Name)
+			return nil, nil, fmt.Errorf("could not list network policies of ns/%s: %w", ns.Name, err)
 		}
#!/bin/bash
# Verify current error formatting for the two API list failure paths in CollectData.
rg -n -C2 'could not list all namespaces|could not list network policies of ns/%s' pkg/monitortests/network/networkpolicy/monitortest.go

Also applies to: 95-98

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/monitortests/network/networkpolicy/monitortest.go` around lines 79 - 81,
In CollectData, the two error returns that build messages "could not list all
namespaces; %v" and "could not list network policies of ns/%s; %v" should wrap
the underlying error using %w so the original error chain is preserved; update
the fmt.Errorf calls in monitortest.go (the ones referencing those exact
messages) to use "%w" and pass the original err as the wrapped value.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pkg/monitortests/network/networkpolicy/monitortest.go`:
- Around line 74-76: The current check "if n.kubeClient == nil { return nil,
nil, nil }" silently treats an uninitialized Kubernetes client as success;
change it to fail fast by returning an error when n.kubeClient is nil (e.g.,
return nil, nil, an error like "kubeClient not initialized" or wrap with
context). Update the return to propagate an error from the function that
contains this check (referencing n.kubeClient in
pkg/monitortests/network/networkpolicy/monitortest.go) so callers can detect and
handle the missing client instead of assuming success.

---

Duplicate comments:
In `@pkg/monitortests/network/networkpolicy/monitortest.go`:
- Around line 79-81: In CollectData, the two error returns that build messages
"could not list all namespaces; %v" and "could not list network policies of
ns/%s; %v" should wrap the underlying error using %w so the original error chain
is preserved; update the fmt.Errorf calls in monitortest.go (the ones
referencing those exact messages) to use "%w" and pass the original err as the
wrapped value.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 147a7553-4da9-49e9-a880-8e457b081163

📥 Commits

Reviewing files that changed from the base of the PR and between eee1f77 and edac4b7.

📒 Files selected for processing (2)
  • pkg/defaultmonitortests/types.go
  • pkg/monitortests/network/networkpolicy/monitortest.go

Comment thread pkg/monitortests/network/networkpolicy/monitortest.go
@liouk liouk force-pushed the e2e-network-policy branch from edac4b7 to 5789e96 Compare March 6, 2026 10:13
@openshift-ci-robot
Copy link
Copy Markdown

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Mar 6, 2026

@liouk: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-vsphere-ovn-upi 5789e96 link true /test e2e-vsphere-ovn-upi
ci/prow/e2e-vsphere-ovn 5789e96 link true /test e2e-vsphere-ovn
ci/prow/e2e-metal-ipi-ovn-ipv6 5789e96 link true /test e2e-metal-ipi-ovn-ipv6
ci/prow/e2e-aws-ovn-microshift-serial 5789e96 link true /test e2e-aws-ovn-microshift-serial
ci/prow/e2e-aws-ovn-serial-1of2 5789e96 link true /test e2e-aws-ovn-serial-1of2
ci/prow/e2e-aws-ovn-serial-2of2 5789e96 link true /test e2e-aws-ovn-serial-2of2
ci/prow/e2e-aws-ovn-fips 5789e96 link true /test e2e-aws-ovn-fips
ci/prow/e2e-gcp-csi 5789e96 link true /test e2e-gcp-csi
ci/prow/e2e-aws-csi 5789e96 link true /test e2e-aws-csi
ci/prow/e2e-gcp-ovn 5789e96 link true /test e2e-gcp-ovn
ci/prow/e2e-gcp-ovn-upgrade 5789e96 link true /test e2e-gcp-ovn-upgrade
ci/prow/e2e-aws-ovn-microshift 5789e96 link true /test e2e-aws-ovn-microshift

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-trt
Copy link
Copy Markdown

openshift-trt Bot commented Mar 6, 2026

Risk analysis has seen new tests most likely introduced by this PR.
Please ensure that new tests meet guidelines for naming and stability.

New Test Risks for sha: 5789e96

Job Name New Test Risk
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-apiserver must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-apiserver-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-authentication must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-authentication-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-config must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-config-managed must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-config-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-etcd must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-etcd-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-image-registry must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-infra must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-kube-apiserver must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-kube-apiserver-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-kube-controller-manager must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-kube-controller-manager-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-kube-scheduler must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-kube-scheduler-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-kube-storage-version-migrator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-kube-storage-version-migrator-operator must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-aws-csi High - "[Monitor:network-policy-invariants][sig-network] ns/openshift-oauth-apiserver must have a default deny-all ingress/egress NetworkPolicy" is a new test that failed 1 time(s) against the current commit
(...showing 20 of 238 rows)

New tests seen in this PR at sha: 5789e96

  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants cleanup" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants collection" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants interval construction" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants preparation" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants setup" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants test evaluation" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][Jira:"Networking"] monitor test network-policy-invariants writing to storage" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-apiserver must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-apiserver-operator must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-authentication must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-authentication-operator must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-config must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-config-managed must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-config-operator must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-etcd must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-etcd-operator must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-image-registry must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-infra must have a default deny-all ingress/egress NetworkPolicy" [Total: 12, Pass: 0, Fail: 12, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-kube-apiserver must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • "[Monitor:network-policy-invariants][sig-network] ns/openshift-kube-apiserver-operator must have a default deny-all ingress/egress NetworkPolicy" [Total: 10, Pass: 0, Fail: 10, Flake: 0]
  • (...showing 20 of 30 tests)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants