Skip to content

Conversation

@zhaozhanqi
Copy link

@zhaozhanqi zhaozhanqi commented Nov 12, 2025

Trying to implement OTE freamwork and migration the test cases to this repo.

please just check the first commit setup OTE freamwork and migration one case from openshift-tests-priva..., the second commit just vendor the dependencies, very large files.

Tested in my local

# test/bin/cluster-network-operator-tests run-test --names "[sig-network] CNO Author:anusaxen-High-73205-High-72817-Make sure internalJoinSubnet and internalTransitSwitchSubnet is configurable post install as a Day 2 operation [Disruptive]"
  Running Suite:  - /root/myrepo/cluster-network-operator
  =======================================================
  Random Seed: 1762944359 - will randomize all specs

  Will run 1 of 1 specs
  ------------------------------
  [sig-network] CNO Author:anusaxen-High-73205-High-72817-Make sure internalJoinSubnet and internalTransitSwitchSubnet is configurable post install as a Day 2 operation [Disruptive]
  /root/myrepo/cluster-network-operator/test/e2e/cno.go:19
    STEP: Creating a kubernetes client @ 11/12/25 05:46:00.14
  I1112 05:46:04.908347 3005141 client.go:288] configPath is now "/tmp/configfile4233401403"
  I1112 05:46:04.908441 3005141 client.go:363] The user is now "e2e-test-networking-cno-9rlp5-user"
  I1112 05:46:04.908504 3005141 client.go:365] Creating project "e2e-test-networking-cno-9rlp5"
  I1112 05:46:05.234980 3005141 client.go:373] Waiting on permissions in project "e2e-test-networking-cno-9rlp5" ...
  I1112 05:46:06.240601 3005141 client.go:402] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
  I1112 05:46:06.492289 3005141 client.go:417] Waiting for ServiceAccount "default" to be provisioned...
  I1112 05:46:07.093188 3005141 client.go:417] Waiting for ServiceAccount "builder" to be provisioned...
  I1112 05:46:07.693797 3005141 client.go:417] Waiting for ServiceAccount "deployer" to be provisioned...
  I1112 05:46:08.294025 3005141 client.go:427] Waiting for RoleBinding "system:image-pullers" to be provisioned...
  I1112 05:46:08.791194 3005141 client.go:427] Waiting for RoleBinding "system:image-builders" to be provisioned...
  I1112 05:46:09.288571 3005141 client.go:427] Waiting for RoleBinding "system:deployers" to be provisioned...
  I1112 05:46:10.287672 3005141 client.go:460] Project "e2e-test-networking-cno-9rlp5" has been fully provisioned.
  I1112 05:46:10.311692 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get network.operator cluster -o=jsonpath={.spec.serviceNetwork}'
  STEP: create a hello pod1 in namespace 11/12/25 05:46:13.624
    STEP: create a hello pod1 in namespace @ 11/12/25 05:46:13.624
  I1112 05:46:13.624861 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 process --ignore-unknown-parameters=true -f /tmp/fixture-testdata-dir4153154676/test/extended/testdata/networking/ping-for-pod-specific-node-template.yaml -p NAME=hello-pod1 NAMESPACE=e2e-test-networking-cno-9rlp5 NODENAME=worker-0'
  I1112 05:46:14.823286 3005141 util.go:77] the file of resource is e2e-test-networking-cno-9rlp5-d5j8a3enresource.json
  I1112 05:46:14.823520 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 apply -f e2e-test-networking-cno-9rlp5-d5j8a3enresource.json'
  pod/hello-pod1 created
  I1112 05:46:16.516403 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n e2e-test-networking-cno-9rlp5 hello-pod1 -o=jsonpath={.status.phase}'
  I1112 05:46:17.671616 3005141 util.go:107] The pod  hello-pod1 status in namespace e2e-test-networking-cno-9rlp5 is "Running"
  STEP: create a hello-pod2 in namespace 11/12/25 05:46:17.672
    STEP: create a hello-pod2 in namespace @ 11/12/25 05:46:17.672
  I1112 05:46:17.672535 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 process --ignore-unknown-parameters=true -f /tmp/fixture-testdata-dir4153154676/test/extended/testdata/networking/ping-for-pod-specific-node-template.yaml -p NAME=hello-pod2 NAMESPACE=e2e-test-networking-cno-9rlp5 NODENAME=worker-1'
  I1112 05:46:18.833319 3005141 util.go:77] the file of resource is e2e-test-networking-cno-9rlp5-dpcrmim3resource.json
  I1112 05:46:18.833571 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 apply -f e2e-test-networking-cno-9rlp5-dpcrmim3resource.json'
  pod/hello-pod2 created
  I1112 05:46:20.486600 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n e2e-test-networking-cno-9rlp5 hello-pod2 -o=jsonpath={.status.phase}'
  I1112 05:46:21.636602 3005141 util.go:107] The pod  hello-pod2 status in namespace e2e-test-networking-cno-9rlp5 is "Pending"
  I1112 05:46:25.489863 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n e2e-test-networking-cno-9rlp5 hello-pod2 -o=jsonpath={.status.phase}'
  I1112 05:46:26.668343 3005141 util.go:107] The pod  hello-pod2 status in namespace e2e-test-networking-cno-9rlp5 is "Running"
  STEP: Create a test service backing up both the above pods 11/12/25 05:46:26.668
    STEP: Create a test service backing up both the above pods @ 11/12/25 05:46:26.668
  I1112 05:46:26.669120 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 process --ignore-unknown-parameters=true -f /tmp/fixture-testdata-dir4153154676/test/extended/testdata/networking/service-generic-template.yaml -p SERVICENAME=test-service-73205 NAMESPACE=e2e-test-networking-cno-9rlp5 PROTOCOL=TCP SELECTOR=hello-pod serviceType=ClusterIP ipFamilyPolicy=SingleStack internalTrafficPolicy=Cluster externalTrafficPolicy='
  I1112 05:46:27.826011 3005141 util.go:77] the file of resource is e2e-test-networking-cno-9rlp5-yvu6r1lnresource.json
  I1112 05:46:27.826177 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 apply -f e2e-test-networking-cno-9rlp5-yvu6r1lnresource.json'
  service/test-service-73205 created
  I1112 05:46:29.507217 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get Network.operator.openshift.io/cluster -o=jsonpath={.items[*].spec.defaultNetwork.ovnKubernetesConfig.ipv4.internalJoinSubnet}'
  I1112 05:46:31.241207 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get Network.operator.openshift.io/cluster -o=jsonpath={.items[*].spec.defaultNetwork.ovnKubernetesConfig.ipv4.internalTransitSwitchSubnet}'
  I1112 05:46:32.941024 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get Network.operator.openshift.io/cluster -o=jsonpath={.items[*].spec.defaultNetwork.ovnKubernetesConfig.ipv6.internalJoinSubnet}'
  I1112 05:46:34.673139 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get Network.operator.openshift.io/cluster -o=jsonpath={.items[*].spec.defaultNetwork.ovnKubernetesConfig.ipv6.internalTransitSwitchSubnet}'
  I1112 05:46:36.377581 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 patch Network.operator.openshift.io/cluster -p {"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"ipv4":{"internalJoinSubnet": "100.99.0.0/16","internalTransitSwitchSubnet": "100.69.0.0/16"}}}}} --type=merge'
  network.operator.openshift.io/cluster patched
  I1112 05:46:38.319161 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n openshift-ovn-kubernetes -l app=ovnkube-node -ojsonpath={.items[*].status.conditions[?(@.type=="Ready")].status}'
  I1112 05:46:40.017883 3005141 util.go:201] the Ready status of pod is True True True True True True
  I1112 05:46:40.018081 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get infrastructures.config.openshift.io cluster -o=jsonpath={.status.controlPlaneTopology}'
  I1112 05:46:41.751265 3005141 clusters.go:254] topology is HighlyAvailable
  I1112 05:46:41.751549 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n openshift-ovn-kubernetes -l app=ovnkube-control-plane -ojsonpath={.items[*].status.conditions[?(@.type=="Ready")].status}'
  I1112 05:46:43.184116 3005141 util.go:201] the Ready status of pod is True True
  I1112 05:46:43.184444 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 rollout status -n openshift-ovn-kubernetes ds ovnkube-node --timeout 5m'
  I1112 05:46:45.102767 3005141 util.go:194] ovnkube rollout trigger hasn't happened yet. Trying again
  I1112 05:46:53.192165 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 rollout status -n openshift-ovn-kubernetes ds ovnkube-node --timeout 5m'
  I1112 05:46:55.109984 3005141 util.go:194] ovnkube rollout trigger hasn't happened yet. Trying again
  I1112 05:47:03.188486 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 rollout status -n openshift-ovn-kubernetes ds ovnkube-node --timeout 5m'
  I1112 05:48:51.285115 3005141 util.go:191] ovnkube rollout was triggerred and rolled out successfully
  I1112 05:48:51.285331 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get network.operator cluster -o=jsonpath={.spec.serviceNetwork}'
  I1112 05:48:52.461240 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n e2e-test-networking-cno-9rlp5 hello-pod2 -o=jsonpath={.status.podIPs[0].ip}'
  I1112 05:48:53.668202 3005141 util.go:247] The pod  hello-pod2 IP in namespace e2e-test-networking-cno-9rlp5 is "10.131.0.34"
  I1112 05:48:53.668645 3005141 builder.go:130] Running '/usr/local/bin/kubectl --kubeconfig=/root/kubeconfig.1 --namespace=e2e-test-networking-cno-9rlp5 exec hello-pod1 -- /bin/sh -x -c curl --connect-timeout 5 -s 10.131.0.34:8080'
  I1112 05:48:57.739100 3005141 builder.go:156] stderr: "+ curl --connect-timeout 5 -s 10.131.0.34:8080\n"
  I1112 05:48:57.739206 3005141 builder.go:157] stdout: "Hello OpenShift!\n"
  I1112 05:48:57.739340 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get network.operator cluster -o=jsonpath={.spec.serviceNetwork}'
  I1112 05:48:58.904572 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get service -n e2e-test-networking-cno-9rlp5 test-service-73205 -o=jsonpath={.spec.type}'
  I1112 05:49:00.072809 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get service -n e2e-test-networking-cno-9rlp5 test-service-73205 -o=jsonpath={.spec.ipFamilyPolicy}'
  I1112 05:49:01.238015 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get service -n e2e-test-networking-cno-9rlp5 test-service-73205 -o=jsonpath={.spec.clusterIPs[0]}'
  I1112 05:49:02.416761 3005141 util.go:295] The service test-service-73205 IP in namespace e2e-test-networking-cno-9rlp5 is "172.30.101.85"
  I1112 05:49:02.416958 3005141 builder.go:130] Running '/usr/local/bin/kubectl --kubeconfig=/root/kubeconfig.1 --namespace=e2e-test-networking-cno-9rlp5 exec hello-pod1 -- /bin/sh -x -c curl --connect-timeout 5 -s 172.30.101.85:27017'
  I1112 05:49:06.313985 3005141 builder.go:156] stderr: "+ curl --connect-timeout 5 -s 172.30.101.85:27017\n"
  I1112 05:49:06.314088 3005141 builder.go:157] stdout: "Hello OpenShift!\n"
  I1112 05:49:06.314233 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 patch Network.operator.openshift.io/cluster -p {"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"ipv4":{"internalJoinSubnet": "100.64.0.0/16","internalTransitSwitchSubnet": "100.88.0.0/16"}}}}} --type=merge'
  network.operator.openshift.io/cluster patched
  I1112 05:49:08.297827 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n openshift-ovn-kubernetes -l app=ovnkube-node -ojsonpath={.items[*].status.conditions[?(@.type=="Ready")].status}'
  I1112 05:49:10.013375 3005141 util.go:201] the Ready status of pod is True True True True True True
  I1112 05:49:10.013662 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get infrastructures.config.openshift.io cluster -o=jsonpath={.status.controlPlaneTopology}'
  I1112 05:49:11.721978 3005141 clusters.go:254] topology is HighlyAvailable
  I1112 05:49:11.722211 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n openshift-ovn-kubernetes -l app=ovnkube-control-plane -ojsonpath={.items[*].status.conditions[?(@.type=="Ready")].status}'
  I1112 05:49:13.136215 3005141 util.go:201] the Ready status of pod is True True
  I1112 05:49:13.136511 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 rollout status -n openshift-ovn-kubernetes ds ovnkube-node --timeout 5m'
  I1112 05:49:15.055919 3005141 util.go:194] ovnkube rollout trigger hasn't happened yet. Trying again
  I1112 05:49:23.144344 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 rollout status -n openshift-ovn-kubernetes ds ovnkube-node --timeout 5m'
  I1112 05:49:25.059436 3005141 util.go:194] ovnkube rollout trigger hasn't happened yet. Trying again
  I1112 05:49:33.136678 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 rollout status -n openshift-ovn-kubernetes ds ovnkube-node --timeout 5m'
  I1112 05:51:18.736664 3005141 util.go:191] ovnkube rollout was triggerred and rolled out successfully
  I1112 05:51:19.767191 3005141 client.go:676] Deleted {user.openshift.io/v1, Resource=users  e2e-test-networking-cno-9rlp5-user}, err: <nil>
  I1112 05:51:20.017802 3005141 client.go:676] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-networking-cno-9rlp5}, err: <nil>
  I1112 05:51:20.269898 3005141 client.go:676] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~PjDXQfRITg_KYQozcM5hZzd1mjE0TtI52CM_ONbLaNU}, err: <nil>
    STEP: Destroying namespace "e2e-test-networking-cno-9rlp5" for this suite. @ 11/12/25 05:51:20.27
  • [320.383 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 320.384 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

Assisted-by: Cursor/claude

@zhaozhanqi zhaozhanqi marked this pull request as draft November 12, 2025 10:17
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Nov 12, 2025
@coderabbitai
Copy link

coderabbitai bot commented Nov 12, 2025

Walkthrough

Adds an E2E test binary, CLI/framework, utilities, and tests; updates build files and Dockerfile to build and include a gzipped test binary; bumps Go module dependencies and replace directives; refines default-route MTU detection and multipath MTU handling in networking code.

Changes

Cohort / File(s) Summary
Build infra & image
Dockerfile, Makefile, test/Makefile
Added .PHONY: build-e2e-tests and a build-e2e-tests target; test/Makefile builds cluster-network-operator-tests-ext (LDFLAGS, cross-build targets); Dockerfile builder stage runs test build and gzips the binary; final image copies test/bin/cluster-network-operator-tests-ext.gz.
E2E CLI & framework
test/e2e/cli.go
New CLI type, constructor NewCLIWithPodSecurityLevel, namespace setup/teardown hooks, kubeconfig/config creation, command assembly, output/execute helpers, and integration with test framework.
E2E utilities
test/e2e/util.go
New exported helpers: init, random string, IP‑stack detection, pod/service IP retrieval, readiness polling, admin patching, OVN/Hypershift checks, connectivity tests, pod/service creation, and related utilities.
E2E test entrypoint
test/cmd/main.go
New Cobra-based test binary main that registers an OpenShift tests extension and wires in upstream test specs.
E2E test implementation
test/e2e/cno.go
New E2E test implementing Day‑2 OVN networking scenarios: creates pods/services, applies cluster Network CR patches for IPv4/IPv6/dual-stack, waits for rollout, validates connectivity, and restores original config.
Dependency updates
go.mod
Multiple direct/indirect dependency bumps (e.g., github.com/vishvananda/netlink v1.1.0→v1.3.1, github.com/onsi/gomega v1.38.1→v1.38.2) and added/updated replace directives for k8s/OpenShift compatibility.
Network MTU handling
pkg/network/mtu.go
Explicit default-route detection (Dst==nil or zero-mask 0.0.0.0/::); improved handling for LinkIndex==0 by iterating MultiPath to compute smallest MTU among linked interfaces.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

  • Pay extra attention to:
    • test/e2e/cli.go: namespace lifecycle hooks and kube client configuration.
    • test/e2e/util.go / test/e2e/cno.go: dual‑stack logic, JSON patch correctness, deferred restore behavior, and connectivity retries.
    • pkg/network/mtu.go: default-route detection edge cases and multipath MTU aggregation.
    • go.mod replace directives for module resolution.

Assessment against linked issues

Objective Addressed Explanation
Switch CNO to deployment model for master-only scheduling (#39) No changes to operator manifests (DaemonSet→Deployment), scheduling, or manifests altering node selectors/tolerations are present in this PR.

Out-of-scope changes

Code Change Explanation
New E2E test code (test/cmd/main.go, test/e2e/cno.go, test/e2e/util.go, test/e2e/cli.go) These add testing framework and E2E tests; unrelated to changing operator deployment model or scheduling requested in #39.
Dockerfile and image build changes (Dockerfile, Makefile, test/Makefile) Build and packaging changes add the gzipped test binary to the image; do not modify operator manifests or scheduling behavior required by #39.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 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.

@openshift-ci openshift-ci bot requested review from arghosh93 and pliurh November 12, 2025 10:22
@zhaozhanqi
Copy link
Author

/retest-required

@zhaozhanqi zhaozhanqi force-pushed the migration-ote branch 4 times, most recently from f461a80 to 711ac01 Compare November 13, 2025 03:47
@zhaozhanqi zhaozhanqi marked this pull request as ready for review November 13, 2025 06:45
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Nov 13, 2025
@openshift-ci openshift-ci bot requested a review from pperiyasamy November 13, 2025 06:46
Copy link

@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: 5

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 05d6f46 and 43e9604.

⛔ Files ignored due to path filters (293)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/Azure/go-ansiterm/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/constants.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/csi_entry_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/csi_param_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/escape_intermediate_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/escape_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/event_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/ground_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/osc_string_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/parser_action_helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/parser_actions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/states.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/utilities.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/ansi.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/attr_translation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/cursor_helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/erase_helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/scroll_helper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/utilities.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/win_event_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/JeffAshton/win_pdh/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/JeffAshton/win_pdh/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/JeffAshton/win_pdh/README.mdown is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/JeffAshton/win_pdh/pdh.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/MakeNowJust/heredoc/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/MakeNowJust/heredoc/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/MakeNowJust/heredoc/heredoc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/CODEOWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/backup.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/ea.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/fileinfo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/hvsock.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/fs/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/fs/fs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/fs/security.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/socket/rawaddr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/socket/socket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/socket/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pipe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pkg/guid/guid_nonwindows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pkg/guid/guid_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pkg/guid/variant_string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/privilege.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/reparse.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/sd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/syscall.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/CODEOWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/hns_v1.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/hnsaccelnet.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/hnsglobals.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/hnssupport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hns.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsaccelnet.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsendpoint.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnserrors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsfuncs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsglobals.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsnetwork.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnspolicy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnspolicylist.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnssupport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/namespace.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/interop/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/interop/interop.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/interop/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/armon/circbuf/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/armon/circbuf/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/armon/circbuf/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/armon/circbuf/circbuf.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/auth/bearer/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awserr/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awserr/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/copy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/equal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/path_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/prettify.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/default_retryer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/logger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/metadata/client_info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/no_op_retryer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_1_5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_1_9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_background_1_7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_sleep.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/convert_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/corehandlers/awsinternal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/corehandlers/param_validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/example.ini is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/sso_cached_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/token_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/web_identity_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/enable.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/metric_chan.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/defaults/shared_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/legacy_regions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/jsonvalue.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/logger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/http_request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/offset_reader.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_1_7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_1_8.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_context_1_6.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_pagination.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/timeout_read_closer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/validation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/waiter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.12.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.6.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/session.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/header_rules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/uri_path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/url_1_7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/context/background_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ast.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/expression.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ini.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/statement.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/walker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkio/byte.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.6.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor_go1.9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkrand/locked_source.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read_1_5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkuri/path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config_resolve_home.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config_resolve_home_go1.12.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/strings/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/singleflight.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/host.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/idempotency.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/jsonrpc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/unmarshal_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/jsonvalue.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/payload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/protocol.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/rest/payload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/restjson.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/unmarshal_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/xml_to_struct.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/waiters.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/ssoiface/interface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/ssooidc/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/ssooidc/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/ssooidc/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/ssooidc/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/customizations.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/interface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/fs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/fs_json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/fs_os.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/fs_zip.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/gettext.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/locale.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (7)
  • Dockerfile (1 hunks)
  • Makefile (1 hunks)
  • go.mod (4 hunks)
  • test/Makefile (1 hunks)
  • test/cmd/main.go (1 hunks)
  • test/e2e/cno.go (1 hunks)
  • test/e2e/util.go (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • test/cmd/main.go
  • test/Makefile
  • Dockerfile
  • test/e2e/cno.go
  • go.mod
  • Makefile
  • test/e2e/util.go
🪛 checkmake (0.2.2)
test/Makefile

[warning] 41-41: Missing required phony target "test"

(minphony)

Makefile

[warning] 50-50: Missing required phony target "test"

(minphony)

🪛 OSV Scanner (2.2.4)
go.mod

[HIGH] 200-200: github.com/opencontainers/runc 1.2.5: runc container escape via "masked path" abuse due to mount race conditions

(GHSA-9493-h29p-rfm2)


[HIGH] 200-200: github.com/opencontainers/runc 1.2.5: runc container escape and denial of service due to arbitrary write gadgets and procfs write redirects

(GHSA-cgrx-mc8f-2prm)


[HIGH] 200-200: github.com/opencontainers/runc 1.2.5: runc container escape with malicious config due to /dev/console mount and related races

(GHSA-qw9x-cqr3-wc7r)


[HIGH] 202-202: github.com/opencontainers/selinux 1.11.1: runc container escape and denial of service due to arbitrary write gadgets and procfs write redirects

(GHSA-cgrx-mc8f-2prm)

go.mod Outdated
Comment on lines 198 to 211
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.1 // indirect
github.com/opencontainers/runc v1.2.5 // indirect
github.com/opencontainers/runtime-spec v1.2.0 // indirect
github.com/opencontainers/selinux v1.11.1 // indirect
github.com/pborman/uuid v1.2.0 // indirect
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Block on vulnerable runc/selinux versions

github.com/opencontainers/runc v1.2.5 and github.com/opencontainers/selinux v1.11.1 are both under active high‑severity advisories (GHSA-9493-h29p-rfm2, GHSA-cgrx-mc8f-2prm, GHSA-qw9x-cqr3-wc7r). Keeping these versions means the resulting binaries inherit a known container escape path. Please bump to the patched releases called out in the upstream advisories (or otherwise carry the fixes) before merging.

🧰 Tools
🪛 OSV Scanner (2.2.4)

[HIGH] 200-200: github.com/opencontainers/runc 1.2.5: runc container escape via "masked path" abuse due to mount race conditions

(GHSA-9493-h29p-rfm2)


[HIGH] 200-200: github.com/opencontainers/runc 1.2.5: runc container escape and denial of service due to arbitrary write gadgets and procfs write redirects

(GHSA-cgrx-mc8f-2prm)


[HIGH] 200-200: github.com/opencontainers/runc 1.2.5: runc container escape with malicious config due to /dev/console mount and related races

(GHSA-qw9x-cqr3-wc7r)


[HIGH] 202-202: github.com/opencontainers/selinux 1.11.1: runc container escape and denial of service due to arbitrary write gadgets and procfs write redirects

(GHSA-cgrx-mc8f-2prm)

Copy link

@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 (2)
test/e2e/util.go (2)

144-153: Fix the rollout status polling condition.

The current condition on Line 147 requires both "rollout to finish" AND "successfully rolled out" to appear in the same status output, but oc rollout status never emits both strings simultaneously—the former appears only while waiting, and the latter only upon completion. This causes checkOVNKState to consistently timeout.

Apply this diff to fix the polling logic:

-		if strings.Contains(status, "rollout to finish") && strings.Contains(status, "successfully rolled out") {
-			e2e.Logf("ovnkube rollout was triggerred and rolled out successfully")
+		if strings.Contains(status, "successfully rolled out") {
+			e2e.Logf("ovnkube rollout was triggered and rolled out successfully")
 			return true, nil
 		}
-		e2e.Logf("ovnkube rollout trigger hasn't happened yet. Trying again")
+		if strings.Contains(status, "rollout to finish") {
+			e2e.Logf("ovnkube rollout in progress, waiting...")
+			return false, nil
+		}
+		e2e.Logf("ovnkube rollout status: %s; retrying...", status)
 		return false, nil

229-290: Fix NodePort service handling to avoid invalid curl targets.

In the NodePort branches (lines 243-246, 263-267, 274-278), getSvcIP returns the nodePort value (e.g., "30080") in the second return parameter. When curlPod2SvcPass calls net.JoinHostPort(svcIP2, strconv.Itoa(svcPort)) on Line 217, this produces an invalid target like "30080:27017", treating the port number as a hostname.

Refactor to return nodePort separately and pair it with an actual node IP:

-func getSvcIP(oc *exutil.CLI, namespace string, svcName string) (string, string) {
+func getSvcIP(oc *exutil.CLI, namespace string, svcName string) (string, string, string) {

Update the NodePort branches to return (svcIP, "", nodePort) and modify curlPod2SvcPass to detect the third return value, fetch a real node IP, and construct net.JoinHostPort(nodeIP, nodePort) before curling. Alternatively, disable or remove NodePort support until it can be implemented correctly.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 5a48a3f and 880b6d3.

⛔ Files ignored due to path filters (293)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/Azure/go-ansiterm/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/constants.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/csi_entry_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/csi_param_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/escape_intermediate_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/escape_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/event_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/ground_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/osc_string_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/parser_action_helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/parser_actions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/states.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/utilities.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/ansi.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/attr_translation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/cursor_helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/erase_helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/scroll_helper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/utilities.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/win_event_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/JeffAshton/win_pdh/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/JeffAshton/win_pdh/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/JeffAshton/win_pdh/README.mdown is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/JeffAshton/win_pdh/pdh.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/MakeNowJust/heredoc/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/MakeNowJust/heredoc/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/MakeNowJust/heredoc/heredoc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/CODEOWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/backup.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/ea.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/fileinfo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/hvsock.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/fs/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/fs/fs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/fs/security.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/socket/rawaddr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/socket/socket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/socket/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pipe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pkg/guid/guid_nonwindows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pkg/guid/guid_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pkg/guid/variant_string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/privilege.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/reparse.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/sd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/syscall.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/CODEOWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/hns_v1.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/hnsaccelnet.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/hnsglobals.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/hnssupport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hns.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsaccelnet.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsendpoint.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnserrors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsfuncs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsglobals.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsnetwork.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnspolicy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnspolicylist.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnssupport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/namespace.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/interop/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/interop/interop.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/interop/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/armon/circbuf/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/armon/circbuf/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/armon/circbuf/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/armon/circbuf/circbuf.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/auth/bearer/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awserr/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awserr/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/copy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/equal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/path_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/prettify.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/default_retryer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/logger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/metadata/client_info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/no_op_retryer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_1_5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_1_9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_background_1_7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_sleep.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/convert_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/corehandlers/awsinternal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/corehandlers/param_validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/example.ini is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/sso_cached_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/token_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/web_identity_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/enable.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/metric_chan.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/defaults/shared_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/legacy_regions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/jsonvalue.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/logger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/http_request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/offset_reader.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_1_7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_1_8.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_context_1_6.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_pagination.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/timeout_read_closer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/validation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/waiter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.12.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.6.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/session.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/header_rules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/uri_path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/url_1_7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/context/background_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ast.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/expression.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ini.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/statement.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/walker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkio/byte.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.6.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor_go1.9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkrand/locked_source.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read_1_5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkuri/path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config_resolve_home.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config_resolve_home_go1.12.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/strings/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/singleflight.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/host.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/idempotency.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/jsonrpc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/unmarshal_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/jsonvalue.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/payload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/protocol.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/rest/payload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/restjson.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/unmarshal_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/xml_to_struct.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/waiters.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/ssoiface/interface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/ssooidc/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/ssooidc/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/ssooidc/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/ssooidc/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/customizations.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/interface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/fs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/fs_json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/fs_os.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/fs_zip.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/gettext.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/locale.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (7)
  • Dockerfile (1 hunks)
  • Makefile (1 hunks)
  • go.mod (4 hunks)
  • test/Makefile (1 hunks)
  • test/cmd/main.go (1 hunks)
  • test/e2e/cno.go (1 hunks)
  • test/e2e/util.go (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • Dockerfile
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • test/e2e/cno.go
  • test/cmd/main.go
  • test/e2e/util.go
  • go.mod
  • Makefile
  • test/Makefile
🪛 checkmake (0.2.2)
Makefile

[warning] 50-50: Missing required phony target "test"

(minphony)

test/Makefile

[warning] 41-41: Missing required phony target "test"

(minphony)

🪛 OSV Scanner (2.2.4)
go.mod

[HIGH] 200-200: github.com/opencontainers/runc 1.2.5: runc container escape via "masked path" abuse due to mount race conditions

(GHSA-9493-h29p-rfm2)


[HIGH] 200-200: github.com/opencontainers/runc 1.2.5: runc container escape and denial of service due to arbitrary write gadgets and procfs write redirects

(GHSA-cgrx-mc8f-2prm)


[HIGH] 200-200: github.com/opencontainers/runc 1.2.5: runc container escape with malicious config due to /dev/console mount and related races

(GHSA-qw9x-cqr3-wc7r)


[HIGH] 202-202: github.com/opencontainers/selinux 1.11.1: runc container escape and denial of service due to arbitrary write gadgets and procfs write redirects

(GHSA-cgrx-mc8f-2prm)

🔇 Additional comments (4)
test/e2e/cno.go (1)

20-117: LGTM! Previous issues have been addressed.

The jsonpath queries now correctly access the cluster object directly (without .items[*]), and the default value fallbacks are properly applied per address family independently. The test structure with deferred cleanup and OVN state validation is appropriate for this Day 2 operation test.

test/cmd/main.go (1)

17-50: LGTM! Standard test extension setup.

The test extension registration and CLI wiring follows OpenShift test patterns correctly. Error handling appropriately panics on spec build failures and exits on command execution errors.

Makefile (1)

49-53: LGTM! Clean build target integration.

The new build-e2e-tests target properly delegates to the test subdirectory and follows the project's Makefile conventions.

test/Makefile (1)

1-44: LGTM! Well-structured test build configuration.

The Makefile properly defines build targets with version information embedding and cross-compilation support for containerized builds. The use of ldflags for commit and build date tracking is a good practice.

@zhaozhanqi zhaozhanqi changed the title setup OTE freamwork and migration one case from tests-private repo CORENET-6512: setup OTE freamwork and migration one case from tests-private repo Nov 13, 2025
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Nov 13, 2025
@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Nov 13, 2025

@zhaozhanqi: This pull request references CORENET-6512 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.21.0" version, but no target version was set.

In response to this:

Trying to implement OTE freamwork and migration the test cases to this repo.

please just check the first commit setup OTE freamwork and migration one case from openshift-tests-priva..., the second commit just vendor the dependencies, very large files.

Tested in my local

# test/bin/cluster-network-operator-tests run-test --names "[sig-network] CNO Author:anusaxen-High-73205-High-72817-Make sure internalJoinSubnet and internalTransitSwitchSubnet is configurable post install as a Day 2 operation [Disruptive]"
 Running Suite:  - /root/myrepo/cluster-network-operator
 =======================================================
 Random Seed: 1762944359 - will randomize all specs

 Will run 1 of 1 specs
 ------------------------------
 [sig-network] CNO Author:anusaxen-High-73205-High-72817-Make sure internalJoinSubnet and internalTransitSwitchSubnet is configurable post install as a Day 2 operation [Disruptive]
 /root/myrepo/cluster-network-operator/test/e2e/cno.go:19
   STEP: Creating a kubernetes client @ 11/12/25 05:46:00.14
 I1112 05:46:04.908347 3005141 client.go:288] configPath is now "/tmp/configfile4233401403"
 I1112 05:46:04.908441 3005141 client.go:363] The user is now "e2e-test-networking-cno-9rlp5-user"
 I1112 05:46:04.908504 3005141 client.go:365] Creating project "e2e-test-networking-cno-9rlp5"
 I1112 05:46:05.234980 3005141 client.go:373] Waiting on permissions in project "e2e-test-networking-cno-9rlp5" ...
 I1112 05:46:06.240601 3005141 client.go:402] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I1112 05:46:06.492289 3005141 client.go:417] Waiting for ServiceAccount "default" to be provisioned...
 I1112 05:46:07.093188 3005141 client.go:417] Waiting for ServiceAccount "builder" to be provisioned...
 I1112 05:46:07.693797 3005141 client.go:417] Waiting for ServiceAccount "deployer" to be provisioned...
 I1112 05:46:08.294025 3005141 client.go:427] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I1112 05:46:08.791194 3005141 client.go:427] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I1112 05:46:09.288571 3005141 client.go:427] Waiting for RoleBinding "system:deployers" to be provisioned...
 I1112 05:46:10.287672 3005141 client.go:460] Project "e2e-test-networking-cno-9rlp5" has been fully provisioned.
 I1112 05:46:10.311692 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get network.operator cluster -o=jsonpath={.spec.serviceNetwork}'
 STEP: create a hello pod1 in namespace 11/12/25 05:46:13.624
   STEP: create a hello pod1 in namespace @ 11/12/25 05:46:13.624
 I1112 05:46:13.624861 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 process --ignore-unknown-parameters=true -f /tmp/fixture-testdata-dir4153154676/test/extended/testdata/networking/ping-for-pod-specific-node-template.yaml -p NAME=hello-pod1 NAMESPACE=e2e-test-networking-cno-9rlp5 NODENAME=worker-0'
 I1112 05:46:14.823286 3005141 util.go:77] the file of resource is e2e-test-networking-cno-9rlp5-d5j8a3enresource.json
 I1112 05:46:14.823520 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 apply -f e2e-test-networking-cno-9rlp5-d5j8a3enresource.json'
 pod/hello-pod1 created
 I1112 05:46:16.516403 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n e2e-test-networking-cno-9rlp5 hello-pod1 -o=jsonpath={.status.phase}'
 I1112 05:46:17.671616 3005141 util.go:107] The pod  hello-pod1 status in namespace e2e-test-networking-cno-9rlp5 is "Running"
 STEP: create a hello-pod2 in namespace 11/12/25 05:46:17.672
   STEP: create a hello-pod2 in namespace @ 11/12/25 05:46:17.672
 I1112 05:46:17.672535 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 process --ignore-unknown-parameters=true -f /tmp/fixture-testdata-dir4153154676/test/extended/testdata/networking/ping-for-pod-specific-node-template.yaml -p NAME=hello-pod2 NAMESPACE=e2e-test-networking-cno-9rlp5 NODENAME=worker-1'
 I1112 05:46:18.833319 3005141 util.go:77] the file of resource is e2e-test-networking-cno-9rlp5-dpcrmim3resource.json
 I1112 05:46:18.833571 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 apply -f e2e-test-networking-cno-9rlp5-dpcrmim3resource.json'
 pod/hello-pod2 created
 I1112 05:46:20.486600 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n e2e-test-networking-cno-9rlp5 hello-pod2 -o=jsonpath={.status.phase}'
 I1112 05:46:21.636602 3005141 util.go:107] The pod  hello-pod2 status in namespace e2e-test-networking-cno-9rlp5 is "Pending"
 I1112 05:46:25.489863 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n e2e-test-networking-cno-9rlp5 hello-pod2 -o=jsonpath={.status.phase}'
 I1112 05:46:26.668343 3005141 util.go:107] The pod  hello-pod2 status in namespace e2e-test-networking-cno-9rlp5 is "Running"
 STEP: Create a test service backing up both the above pods 11/12/25 05:46:26.668
   STEP: Create a test service backing up both the above pods @ 11/12/25 05:46:26.668
 I1112 05:46:26.669120 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 process --ignore-unknown-parameters=true -f /tmp/fixture-testdata-dir4153154676/test/extended/testdata/networking/service-generic-template.yaml -p SERVICENAME=test-service-73205 NAMESPACE=e2e-test-networking-cno-9rlp5 PROTOCOL=TCP SELECTOR=hello-pod serviceType=ClusterIP ipFamilyPolicy=SingleStack internalTrafficPolicy=Cluster externalTrafficPolicy='
 I1112 05:46:27.826011 3005141 util.go:77] the file of resource is e2e-test-networking-cno-9rlp5-yvu6r1lnresource.json
 I1112 05:46:27.826177 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 apply -f e2e-test-networking-cno-9rlp5-yvu6r1lnresource.json'
 service/test-service-73205 created
 I1112 05:46:29.507217 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get Network.operator.openshift.io/cluster -o=jsonpath={.items[*].spec.defaultNetwork.ovnKubernetesConfig.ipv4.internalJoinSubnet}'
 I1112 05:46:31.241207 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get Network.operator.openshift.io/cluster -o=jsonpath={.items[*].spec.defaultNetwork.ovnKubernetesConfig.ipv4.internalTransitSwitchSubnet}'
 I1112 05:46:32.941024 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get Network.operator.openshift.io/cluster -o=jsonpath={.items[*].spec.defaultNetwork.ovnKubernetesConfig.ipv6.internalJoinSubnet}'
 I1112 05:46:34.673139 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get Network.operator.openshift.io/cluster -o=jsonpath={.items[*].spec.defaultNetwork.ovnKubernetesConfig.ipv6.internalTransitSwitchSubnet}'
 I1112 05:46:36.377581 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 patch Network.operator.openshift.io/cluster -p {"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"ipv4":{"internalJoinSubnet": "100.99.0.0/16","internalTransitSwitchSubnet": "100.69.0.0/16"}}}}} --type=merge'
 network.operator.openshift.io/cluster patched
 I1112 05:46:38.319161 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n openshift-ovn-kubernetes -l app=ovnkube-node -ojsonpath={.items[*].status.conditions[?(@.type=="Ready")].status}'
 I1112 05:46:40.017883 3005141 util.go:201] the Ready status of pod is True True True True True True
 I1112 05:46:40.018081 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get infrastructures.config.openshift.io cluster -o=jsonpath={.status.controlPlaneTopology}'
 I1112 05:46:41.751265 3005141 clusters.go:254] topology is HighlyAvailable
 I1112 05:46:41.751549 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n openshift-ovn-kubernetes -l app=ovnkube-control-plane -ojsonpath={.items[*].status.conditions[?(@.type=="Ready")].status}'
 I1112 05:46:43.184116 3005141 util.go:201] the Ready status of pod is True True
 I1112 05:46:43.184444 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 rollout status -n openshift-ovn-kubernetes ds ovnkube-node --timeout 5m'
 I1112 05:46:45.102767 3005141 util.go:194] ovnkube rollout trigger hasn't happened yet. Trying again
 I1112 05:46:53.192165 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 rollout status -n openshift-ovn-kubernetes ds ovnkube-node --timeout 5m'
 I1112 05:46:55.109984 3005141 util.go:194] ovnkube rollout trigger hasn't happened yet. Trying again
 I1112 05:47:03.188486 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 rollout status -n openshift-ovn-kubernetes ds ovnkube-node --timeout 5m'
 I1112 05:48:51.285115 3005141 util.go:191] ovnkube rollout was triggerred and rolled out successfully
 I1112 05:48:51.285331 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get network.operator cluster -o=jsonpath={.spec.serviceNetwork}'
 I1112 05:48:52.461240 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n e2e-test-networking-cno-9rlp5 hello-pod2 -o=jsonpath={.status.podIPs[0].ip}'
 I1112 05:48:53.668202 3005141 util.go:247] The pod  hello-pod2 IP in namespace e2e-test-networking-cno-9rlp5 is "10.131.0.34"
 I1112 05:48:53.668645 3005141 builder.go:130] Running '/usr/local/bin/kubectl --kubeconfig=/root/kubeconfig.1 --namespace=e2e-test-networking-cno-9rlp5 exec hello-pod1 -- /bin/sh -x -c curl --connect-timeout 5 -s 10.131.0.34:8080'
 I1112 05:48:57.739100 3005141 builder.go:156] stderr: "+ curl --connect-timeout 5 -s 10.131.0.34:8080\n"
 I1112 05:48:57.739206 3005141 builder.go:157] stdout: "Hello OpenShift!\n"
 I1112 05:48:57.739340 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get network.operator cluster -o=jsonpath={.spec.serviceNetwork}'
 I1112 05:48:58.904572 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get service -n e2e-test-networking-cno-9rlp5 test-service-73205 -o=jsonpath={.spec.type}'
 I1112 05:49:00.072809 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get service -n e2e-test-networking-cno-9rlp5 test-service-73205 -o=jsonpath={.spec.ipFamilyPolicy}'
 I1112 05:49:01.238015 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get service -n e2e-test-networking-cno-9rlp5 test-service-73205 -o=jsonpath={.spec.clusterIPs[0]}'
 I1112 05:49:02.416761 3005141 util.go:295] The service test-service-73205 IP in namespace e2e-test-networking-cno-9rlp5 is "172.30.101.85"
 I1112 05:49:02.416958 3005141 builder.go:130] Running '/usr/local/bin/kubectl --kubeconfig=/root/kubeconfig.1 --namespace=e2e-test-networking-cno-9rlp5 exec hello-pod1 -- /bin/sh -x -c curl --connect-timeout 5 -s 172.30.101.85:27017'
 I1112 05:49:06.313985 3005141 builder.go:156] stderr: "+ curl --connect-timeout 5 -s 172.30.101.85:27017\n"
 I1112 05:49:06.314088 3005141 builder.go:157] stdout: "Hello OpenShift!\n"
 I1112 05:49:06.314233 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 patch Network.operator.openshift.io/cluster -p {"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"ipv4":{"internalJoinSubnet": "100.64.0.0/16","internalTransitSwitchSubnet": "100.88.0.0/16"}}}}} --type=merge'
 network.operator.openshift.io/cluster patched
 I1112 05:49:08.297827 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n openshift-ovn-kubernetes -l app=ovnkube-node -ojsonpath={.items[*].status.conditions[?(@.type=="Ready")].status}'
 I1112 05:49:10.013375 3005141 util.go:201] the Ready status of pod is True True True True True True
 I1112 05:49:10.013662 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get infrastructures.config.openshift.io cluster -o=jsonpath={.status.controlPlaneTopology}'
 I1112 05:49:11.721978 3005141 clusters.go:254] topology is HighlyAvailable
 I1112 05:49:11.722211 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 get pod -n openshift-ovn-kubernetes -l app=ovnkube-control-plane -ojsonpath={.items[*].status.conditions[?(@.type=="Ready")].status}'
 I1112 05:49:13.136215 3005141 util.go:201] the Ready status of pod is True True
 I1112 05:49:13.136511 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 rollout status -n openshift-ovn-kubernetes ds ovnkube-node --timeout 5m'
 I1112 05:49:15.055919 3005141 util.go:194] ovnkube rollout trigger hasn't happened yet. Trying again
 I1112 05:49:23.144344 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 rollout status -n openshift-ovn-kubernetes ds ovnkube-node --timeout 5m'
 I1112 05:49:25.059436 3005141 util.go:194] ovnkube rollout trigger hasn't happened yet. Trying again
 I1112 05:49:33.136678 3005141 client.go:1023] Running 'oc --kubeconfig=/root/kubeconfig.1 rollout status -n openshift-ovn-kubernetes ds ovnkube-node --timeout 5m'
 I1112 05:51:18.736664 3005141 util.go:191] ovnkube rollout was triggerred and rolled out successfully
 I1112 05:51:19.767191 3005141 client.go:676] Deleted {user.openshift.io/v1, Resource=users  e2e-test-networking-cno-9rlp5-user}, err: <nil>
 I1112 05:51:20.017802 3005141 client.go:676] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-networking-cno-9rlp5}, err: <nil>
 I1112 05:51:20.269898 3005141 client.go:676] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~PjDXQfRITg_KYQozcM5hZzd1mjE0TtI52CM_ONbLaNU}, err: <nil>
   STEP: Destroying namespace "e2e-test-networking-cno-9rlp5" for this suite. @ 11/12/25 05:51:20.27
 • [320.383 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 320.384 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

Assisted-by: Cursor/claude

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 openshift-eng/jira-lifecycle-plugin repository.

@zhaozhanqi
Copy link
Author

/retest-required

@zhaozhanqi zhaozhanqi force-pushed the migration-ote branch 6 times, most recently from c694ad1 to 8232bc7 Compare November 19, 2025 03:39
Copy link

@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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pkg/controller/operconfig/mtu_probe.go (1)

44-44: Fix copy-paste error in Azure log message.

The log message incorrectly states "AWS cluster" when handling Azure platform type. This would mislead operators debugging Azure deployments.

Apply this diff to fix the log message:

-		klog.Infof("AWS cluster, omitting MTU probing and using default of %d", azureMTU)
+		klog.Infof("Azure cluster, omitting MTU probing and using default of %d", azureMTU)
♻️ Duplicate comments (1)
go.mod (1)

200-259: runc/selinux versions are still flagged as HIGH-severity container escape vectors

github.com/opencontainers/runc v1.2.5 and github.com/opencontainers/selinux v1.11.1 remain in the module graph as indirect deps, and the scanner output still marks them with multiple HIGH-severity container escape advisories. Even though they’re transitive, shipping binaries that vendor these versions keeps that risk in scope.

If you haven’t already addressed this elsewhere, please either:

  • bump the upstream deps that pull them in to releases that contain patched runc/selinux, or
  • add explicit replace directives pinning github.com/opencontainers/runc to a patched release (>= the fixed 1.2.x/1.3.x line) and github.com/opencontainers/selinux to a fixed version, then re-run go mod tidy and security scanning.

Given this is orthogonal to the OTE wiring but security-critical, it’s worth tracking explicitly (even if fixed in a follow-up PR).

🧹 Nitpick comments (2)
test/Makefile (1)

1-45: Makefile wiring looks good; consider using the Linux-specific target for container builds

The build logic and version ldflags look fine. Since you already provide a build-linux target (CGO disabled, GOOS/GOARCH pinned), you could optionally have higher-level callers (e.g., the Docker builder) invoke that target instead of build to make the Linux/amd64 build characteristics explicit and more reproducible, but it isn’t strictly required here.

Makefile (1)

49-54: Hooking in the e2e test build looks fine; optionally call build-linux for stricter targeting

The new build-e2e-tests target is straightforward and does what the Dockerfile needs. If you want to make it explicit that the extension binary is always built as a Linux/amd64, CGO-disabled artifact for images, you could have this target call $(MAKE) -C test build-linux instead of build. That’s a convenience/robustness tweak, not a blocker.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 3f640e9 and 8232bc7.

⛔ Files ignored due to path filters (290)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/Azure/go-ansiterm/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/constants.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/csi_entry_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/csi_param_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/escape_intermediate_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/escape_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/event_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/ground_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/osc_string_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/parser_action_helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/parser_actions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/states.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/utilities.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/ansi.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/attr_translation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/cursor_helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/erase_helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/scroll_helper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/utilities.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Azure/go-ansiterm/winterm/win_event_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/JeffAshton/win_pdh/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/JeffAshton/win_pdh/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/JeffAshton/win_pdh/README.mdown is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/JeffAshton/win_pdh/pdh.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/MakeNowJust/heredoc/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/MakeNowJust/heredoc/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/MakeNowJust/heredoc/heredoc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/CODEOWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/backup.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/ea.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/fileinfo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/hvsock.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/fs/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/fs/fs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/fs/security.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/socket/rawaddr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/socket/socket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/socket/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pipe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pkg/guid/guid_nonwindows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pkg/guid/guid_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/pkg/guid/variant_string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/privilege.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/reparse.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/sd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/syscall.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/go-winio/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/CODEOWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/hns_v1.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/hnsaccelnet.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/hnsglobals.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/hnssupport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hns.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsaccelnet.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsendpoint.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnserrors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsfuncs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsglobals.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnsnetwork.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnspolicy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnspolicylist.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/hnssupport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/namespace.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/hns/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/interop/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/interop/interop.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/Microsoft/hnslib/internal/interop/zsyscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/armon/circbuf/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/armon/circbuf/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/armon/circbuf/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/armon/circbuf/circbuf.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/auth/bearer/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awserr/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awserr/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/copy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/equal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/path_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/prettify.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/default_retryer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/logger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/metadata/client_info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/client/no_op_retryer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_1_5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_1_9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_background_1_7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/context_sleep.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/convert_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/corehandlers/awsinternal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/corehandlers/param_validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/example.ini is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/sso_cached_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/token_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/web_identity_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/enable.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/metric_chan.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/defaults/shared_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/legacy_regions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/jsonvalue.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/logger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/http_request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/offset_reader.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_1_7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_1_8.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_context_1_6.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/request_pagination.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/timeout_read_closer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/validation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/request/waiter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.12.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.6.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/session.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/header_rules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/uri_path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/url_1_7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/aws/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/context/background_go1.5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ast.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/expression.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ini.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/statement.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/walker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkio/byte.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.6.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.7.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor_go1.9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkrand/locked_source.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read_1_5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sdkuri/path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config_resolve_home.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config_resolve_home_go1.12.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/strings/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/singleflight.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/host.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/idempotency.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/jsonrpc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/unmarshal_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/jsonvalue.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/payload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/protocol.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/rest/payload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/restjson.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/unmarshal_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/xml_to_struct.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/elb/waiters.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sso/ssoiface/interface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/ssooidc/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/ssooidc/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/ssooidc/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/ssooidc/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/customizations.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/service.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/interface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/fs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/fs_json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/chai2010/gettext-go/fs_os.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (10)
  • Dockerfile (1 hunks)
  • Makefile (1 hunks)
  • go.mod (4 hunks)
  • manifests/0000_70_cluster-network-operator_01_pki_crd.yaml (1 hunks)
  • pkg/controller/operconfig/mtu_probe.go (2 hunks)
  • pkg/network/openshift_sdn_test.go (0 hunks)
  • test/Makefile (1 hunks)
  • test/cmd/main.go (1 hunks)
  • test/e2e/cno.go (1 hunks)
  • test/e2e/util.go (1 hunks)
💤 Files with no reviewable changes (1)
  • pkg/network/openshift_sdn_test.go
🚧 Files skipped from review as they are similar to previous changes (3)
  • Dockerfile
  • manifests/0000_70_cluster-network-operator_01_pki_crd.yaml
  • test/e2e/util.go
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • test/e2e/cno.go
  • Makefile
  • test/Makefile
  • test/cmd/main.go
  • pkg/controller/operconfig/mtu_probe.go
  • go.mod
🪛 checkmake (0.2.2)
Makefile

[warning] 50-50: Missing required phony target "test"

(minphony)

test/Makefile

[warning] 41-41: Missing required phony target "test"

(minphony)

🪛 OSV Scanner (2.2.4)
go.mod

[HIGH] 207-207: github.com/opencontainers/runc 1.2.5: Container escape via "masked path" abuse due to mount race conditions in github.com/opencontainers/runc

(GO-2025-4096)


[HIGH] 207-207: github.com/opencontainers/runc 1.2.5: Container escape with malicious config due to /dev/console mount and related races in github.com/opencontainers/runc

(GO-2025-4097)


[HIGH] 207-207: github.com/opencontainers/runc 1.2.5: Container escape and DDoS due to arbitrary write gadgets and procfs write redirects in github.com/opencontainers/runc

(GO-2025-4098)


[HIGH] 207-207: github.com/opencontainers/runc 1.2.5: runc container escape via "masked path" abuse due to mount race conditions

(GHSA-9493-h29p-rfm2)


[HIGH] 207-207: github.com/opencontainers/runc 1.2.5: runc container escape and denial of service due to arbitrary write gadgets and procfs write redirects

(GHSA-cgrx-mc8f-2prm)


[HIGH] 207-207: github.com/opencontainers/runc 1.2.5: runc container escape with malicious config due to /dev/console mount and related races

(GHSA-qw9x-cqr3-wc7r)


[HIGH] 209-209: github.com/opencontainers/selinux 1.11.1: Container escape and DDoS due to arbitrary write gadgets and procfs write redirects in github.com/opencontainers/runc

(GO-2025-4098)


[HIGH] 209-209: github.com/opencontainers/selinux 1.11.1: runc container escape and denial of service due to arbitrary write gadgets and procfs write redirects

(GHSA-cgrx-mc8f-2prm)

🔇 Additional comments (2)
pkg/controller/operconfig/mtu_probe.go (1)

32-32: Justify the MTU probe timeout increase from 100s to 180s.

This 80% increase in timeout could extend deployment wait times when MTU probing fails. The change appears unrelated to the main PR objective (OTE framework setup) and lacks justification. Please clarify:

  • What issue prompted this increase?
  • Has 100s proven insufficient in testing or production environments?
  • Is 180s validated as sufficient for the slowest supported environments?

Also applies to: 70-71

test/cmd/main.go (1)

1-50: OTE main wiring looks consistent with the extension pattern

Registry/extension setup, suite registration, and Cobra command wiring all look reasonable for this test binary. With the suite qualifier aligned to the test names (see comment in test/e2e/cno.go), this entrypoint should behave as expected.

test/e2e/cno.go Outdated
Comment on lines 16 to 115
var _ = g.Describe("[sig-network] CNO", func() {
defer g.GinkgoRecover()
oc := exutil.NewCLIWithPodSecurityLevel("networking-cno", admissionapi.LevelBaseline)

g.It("Author:anusaxen-High-73205-High-72817-Make sure internalJoinSubnet and internalTransitSwitchSubnet is configurable post install as a Day 2 operation [Disruptive]", func() {
var (
pod1Name = "hello-pod1"
pod2Name = "hello-pod2"
podLabel = "hello-pod"
serviceName = "test-service-73205"
servicePort = 27017
serviceTargetPort = 8080
)
ipStackType := checkIPStackType(oc)
o.Expect(ipStackType).NotTo(o.BeEmpty())

nodeList, err := e2enode.GetReadySchedulableNodes(context.TODO(), oc.KubeFramework().ClientSet)
o.Expect(err).NotTo(o.HaveOccurred())
if len(nodeList.Items) < 2 {
g.Skip("This case requires 2 nodes, but the cluster has less than two nodes")
}

// Create hello-pod1 on the first node
createPingPodOnNode(oc, pod1Name, oc.Namespace(), podLabel, nodeList.Items[0].Name)

// Create hello-pod2 on the second node
createPingPodOnNode(oc, pod2Name, oc.Namespace(), podLabel, nodeList.Items[1].Name)

// Determine ipFamilyPolicy based on cluster type
var ipFamilyPolicy string
if ipStackType == "ipv4single" {
ipFamilyPolicy = "SingleStack"
} else {
ipFamilyPolicy = "PreferDualStack"
}
internalTrafficPolicy := "Cluster"
externalTrafficPolicy := ""
// Create service backing both pods
createGenericService(oc, serviceName, oc.Namespace(), "TCP", podLabel, "ClusterIP", ipFamilyPolicy, internalTrafficPolicy, externalTrafficPolicy, servicePort, serviceTargetPort)
//custom patches to test depending on type of cluster addressing
customPatchIPv4 := "{\"spec\":{\"defaultNetwork\":{\"ovnKubernetesConfig\":{\"ipv4\":{\"internalJoinSubnet\": \"100.99.0.0/16\",\"internalTransitSwitchSubnet\": \"100.69.0.0/16\"}}}}}"
customPatchIPv6 := "{\"spec\":{\"defaultNetwork\":{\"ovnKubernetesConfig\":{\"ipv6\":{\"internalJoinSubnet\": \"ab98::/64\",\"internalTransitSwitchSubnet\": \"ab97::/64\"}}}}}"
customPatchDualstack := "{\"spec\":{\"defaultNetwork\":{\"ovnKubernetesConfig\":{\"ipv4\":{\"internalJoinSubnet\": \"100.99.0.0/16\",\"internalTransitSwitchSubnet\": \"100.69.0.0/16\"},\"ipv6\": {\"internalJoinSubnet\": \"ab98::/64\",\"internalTransitSwitchSubnet\": \"ab97::/64\"}}}}}"

//gather original cluster values so that we can defer to them later once test done
currentinternalJoinSubnetIPv4Value, err := oc.AsAdmin().WithoutNamespace().Run("get").Args("Network.operator.openshift.io/cluster", "-o=jsonpath={.spec.defaultNetwork.ovnKubernetesConfig.ipv4.internalJoinSubnet}").Output()
o.Expect(err).NotTo(o.HaveOccurred())
currentinternalTransitSwSubnetIPv4Value, err := oc.AsAdmin().WithoutNamespace().Run("get").Args("Network.operator.openshift.io/cluster", "-o=jsonpath={.spec.defaultNetwork.ovnKubernetesConfig.ipv4.internalTransitSwitchSubnet}").Output()
o.Expect(err).NotTo(o.HaveOccurred())
currentinternalJoinSubnetIPv6Value, err := oc.AsAdmin().WithoutNamespace().Run("get").Args("Network.operator.openshift.io/cluster", "-o=jsonpath={.spec.defaultNetwork.ovnKubernetesConfig.ipv6.internalJoinSubnet}").Output()
o.Expect(err).NotTo(o.HaveOccurred())
currentinternalTransitSwSubnetIPv6Value, err := oc.AsAdmin().WithoutNamespace().Run("get").Args("Network.operator.openshift.io/cluster", "-o=jsonpath={.spec.defaultNetwork.ovnKubernetesConfig.ipv6.internalTransitSwitchSubnet}").Output()
o.Expect(err).NotTo(o.HaveOccurred())

//if any of value is null on exisiting cluster, it indicates that cluster came up with following default values assigned by OVNK
if currentinternalJoinSubnetIPv4Value == "" {
currentinternalJoinSubnetIPv4Value = "100.64.0.0/16"
}
if currentinternalJoinSubnetIPv6Value == "" {
currentinternalJoinSubnetIPv6Value = "fd98::/64"
}
if currentinternalTransitSwSubnetIPv4Value == "" {
currentinternalTransitSwSubnetIPv4Value = "100.88.0.0/16"
}
if currentinternalTransitSwSubnetIPv6Value == "" {
currentinternalTransitSwSubnetIPv6Value = "fd97::/64"
}

//vars to patch cluster back to original state
patchIPv4original := "{\"spec\":{\"defaultNetwork\":{\"ovnKubernetesConfig\":{\"ipv4\":{\"internalJoinSubnet\": \"" + currentinternalJoinSubnetIPv4Value + "\",\"internalTransitSwitchSubnet\": \"" + currentinternalTransitSwSubnetIPv4Value + "\"}}}}}"
patchIPv6original := "{\"spec\":{\"defaultNetwork\":{\"ovnKubernetesConfig\":{\"ipv6\":{\"internalJoinSubnet\": \"" + currentinternalJoinSubnetIPv6Value + "\",\"internalTransitSwitchSubnet\": \"" + currentinternalTransitSwSubnetIPv6Value + "\"}}}}}"
patchDualstackoriginal := "{\"spec\":{\"defaultNetwork\":{\"ovnKubernetesConfig\":{\"ipv4\":{\"internalJoinSubnet\": \"" + currentinternalJoinSubnetIPv4Value + "\",\"internalTransitSwitchSubnet\": \"" + currentinternalTransitSwSubnetIPv4Value + "\"},\"ipv6\": {\"internalJoinSubnet\": \"" + currentinternalJoinSubnetIPv6Value + "\",\"internalTransitSwitchSubnet\": \"" + currentinternalTransitSwSubnetIPv6Value + "\"}}}}}"

switch ipStackType {
case "ipv4single":
defer func() {
patchResourceAsAdmin(oc, "Network.operator.openshift.io/cluster", patchIPv4original)
err := checkOVNKState(oc)
o.Expect(err).NotTo(o.HaveOccurred(), "OVNkube didn't trigger or rolled out successfully post oc patch")
}()
patchResourceAsAdmin(oc, "Network.operator.openshift.io/cluster", customPatchIPv4)
case "ipv6single":
defer func() {
patchResourceAsAdmin(oc, "Network.operator.openshift.io/cluster", patchIPv6original)
err := checkOVNKState(oc)
o.Expect(err).NotTo(o.HaveOccurred(), "OVNkube didn't trigger or rolled out successfully post oc patch")
}()
patchResourceAsAdmin(oc, "Network.operator.openshift.io/cluster", customPatchIPv6)
default:
defer func() {
patchResourceAsAdmin(oc, "Network.operator.openshift.io/cluster", patchDualstackoriginal)
err := checkOVNKState(oc)
o.Expect(err).NotTo(o.HaveOccurred(), "OVNkube didn't trigger or rolled out successfully post oc patch")
}()
patchResourceAsAdmin(oc, "Network.operator.openshift.io/cluster", customPatchDualstack)
}
err = checkOVNKState(oc)
o.Expect(err).NotTo(o.HaveOccurred(), "OVNkube never trigger or rolled out successfully post oc patch")
//check usual svc and pod connectivities post migration which also ensures disruption doesn't last post successful rollout
curlPod2PodPass(oc, oc.Namespace(), pod1Name, oc.Namespace(), pod2Name, serviceTargetPort)
curlPod2SvcPass(oc, oc.Namespace(), oc.Namespace(), pod1Name, serviceName, servicePort)
})
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Ensure test is discoverable by the configured OTE suite

The extension suite in test/cmd/main.go filters specs with the qualifier:

Qualifiers: []string{
    "name.contains('[Suite:openshift/cluster-network-operator/conformance/parallel')",
},

but the g.It(...) description here does not contain that [Suite:openshift/cluster-network-operator/conformance/parallel token, so this test is unlikely to be picked up by that suite in normal runs (even though it worked in your manual run).

Consider updating the It string to include the suite label, for example:

- g.It("Author:anusaxen-High-73205-High-72817-Make sure internalJoinSubnet and internalTransitSwitchSubnet is configurable post install as a Day 2 operation [Disruptive]", func() {
+ g.It("Author:anusaxen-High-73205-High-72817-Make sure internalJoinSubnet and internalTransitSwitchSubnet is configurable post install as a Day 2 operation [Suite:openshift/cluster-network-operator/conformance/parallel][Disruptive]", func() {

so that the qualifier expression in the extension matches this test.

🤖 Prompt for AI Agents
In test/e2e/cno.go around lines 16 to 117, the g.It description string is
missing the required suite qualifier token so the OTE extension filter won't
discover this test; update the g.It(...) description to include the suite label
token "[Suite:openshift/cluster-network-operator/conformance/parallel"
(preserving the existing tags like [sig-network] and [Disruptive]) so the
qualifier in test/cmd/main.go will match and the test is picked up by the suite.

@zhaozhanqi zhaozhanqi marked this pull request as draft November 19, 2025 08:10
@zhaozhanqi zhaozhanqi force-pushed the migration-ote branch 2 times, most recently from c8ff028 to 0e9722b Compare November 19, 2025 09:39
@zhaozhanqi
Copy link
Author

/retest-required

1 similar comment
@zhaozhanqi
Copy link
Author

/retest-required

@zhaozhanqi zhaozhanqi marked this pull request as ready for review November 21, 2025 11:56
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Nov 21, 2025
Copy link

@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

♻️ Duplicate comments (3)
go.mod (1)

5-31: Resolve transitive runc/selinux container‑escape vulnerabilities before merging

Previous analysis on this go.mod showed that transitive deps still pull in github.com/opencontainers/runc v1.2.5 and github.com/opencontainers/selinux v1.11.1, both under multiple HIGH‑severity container‑escape advisories. There are still no explicit replaces or upstream bumps here to guarantee patched versions, so the issue appears unresolved.

Please either:

  • Move to upstream Kubernetes/OpenShift/cadvisor/origin versions that vendor fixed runc/selinux, or
  • Add temporary explicit replaces to known‑good versions and re‑run OSV/go mod graph to confirm the old versions are gone, e.g.:
 replace (
@@
-	k8s.io/sample-controller => github.com/openshift/kubernetes/staging/src/k8s.io/sample-controller v0.0.0-20251017123720-96593f323733
+	k8s.io/sample-controller => github.com/openshift/kubernetes/staging/src/k8s.io/sample-controller v0.0.0-20251017123720-96593f323733
+	github.com/opencontainers/runc => github.com/opencontainers/runc v1.2.8
+	github.com/opencontainers/selinux => github.com/opencontainers/selinux v1.13.0
 )

(Exact patched versions can be adjusted to match your runtime baseline, as long as they include the published fixes.)

Please re-run your vulnerability scan (OSV, osv-scanner, or equivalent) after adjusting these deps to verify that runc ≥ 1.2.8 (or equivalent fixed branch) and a patched opencontainers/selinux are in use end‑to‑end.

Also applies to: 192-227

test/e2e/util.go (2)

128-149: Fix ovnkube rollout polling condition so checkOVNKState can ever succeed

oc rollout status ds/ovnkube-node does not emit “waiting for rollout to finish” and “successfully rolled out” in the same message. Requiring both substrings makes the predicate unsatisfiable, so checkOVNKState will always time out.

Consider treating “successfully rolled out” alone as success and logging other states separately, e.g.:

-	return wait.PollUntilContextTimeout(context.Background(), 10*time.Second, 2*time.Minute, true, func(ctx context.Context) (bool, error) {
+	return wait.PollUntilContextTimeout(context.Background(), 10*time.Second, 2*time.Minute, true, func(ctx context.Context) (bool, error) {
 		status, err := oc.AsAdmin().WithoutNamespace().Run("rollout").Args("status", "-n", "openshift-ovn-kubernetes", "ds", "ovnkube-node", "--timeout", "5m").Output()
 		o.Expect(err).NotTo(o.HaveOccurred())
-		if strings.Contains(status, "rollout to finish") && strings.Contains(status, "successfully rolled out") {
-			e2e.Logf("ovnkube rollout was triggerred and rolled out successfully")
-			return true, nil
-		}
-		e2e.Logf("ovnkube rollout trigger hasn't happened yet. Trying again")
-		return false, nil
+		if strings.Contains(status, "successfully rolled out") {
+			e2e.Logf("ovnkube rollout was triggered and rolled out successfully")
+			return true, nil
+		}
+		if strings.Contains(status, "rollout to finish") {
+			e2e.Logf("ovnkube rollout trigger hasn't happened yet. Trying again")
+			return false, nil
+		}
+		e2e.Logf("ovnkube rollout status unexpected (%s); retrying...", status)
+		return false, nil
 	})

206-311: Avoid treating a NodePort value as a host in curlPod2SvcPass

In the NodePort paths of getSvcIP, the second return value is the nodePort (e.g., "30080"). curlPod2SvcPass then unconditionally treats a non‑empty second value as an IP/host:

svcIP1, svcIP2 := getSvcIP(...)
if svcIP2 != "" {
    // svcIP2 is a port for NodePort services
    net.JoinHostPort(svcIP2, strconv.Itoa(svcPort))
}

This yields invalid curl targets like host "30080", so any future NodePort‑based tests will fail.

If you don’t need NodePort coverage yet, a simple and safe fix is to only treat the second value as an address when it actually looks like an IP, and otherwise ignore it:

 func curlPod2SvcPass(oc *CLI, namespaceSrc string, namespaceSvc string, podNameSrc string, svcName string, svcPort int) {
-	svcIP1, svcIP2 := getSvcIP(oc, namespaceSvc, svcName)
-	if svcIP2 != "" {
-		_, err := e2eoutput.RunHostCmdWithRetries(namespaceSrc, podNameSrc, "curl --connect-timeout 5 -s "+net.JoinHostPort(svcIP1, strconv.Itoa(svcPort)), 3*time.Second, 15*time.Second)
-		o.Expect(err).NotTo(o.HaveOccurred())
-		_, err = e2eoutput.RunHostCmdWithRetries(namespaceSrc, podNameSrc, "curl --connect-timeout 5 -s "+net.JoinHostPort(svcIP2, strconv.Itoa(svcPort)), 3*time.Second, 15*time.Second)
-		o.Expect(err).NotTo(o.HaveOccurred())
-	} else {
-		_, err := e2eoutput.RunHostCmdWithRetries(namespaceSrc, podNameSrc, "curl --connect-timeout 5 -s "+net.JoinHostPort(svcIP1, strconv.Itoa(svcPort)), 3*time.Second, 15*time.Second)
-		o.Expect(err).NotTo(o.HaveOccurred())
-	}
+	svcIP1, svcIP2 := getSvcIP(oc, namespaceSvc, svcName)
+
+	targets := []string{svcIP1}
+	if svcIP2 != "" && net.ParseIP(svcIP2) != nil {
+		// Only treat svcIP2 as an address if it parses as an IP; skip bare NodePort numbers.
+		targets = append(targets, svcIP2)
+	}
+
+	for _, ip := range targets {
+		_, err := e2eoutput.RunHostCmdWithRetries(
+			namespaceSrc,
+			podNameSrc,
+			"curl --connect-timeout 5 -s "+net.JoinHostPort(ip, strconv.Itoa(svcPort)),
+			3*time.Second,
+			15*time.Second,
+		)
+		o.Expect(err).NotTo(o.HaveOccurred())
+	}
 }

If you do intend to validate NodePort semantics, you’ll additionally need to plumb a real node IP (not just nodePort) into this path.

🧹 Nitpick comments (1)
test/e2e/cli.go (1)

258-278: Extract QPS and Burst to constants.

Lines 274-275 hardcode QPS = 20 and Burst = 50, duplicating the same values set in lines 43-44 of NewCLIWithPodSecurityLevel. Extract these to package-level constants to ensure consistency and simplify future adjustments.

+const (
+	defaultClientQPS   = 20
+	defaultClientBurst = 50
+)
+
 func (c *CLI) getConfig() (*rest.Config, error) {
 	// ... existing code ...
 	
-	config.QPS = 20
-	config.Burst = 50
+	config.QPS = defaultClientQPS
+	config.Burst = defaultClientBurst
 	
 	return config, nil
 }

And update lines 43-44:

ClientQPS:   defaultClientQPS,
ClientBurst: defaultClientBurst,
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 8232bc7 and 14a75d5.

⛔ Files ignored due to path filters (290)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/distribution/reference/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/CODE-OF-CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/GOVERNANCE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/distribution-logo.svg is excluded by !**/*.svg, !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/normalize.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/regexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emicklei/go-restful/v3/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emicklei/go-restful/v3/CHANGES.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emicklei/go-restful/v3/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emicklei/go-restful/v3/curly.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emicklei/go-restful/v3/custom_verb.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emicklei/go-restful/v3/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/.cliff.toml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/CONTRIBUTORS.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/pointer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonreference/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonreference/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonreference/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonreference/internal/normalize_url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonreference/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/.codecov.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/.mockery.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/cmd_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/sizeof.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/type_constraints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/convert_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/go.work is excluded by !**/*.work, !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/go.work.sum is excluded by !**/*.sum, !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/initialism_index.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/name_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/concat.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/loading.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/BENCHMARK.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/initialism_index.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_lexem.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_mangler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/pools.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/split.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/string_bytes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/name_lexem.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/net.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/net.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/split.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/collection_formats.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/crypto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/date.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/dict.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/functions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/network.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/numeric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/reflect.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/regex.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/merge.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/profile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/prune.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/compression.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/conn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/join.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/mask.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/mask_safe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/prepared.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/josharian/intern/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/josharian/intern/intern.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mailru/easyjson/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mailru/easyjson/buffer/pool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/bytestostr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/bytestostr_nounsafe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mailru/easyjson/jwriter/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/connection.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/handlers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/priority.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/dictionary.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/read.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/write.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/flowrate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/io.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/OWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/RELEASING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/config/deprecated.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/decorator_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/deprecated_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/formatter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/build/build_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/abort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/boostrap_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/bootstrap_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/compile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/test_suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/verify_version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/labels/labels_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/main.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/ginkgo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/import.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/unfocus/unfocus_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta_tracker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hashes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_cli_dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/counter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/failer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/focus.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/global/init.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/group.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/interrupt_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/node.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/ordering.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/client_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/server_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_reporter_manager.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/report_entry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/suite_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/testingtproxy/testing_t_proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/tree.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/deprecated_reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/json_report.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (10)
  • Dockerfile (1 hunks)
  • Makefile (1 hunks)
  • go.mod (5 hunks)
  • manifests/0000_70_cluster-network-operator_01_pki_crd.yaml (1 hunks)
  • pkg/network/openshift_sdn_test.go (0 hunks)
  • test/Makefile (1 hunks)
  • test/cmd/main.go (1 hunks)
  • test/e2e/cli.go (1 hunks)
  • test/e2e/cno.go (1 hunks)
  • test/e2e/util.go (1 hunks)
💤 Files with no reviewable changes (1)
  • pkg/network/openshift_sdn_test.go
🚧 Files skipped from review as they are similar to previous changes (2)
  • manifests/0000_70_cluster-network-operator_01_pki_crd.yaml
  • Dockerfile
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • Makefile
  • test/cmd/main.go
  • go.mod
  • test/e2e/util.go
  • test/e2e/cno.go
  • test/e2e/cli.go
  • test/Makefile
🪛 checkmake (0.2.2)
Makefile

[warning] 50-50: Missing required phony target "test"

(minphony)

test/Makefile

[warning] 41-41: Missing required phony target "test"

(minphony)

🔇 Additional comments (5)
test/cmd/main.go (1)

18-53: OTE extension wiring and suite registration look correct

Registry/extension setup, disruptive suite definition, spec wiring, and Cobra command integration follow the expected openshift-tests-extension pattern. Nothing blocking here from a correctness/maintainability perspective.

Makefile (1)

49-53: E2E test binary build target is straightforward and safe

build-e2e-tests simply delegates to make -C test build with a helpful log line, keeping the top-level Makefile thin and maintainable. No issues from a build or CI perspective.

test/Makefile (1)

1-45: Test extension build Makefile looks solid

The binary naming, use of ldflags for version metadata, and separate linux/amd64 target are all reasonable. Directory handling and clean target are correct; nothing blocking here.

test/e2e/cno.go (1)

14-115: Day‑2 OVN subnet test and disruptive suite labeling look consistent

The test flow (pod/service setup, OVN patching, rollout wait, connectivity checks, and restore) is coherent, and the [Suite:openshift/cluster-network-operator/disruptive][Disruptive] tag matches the OTE qualifier so the spec should be discoverable.

test/e2e/cli.go (1)

71-71: No issues found — getRandomString() is properly defined in the same package.

The function is defined in test/e2e/util.go at line 33 and is accessible from test/e2e/cli.go since both files are in the same package. The code is correct as-is.

Comment on lines +62 to +63
g.BeforeEach(cli.setupNamespace)
g.AfterEach(cli.teardownNamespace)
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Hook registration in constructor may cause multiple registrations.

Registering BeforeEach and AfterEach hooks during CLI construction means that each CLI instance created across different test specs will add new hooks to the Ginkgo suite. This can lead to multiple namespace creations and deletions per test, causing resource conflicts and flaky tests.

Consider one of these approaches:

  • Move hook registration to a package-level init() or var _ = ginkgo.BeforeSuite() with a singleton pattern.
  • Document that only one CLI instance should be created per test file.
  • Remove hooks and require explicit Setup()/Teardown() calls in each test.
🤖 Prompt for AI Agents
In test/e2e/cli.go around lines 62-63, registering g.BeforeEach and g.AfterEach
inside the CLI constructor causes hooks to be added each time a CLI instance is
created, leading to duplicated hooks and flaky tests; fix by removing hook
registration from the constructor and instead register them once (e.g., in a
package-level init() or with var _ = ginkgo.BeforeSuite()/BeforeEach using a
singleton CLI), or document/ensure only one CLI is constructed per test file, or
replace automatic hooks with explicit Setup()/Teardown() methods callers must
invoke from their tests.

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Nov 24, 2025
Copy link

@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: 0

♻️ Duplicate comments (1)
test/e2e/cli.go (1)

34-66: Avoid registering Ginkgo hooks from the CLI constructor (risk of duplicate hooks).

Each call to NewCLIWithPodSecurityLevel registers new BeforeEach/AfterEach hooks on the global Ginkgo suite, so multiple CLI instances in a file/suite will cause multiple namespace creations and deletions per test, leading to conflicts and flakiness.

Consider registering these hooks once (e.g., via a package‑level singleton CLI or a BeforeSuite/AfterSuite), or removing the automatic hooks and requiring callers to wire setupNamespace/teardownNamespace explicitly from their own BeforeEach/AfterEach.

🧹 Nitpick comments (2)
test/e2e/cli.go (2)

21-31: AsAdmin flag is currently a no‑op and may mislead callers.

asAdmin is set in asAdminInternal/AsAdmin but never read when building the command in output(), so cli.AsAdmin() behaves identically to the base cli. This is confusing for tests that might expect different privileges or behavior.

Either:

  • Wire asAdmin into command construction (e.g., switch kubeconfig or add appropriate oc flags when true), or
  • Drop asAdmin and AsAdmin for now to avoid exposing a misleading API.

Also applies to: 131-141


100-119: Clear namespacesToDelete after teardown to avoid redundant work.

teardownNamespace iterates over all namespacesToDelete on every AfterEach without ever clearing the slice, so namespaces deleted in earlier tests are retried repeatedly, which can add up across many specs.

After the loop, consider resetting the slice (e.g., c.namespacesToDelete = nil) so each namespace is only processed once per process.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 60ea670 and 5c40b3d.

📒 Files selected for processing (1)
  • test/e2e/cli.go (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • test/e2e/cli.go

Copy link

@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: 0

♻️ Duplicate comments (3)
test/e2e/util.go (2)

139-147: Rollout status predicate can never succeed; checkOVNKState will always time out

The predicate currently requires both "rollout to finish" and "successfully rolled out" in the same oc rollout status output, which doesn’t happen in practice (those messages appear in different phases). As a result, this loop never returns true and checkOVNKState will only exit via timeout, making tests consistently fail.

Consider treating "successfully rolled out" alone as success, and logging other states while retrying. For example:

-		if strings.Contains(status, "rollout to finish") && strings.Contains(status, "successfully rolled out") {
-			e2e.Logf("ovnkube rollout was triggerred and rolled out successfully")
-			return true, nil
-		}
-		e2e.Logf("ovnkube rollout trigger hasn't happened yet. Trying again")
-		return false, nil
+		if strings.Contains(status, "successfully rolled out") {
+			e2e.Logf("ovnkube rollout was triggered and rolled out successfully")
+			return true, nil
+		}
+		if strings.Contains(status, "rollout to finish") {
+			e2e.Logf("ovnkube rollout trigger hasn't happened yet. Trying again")
+			return false, nil
+		}
+		e2e.Logf("ovnkube rollout status unexpected (%s); retrying...", status)
+		return false, nil

206-218: NodePort support in curlPod2SvcPass still builds an invalid curl target

getSvcIP intentionally returns the NodePort value in the second result for NodePort services (both single- and dual-stack), but curlPod2SvcPass unconditionally treats svcIP2 as a host:

svcIP1, svcIP2 := getSvcIP(...)
...
curl ... net.JoinHostPort(svcIP2, strconv.Itoa(svcPort))

For a NodePort service this becomes something like curl ... 30080:8080, which is an invalid host name and will always fail. At best, you should only be curling the ClusterIP path; at worst, this gives a false impression that NodePort connectivity is being tested.

Suggested directions:

  • Either drop NodePort-specific behavior here for now (only use svcIP1 and ignore a numeric svcIP2), or
  • Extend getSvcIP to return NodePort separately from IPs (e.g., (ip1, ip2, nodePort string)), and in the NodePort case look up a real node IP and curl nodeIP:nodePort explicitly.

A minimal safe improvement that avoids invalid hosts while preserving dual-stack behavior would be:

 func curlPod2SvcPass(...){
-	svcIP1, svcIP2 := getSvcIP(oc, namespaceSvc, svcName)
-	if svcIP2 != "" {
+	svcIP1, svcIP2 := getSvcIP(oc, namespaceSvc, svcName)
+	if svcIP2 != "" && net.ParseIP(svcIP2) != nil {
 		_, err := e2eoutput.RunHostCmdWithRetries(... net.JoinHostPort(svcIP1, strconv.Itoa(svcPort)) ...)
 		...
 		_, err = e2eoutput.RunHostCmdWithRetries(... net.JoinHostPort(svcIP2, strconv.Itoa(svcPort)) ...)
 		...
 	} else {
 		_, err := e2eoutput.RunHostCmdWithRetries(... net.JoinHostPort(svcIP1, strconv.Itoa(svcPort)) ...)
 		...
 	}
 }

This keeps dual-stack coverage while preventing the NodePort value from being misused as a hostname. You can then follow up with proper NodePort testing that pairs a real node IP with the NodePort.

Also applies to: 224-310

test/e2e/cli.go (1)

33-66: Registering Ginkgo hooks in the constructor risks duplicate setup/teardown

NewCLIWithPodSecurityLevel calls:

g.BeforeEach(cli.setupNamespace)
g.AfterEach(cli.teardownNamespace)

for every CLI instance. If tests create more than one CLI (e.g., different base names or levels), each construction adds another global BeforeEach/AfterEach pair, leading to multiple namespaces being created and torn down per test and making behavior order-/construction-dependent. This is hard to reason about and can easily cause flaky tests and unnecessary resource churn.

Consider registering these hooks only once at package scope (e.g., via a singleton CLI in init() or var _ = g.BeforeEach(...)), or switching to explicit Setup/Teardown calls that tests invoke themselves.

🧹 Nitpick comments (2)
test/Makefile (1)

13-31: Double‑check -ldflags version symbols are actually linked into this binary

The LDFLAGS inject values into $(GO_MODULE)/pkg/version.commitFromGit, buildDate, and versionFromGit, but test/cmd/main.go itself doesn’t import github.com/openshift/cluster-network-operator/pkg/version. Unless some transitively imported package pulls that in, the linker won’t see those symbols and go build with -X will fail.

Please verify that:

  • pkg/version defines those three string vars, and
  • The test binary’s import graph includes pkg/version somewhere.

If it doesn’t, consider either importing pkg/version explicitly (e.g., for a --version flag) or dropping these -X flags for this binary to avoid fragile, unused wiring.

test/e2e/cli.go (1)

131-141: AsAdmin flag is never used when building commands

AsAdmin() and asAdminInternal() toggle the asAdmin field, but output() ignores it when constructing the oc command. All calls (including those using AsAdmin().WithoutNamespace()...) therefore run with the same identity, which can be misleading for tests that expect admin vs non-admin behavior.

If you need admin vs user separation, consider:

  • Injecting appropriate --as/--as-group flags based on asAdmin, or
  • Using different kubeconfigs for admin and non-admin modes (and selecting them here).

If you don’t need this distinction in this repo, it may be clearer to remove the asAdmin path entirely for now to avoid suggesting a capability that isn’t implemented.

Also applies to: 191-230

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 5c40b3d and d672efe.

⛔ Files ignored due to path filters (289)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/distribution/reference/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/CODE-OF-CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/GOVERNANCE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/distribution-logo.svg is excluded by !**/*.svg, !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/normalize.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/regexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emicklei/go-restful/v3/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emicklei/go-restful/v3/CHANGES.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emicklei/go-restful/v3/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emicklei/go-restful/v3/curly.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emicklei/go-restful/v3/custom_verb.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emicklei/go-restful/v3/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/.cliff.toml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/CONTRIBUTORS.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonpointer/pointer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonreference/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonreference/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonreference/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonreference/internal/normalize_url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonreference/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/.codecov.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/.mockery.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/cmd_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/sizeof.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/type_constraints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/convert_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/go.work is excluded by !**/*.work, !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/go.work.sum is excluded by !**/*.sum, !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/initialism_index.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/name_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/concat.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/loading.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/BENCHMARK.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/initialism_index.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_lexem.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_mangler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/pools.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/split.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/string_bytes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/name_lexem.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/net.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/net.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/split.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/collection_formats.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/crypto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/date.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/dict.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/functions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/network.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/numeric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/reflect.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/regex.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/merge.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/profile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/prune.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/compression.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/conn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/join.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/mask.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/mask_safe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/prepared.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/josharian/intern/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/josharian/intern/intern.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mailru/easyjson/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mailru/easyjson/buffer/pool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/bytestostr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/bytestostr_nounsafe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mailru/easyjson/jwriter/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/connection.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/handlers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/priority.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/dictionary.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/read.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/write.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/flowrate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/io.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/OWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/RELEASING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/config/deprecated.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/decorator_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/deprecated_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/formatter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/build/build_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/abort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/boostrap_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/bootstrap_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/compile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/test_suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/verify_version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/labels/labels_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/main.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/ginkgo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/import.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/unfocus/unfocus_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta_tracker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hashes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_cli_dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/counter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/failer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/focus.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/global/init.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/group.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/interrupt_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/node.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/ordering.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/client_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/server_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_reporter_manager.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/report_entry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/suite_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/testingtproxy/testing_t_proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/tree.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/deprecated_reporter.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (11)
  • Dockerfile (1 hunks)
  • Makefile (1 hunks)
  • go.mod (5 hunks)
  • manifests/0000_70_cluster-network-operator_01_pki_crd.yaml (1 hunks)
  • pkg/network/mtu.go (2 hunks)
  • pkg/network/openshift_sdn_test.go (0 hunks)
  • test/Makefile (1 hunks)
  • test/cmd/main.go (1 hunks)
  • test/e2e/cli.go (1 hunks)
  • test/e2e/cno.go (1 hunks)
  • test/e2e/util.go (1 hunks)
💤 Files with no reviewable changes (1)
  • pkg/network/openshift_sdn_test.go
🚧 Files skipped from review as they are similar to previous changes (3)
  • manifests/0000_70_cluster-network-operator_01_pki_crd.yaml
  • Dockerfile
  • pkg/network/mtu.go
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • test/cmd/main.go
  • test/e2e/util.go
  • test/e2e/cno.go
  • go.mod
  • test/e2e/cli.go
  • Makefile
  • test/Makefile
🧬 Code graph analysis (2)
test/e2e/util.go (1)
test/e2e/cli.go (1)
  • CLI (21-31)
test/e2e/cno.go (1)
test/e2e/cli.go (1)
  • NewCLIWithPodSecurityLevel (34-66)
🪛 checkmake (0.2.2)
Makefile

[warning] 50-50: Missing required phony target "test"

(minphony)

test/Makefile

[warning] 41-41: Missing required phony target "test"

(minphony)

🔇 Additional comments (4)
test/cmd/main.go (1)

1-54: OTE extension wiring looks consistent and discoverable

The registry/extension setup, disruptive suite definition (name/parent/qualifier/timeout), and Cobra wiring all look coherent with the new CNO disruptive test label in test/e2e/cno.go. Tests should be properly discoverable by the OTE flow, and failure paths (panic on spec-build error, exit 1 on command error) are reasonable for this binary.

go.mod (1)

11-190: Confirm dependency set matches target payload and OTE expectations

This go.mod introduces a large set of bumps (Kubernetes, OpenShift libraries, ginkgo/gomega, controller-runtime, etc.) plus a pinned openshift-tests-extension and an extensive replace block to the openshift/kubernetes staging tree. That pattern looks consistent with typical OpenShift wiring, but it’s easy for one module to drift from the payload or from what OTE expects.

Please double‑check that:

  • These versions (especially k8s.io/kubernetes, the staged k8s.io/* replaces, and github.com/openshift-eng/openshift-tests-extension) match the intended release/payload level, and
  • You’ve run go mod tidy and a representative test suite (unit + at least the new OTE flow) against this module graph.
Makefile (1)

49-53: E2E build target is fine; verify binary path matches Dockerfile expectations

build-e2e-tests cleanly delegates to $(MAKE) -C test build, which will drop the binary into test/$(BUILD_DIR) per test/Makefile. Just make sure the Dockerfile stage that gzips and copies cluster-network-operator-tests-ext is using the same directory (BUILD_DIR := bin in test/Makefile), otherwise the image build will fail when it can’t find the binary.

test/e2e/cno.go (1)

14-115: Disruptive CNO Day‑2 OVN subnet test looks sound and well‑scoped

The test wiring and flow look solid: it uses the baseline pod‑security CLI, requires 2 schedulable nodes, sets up two pods + a ClusterIP service, snapshots and defaults OVN join/transit subnets per IP family, applies stack‑specific patches, waits for OVN rollout, validates pod↔pod and pod↔service connectivity, and then defers restoration of the original config with an OVN state check. The g.It description includes [Suite:openshift/cluster-network-operator/disruptive][Disruptive], which aligns with the OTE qualifier in test/cmd/main.go, so the test should be discoverable by the configured suite.

@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Nov 25, 2025
Copy link

@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 (3)
test/e2e/cno.go (1)

18-18: Verify suite qualifier matches the test harness filter.

The past review noted a potential mismatch between this test's suite tag and the qualifier in test/cmd/main.go. Please confirm that [Suite:openshift/cluster-network-operator/disruptive] aligns with the extension's qualifier configuration, or the test won't be discovered.

#!/bin/bash
# Verify the qualifier patterns in the test harness match this test's suite tag
rg -n "Qualifiers|Suite:" test/cmd/main.go test/e2e/cno.go
test/e2e/cli.go (1)

61-66: Hook registration in constructor causes duplicate hooks per CLI instance.

Each call to NewCLIWithPodSecurityLevel registers new BeforeEach/AfterEach hooks. If multiple CLI instances are created across test files or within the same suite, hooks accumulate, leading to multiple namespace creations/deletions per test and potential resource conflicts.

Consider one of these approaches:

  1. Use a singleton pattern with sync.Once for hook registration
  2. Move hooks to a package-level var _ = g.BeforeEach(...) with explicit CLI binding
  3. Replace automatic hooks with explicit Setup()/Teardown() methods
+var setupOnce sync.Once
+var globalCLI *CLI
+
 func NewCLIWithPodSecurityLevel(baseName string, level admissionapi.Level) *CLI {
 	cli := &CLI{
 		// ... existing initialization ...
 	}
-
-	// Set up namespace creation and cleanup
-	g.BeforeEach(cli.setupNamespace)
-	g.AfterEach(cli.teardownNamespace)
+
+	setupOnce.Do(func() {
+		g.BeforeEach(cli.setupNamespace)
+		g.AfterEach(cli.teardownNamespace)
+	})

 	return cli
 }
test/e2e/util.go (1)

139-148: Rollout status condition can never succeed.

The condition strings.Contains(status, "rollout to finish") && strings.Contains(status, "successfully rolled out") requires both phrases in the same output, but oc rollout status never produces them together—"rollout to finish" appears only while waiting, "successfully rolled out" only upon completion. This will always timeout.

 	return wait.PollUntilContextTimeout(context.Background(), 10*time.Second, 2*time.Minute, true, func(ctx context.Context) (bool, error) {
 		status, err := oc.AsAdmin().WithoutNamespace().Run("rollout").Args("status", "-n", "openshift-ovn-kubernetes", "ds", "ovnkube-node", "--timeout", "5m").Output()
 		o.Expect(err).NotTo(o.HaveOccurred())
-		if strings.Contains(status, "rollout to finish") && strings.Contains(status, "successfully rolled out") {
-			e2e.Logf("ovnkube rollout was triggerred and rolled out successfully")
+		if strings.Contains(status, "successfully rolled out") {
+			e2e.Logf("ovnkube rollout was triggered and rolled out successfully")
 			return true, nil
 		}
-		e2e.Logf("ovnkube rollout trigger hasn't happened yet. Trying again")
+		e2e.Logf("ovnkube rollout in progress, status: %s", status)
 		return false, nil
 	})
🧹 Nitpick comments (6)
test/Makefile (1)

17-19: Consider using an actual version tag for versionFromGit.

versionFromGit is set to GIT_COMMIT (a short hash), which duplicates commitFromGit. Typically, this should be a semantic version or git tag. Consider:

 GIT_COMMIT := $(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown")
 BUILD_DATE := $(shell date -u +'%Y-%m-%dT%H:%M:%SZ')
+GIT_VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo "unknown")

 # Go build flags
 LDFLAGS := -X '$(GO_MODULE)/pkg/version.commitFromGit=$(GIT_COMMIT)' \
            -X '$(GO_MODULE)/pkg/version.buildDate=$(BUILD_DATE)' \
-           -X '$(GO_MODULE)/pkg/version.versionFromGit=$(GIT_COMMIT)'
+           -X '$(GO_MODULE)/pkg/version.versionFromGit=$(GIT_VERSION)'
test/cmd/main.go (1)

49-53: Simplify the error handling.

The anonymous function wrapper is unnecessary here:

-	if err := func() error {
-		return root.Execute()
-	}(); err != nil {
+	if err := root.Execute(); err != nil {
 		os.Exit(1)
 	}
test/e2e/cno.go (1)

14-16: Misplaced GinkgoRecover() call.

g.GinkgoRecover() is intended to recover from panics in goroutines within tests. Placing it at the top of Describe has no effect since Describe itself doesn't run inside a deferred context. If panic recovery is needed, it should be inside individual It blocks or goroutines spawned by tests.

 var _ = g.Describe("[sig-network] CNO", func() {
-	defer g.GinkgoRecover()
 	oc := NewCLIWithPodSecurityLevel("networking-cno", admissionapi.LevelBaseline)
test/e2e/util.go (2)

33-40: Use crypto/rand or seed math/rand for unique identifiers.

math/rand without explicit seeding produces deterministic sequences. In Go versions before 1.20, this could cause namespace/resource name collisions across test runs. Consider using crypto/rand for better randomness, or at minimum ensure the random source is seeded.

+import (
+	"crypto/rand"
+	"encoding/hex"
+)
+
 func getRandomString() string {
-	chars := "abcdefghijklmnopqrstuvwxyz0123456789"
-	buffer := make([]byte, 8)
-	for index := range buffer {
-		buffer[index] = chars[rand.Intn(len(chars))]
-	}
-	return string(buffer)
+	buffer := make([]byte, 4)
+	_, _ = rand.Read(buffer)
+	return hex.EncodeToString(buffer)
 }

375-414: Consider using encoding/json for safer JSON construction.

Building JSON via fmt.Sprintf with optional fields can be fragile. If field ordering changes or new optional fields are added, the string interpolation approach risks producing malformed JSON. Using encoding/json.Marshal with a struct would be more maintainable.

This is a minor concern since the current implementation works. Consider refactoring if more optional fields are needed in the future.

test/e2e/cli.go (1)

100-119: Clear namespacesToDelete after cleanup to prevent duplicate deletion attempts.

The slice isn't cleared after namespace deletion. If teardownNamespace runs multiple times (due to hook registration issues or test retries), it will attempt to delete already-deleted namespaces, causing unnecessary error logs.

 func (c *CLI) teardownNamespace() {
 	if len(c.namespacesToDelete) == 0 {
 		return
 	}
+	defer func() { c.namespacesToDelete = nil }()

 	// Only delete if DeleteNamespace is enabled
 	if !e2e.TestContext.DeleteNamespace {
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between d672efe and 63c5e2e.

⛔ Files ignored due to path filters (191)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/distribution/reference/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/CODE-OF-CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/GOVERNANCE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/distribution-logo.svg is excluded by !**/*.svg, !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/normalize.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/regexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/cmd_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/sizeof.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/type_constraints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/name_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/concat.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/loading.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/initialism_index.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_lexem.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_mangler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/pools.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/split.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/string_bytes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/net.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/collection_formats.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/crypto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/date.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/dict.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/functions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/network.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/numeric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/reflect.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/regex.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/compression.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/conn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/join.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/mask.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/mask_safe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/prepared.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/connection.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/handlers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/priority.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/dictionary.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/read.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/write.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/flowrate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/io.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/OWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/RELEASING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/config/deprecated.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/decorator_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/deprecated_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/formatter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/build/build_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/abort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/boostrap_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/bootstrap_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/compile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/test_suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/verify_version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/labels/labels_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/main.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/ginkgo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/import.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/unfocus/unfocus_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta_tracker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hashes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_cli_dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/counter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/failer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/focus.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/global/init.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/group.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/interrupt_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/node.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/ordering.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_win.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (9)
  • Dockerfile (1 hunks)
  • Makefile (1 hunks)
  • go.mod (4 hunks)
  • pkg/network/mtu.go (2 hunks)
  • test/Makefile (1 hunks)
  • test/cmd/main.go (1 hunks)
  • test/e2e/cli.go (1 hunks)
  • test/e2e/cno.go (1 hunks)
  • test/e2e/util.go (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • Dockerfile
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • test/cmd/main.go
  • test/e2e/cno.go
  • test/e2e/util.go
  • test/e2e/cli.go
  • go.mod
  • pkg/network/mtu.go
  • Makefile
  • test/Makefile
🪛 checkmake (0.2.2)
Makefile

[warning] 50-50: Missing required phony target "test"

(minphony)

test/Makefile

[warning] 41-41: Missing required phony target "test"

(minphony)

🔇 Additional comments (8)
Makefile (1)

49-53: LGTM!

The new build-e2e-tests target is properly declared as .PHONY and correctly delegates to the test subdirectory Makefile using $(MAKE) -C.

pkg/network/mtu.go (1)

35-48: LGTM!

The updated default-route detection correctly handles the API change between netlink v1.1.0 (where Dst == nil indicates default) and v1.3.1+ (where default routes have explicit 0.0.0.0/0 or ::/0). The implementation maintains backward compatibility while supporting both representations.

go.mod (2)

193-194: Verify the OpenShift Ginkgo fork is the intended replacement.

The replace directive points to github.com/openshift/onsi-ginkgo/v2 at a specific commit from December 2024. Ensure this fork is actively maintained and contains necessary OpenShift-specific customizations. If this is standard practice for OpenShift projects, this is acceptable.


18-18: Netlink upgrade aligns with MTU detection changes.

The bump from v1.1.0 to v1.3.1 is required to support the updated default-route detection logic in pkg/network/mtu.go.

test/cmd/main.go (1)

18-42: LGTM!

The test extension setup follows the OTE framework patterns correctly. The 120-minute timeout for the disruptive suite is appropriate for network configuration tests that involve rollouts and connectivity verification.

test/e2e/cno.go (1)

87-109: LGTM!

The switch-based handling for different IP stack types is well-structured. The deferred cleanup correctly restores original configuration per stack type, and the connectivity checks after rollout verification ensure the cluster is healthy post-change.

test/e2e/util.go (1)

319-373: LGTM!

The pod creation helper is well-structured with proper temporary file cleanup, retry logic for transient failures, and explicit wait for pod readiness. Using a sha256 digest for the image ensures reproducibility.

test/e2e/cli.go (1)

191-230: LGTM!

The command execution implementation properly handles kubeconfig injection, namespace scoping, and captures both stdout and stderr in error messages for debugging.

Copy link

@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

♻️ Duplicate comments (2)
test/e2e/util.go (1)

139-148: Rollout status polling condition is still incorrect.

The condition on line 142 checks for both "rollout to finish" AND "successfully rolled out" in the same output. However, oc rollout status never prints both strings simultaneously—"rollout to finish" appears only while waiting, and "successfully rolled out" appears only upon completion. This means the condition can never evaluate to true, causing checkOVNKState to always time out.

Apply this diff to fix the logic:

-		if strings.Contains(status, "rollout to finish") && strings.Contains(status, "successfully rolled out") {
-			e2e.Logf("ovnkube rollout was triggerred and rolled out successfully")
+		if strings.Contains(status, "successfully rolled out") {
+			e2e.Logf("ovnkube rollout was triggered and rolled out successfully")
 			return true, nil
 		}
-		e2e.Logf("ovnkube rollout trigger hasn't happened yet. Trying again")
+		e2e.Logf("ovnkube rollout not yet complete. Trying again")
 		return false, nil
test/e2e/cli.go (1)

61-63: Hook registration in constructor causes accumulation across CLI instances.

Registering g.BeforeEach and g.AfterEach inside NewCLIWithPodSecurityLevel means each CLI instance adds new hooks to the Ginkgo suite. If tests create multiple CLI instances, hooks accumulate, causing multiple namespace creations/deletions per test and potential resource conflicts.

Consider moving hook registration to a package-level init() with a singleton pattern, or document that only one CLI instance should be created per test suite:

+var cliInstance *CLI
+var cliOnce sync.Once
+
 func NewCLIWithPodSecurityLevel(baseName string, level admissionapi.Level) *CLI {
+	cliOnce.Do(func() {
 		cli := &CLI{
 			// ... existing initialization
 		}
-	g.BeforeEach(cli.setupNamespace)
-	g.AfterEach(cli.teardownNamespace)
+		g.BeforeEach(cli.setupNamespace)
+		g.AfterEach(cli.teardownNamespace)
+		cliInstance = cli
+	})
+	return cliInstance
-	return cli
 }
🧹 Nitpick comments (1)
test/Makefile (1)

41-44: Add missing standard "test" phony target.

The Makefile is missing a test target, which is a standard convention. While this Makefile focuses on building the binary, adding a test target (even if it's a no-op or delegates to a test command) aligns with Makefile best practices and prevents CI/CD systems from failing when they invoke make test.

 # Clean build artifacts
 .PHONY: clean
 clean:
 	@echo "Cleaning build artifacts..."
 	rm -rf $(BUILD_DIR)
+
+# Test target (placeholder for standard convention)
+.PHONY: test
+test:
+	@echo "Running tests for E2E test binary..."
+	# Add test command here if needed
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 63c5e2e and 7197594.

⛔ Files ignored due to path filters (290)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/distribution/reference/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/CODE-OF-CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/GOVERNANCE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/distribution-logo.svg is excluded by !**/*.svg, !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/normalize.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/regexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/cmd_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/sizeof.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/type_constraints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/name_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/concat.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/loading.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/initialism_index.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_lexem.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_mangler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/pools.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/split.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/string_bytes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/net.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/collection_formats.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/crypto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/date.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/dict.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/functions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/network.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/numeric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/reflect.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/regex.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/compression.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/conn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/join.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/mask.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/mask_safe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/prepared.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/connection.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/handlers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/priority.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/dictionary.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/read.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/write.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/flowrate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/io.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/OWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/RELEASING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/config/deprecated.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/decorator_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/deprecated_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/formatter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/build/build_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/abort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/boostrap_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/bootstrap_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/compile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/test_suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/verify_version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/labels/labels_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/main.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/ginkgo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/import.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/unfocus/unfocus_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta_tracker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hashes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_cli_dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/counter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/failer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/focus.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/global/init.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/group.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/interrupt_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/node.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/ordering.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/client_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/server_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_reporter_manager.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/report_entry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/suite_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/testingtproxy/testing_t_proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/tree.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/deprecated_reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/json_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/teamcity_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporting_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/table_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/code_location.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/deprecated_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/deprecation_support.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/enum_support.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/file_filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/flags.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/label_filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/report_entry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/types_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/gcustom/make_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/gomega_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/.mailmap is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/.pullapprove.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/LICENSE.docs is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/algorithm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/digest.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/digester.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/verifiers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdimages/cmdimages.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdinfo/info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdlist/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdrun/runsuite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdrun/runtest.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdupdate/update.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/dbtime/time.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extension.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/environment.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/result.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/result_writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/task.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/component.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/concurrency.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/environment.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/names.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/output.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/logging.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/parallel.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/junit/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/byte.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/empty.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int32.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/set.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/version/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift/api/config/v1/types_infrastructure.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (9)
  • Dockerfile (1 hunks)
  • Makefile (1 hunks)
  • go.mod (4 hunks)
  • pkg/network/mtu.go (2 hunks)
  • test/Makefile (1 hunks)
  • test/cmd/main.go (1 hunks)
  • test/e2e/cli.go (1 hunks)
  • test/e2e/cno.go (1 hunks)
  • test/e2e/util.go (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • test/e2e/cno.go
  • pkg/network/mtu.go
  • test/cmd/main.go
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • Dockerfile
  • test/e2e/util.go
  • test/e2e/cli.go
  • go.mod
  • Makefile
  • test/Makefile
🧬 Code graph analysis (1)
test/e2e/util.go (1)
test/e2e/cli.go (1)
  • CLI (21-31)
🪛 checkmake (0.2.2)
Makefile

[warning] 50-50: Missing required phony target "test"

(minphony)

test/Makefile

[warning] 41-41: Missing required phony target "test"

(minphony)

🔇 Additional comments (8)
go.mod (2)

193-195: Verify the Ginkgo fork replacement is intentional.

The replacement of github.com/onsi/ginkgo/v2 with OpenShift's fork github.com/openshift/onsi-ginkgo/v2 may have implications for test behavior and compatibility. The comment mentions this is temporary for compatibility.

Ensure this fork is actively maintained and document any behavioral differences, or track a follow-up to remove this replacement when upstream compatibility is restored.


196-226: Replace directives for OpenShift/Kubernetes staging paths look correct.

The extensive replace directives redirect k8s.io modules to OpenShift's kubernetes fork staging paths with consistent pseudo-versioning (v0.0.0-20251017123720-96593f323733). This is a standard pattern for OpenShift operators that need to align with OpenShift's Kubernetes distribution.

test/e2e/util.go (2)

319-373: Pod creation utility looks good with proper cleanup and retry logic.

The createPingPodOnNode function correctly:

  • Uses deferred cleanup for temporary files
  • Implements retry logic with PollUntilContextTimeout
  • Waits for pod readiness before returning

375-440: Service creation utility is well-structured.

The createGenericService function handles optional fields cleanly and includes proper retry logic and temp file cleanup.

test/e2e/cli.go (1)

191-230: Command execution implementation is solid.

The output() method correctly:

  • Conditionally adds kubeconfig and namespace flags
  • Logs executed commands for debugging
  • Captures both stdout and stderr
  • Returns informative error messages including command output
Dockerfile (1)

4-4: E2E test binary is now included in the operator image.

The test binary (cluster-network-operator-tests-ext.gz) is built and packaged into the final operator image. This is a common pattern for OpenShift operators using the OTE (OpenShift Tests Extension) framework, allowing the test binary to be extracted and run against the cluster.

Verify this aligns with the OTE framework's expected consumption pattern and that the gzipped binary size doesn't significantly impact image size.

Also applies to: 10-10

Makefile (1)

49-53: New build target for E2E tests looks good.

The build-e2e-tests target correctly:

  • Is declared as .PHONY since it doesn't produce a file with that name
  • Delegates to test/Makefile using $(MAKE) -C test build
  • Provides informative echo output

The static analysis warning about "missing phony target test" is a false positive—test here refers to the directory, not a make target.

test/Makefile (1)

17-19: Version package variables are properly defined.

Verification confirms that pkg/version/version.go defines all three variables referenced in the LDFLAGS: commitFromGit, buildDate, and versionFromGit. These are declared as package-level variables set via -ldflags during build and are used in both the Get() function and Prometheus metrics. No issues with undefined variables.

Comment on lines +163 to +167
// Args adds arguments to the command
func (c *CLI) Args(args ...string) *CLI {
c.args = append(c.args, args...)
return c
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Args method mutates the receiver instead of a copy.

Unlike Run() which creates a copy before modifying, Args() appends directly to c.args. If Args() is called multiple times on the same CLI instance (e.g., reusing a base command), arguments accumulate unexpectedly.

 func (c *CLI) Args(args ...string) *CLI {
-	c.args = append(c.args, args...)
-	return c
+	nc := *c
+	nc.args = append(nc.args, args...)
+	return &nc
 }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
// Args adds arguments to the command
func (c *CLI) Args(args ...string) *CLI {
c.args = append(c.args, args...)
return c
}
// Args adds arguments to the command
func (c *CLI) Args(args ...string) *CLI {
nc := *c
nc.args = append(nc.args, args...)
return &nc
}
🤖 Prompt for AI Agents
In test/e2e/cli.go around lines 163 to 167, the Args method currently mutates
the receiver by appending into c.args; change it to behave like Run() by
creating a copy of the CLI (e.g., cp := *c), append the provided args to
cp.args, and return &cp so successive calls don't accumulate on the original
instance.

Comment on lines +62 to +66
func checkPodReady(oc *CLI, namespace string, podName string) (bool, error) {
podOutPut, err := getPodStatus(oc, namespace, podName)
status := []string{"Running", "Ready", "Complete", "Succeeded"}
return contains(status, podOutPut), err
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

checkPodReady includes invalid pod phase value.

The status list includes "Ready", but pod phases are only Running, Pending, Succeeded, Failed, and Unknown. "Ready" is a pod condition type, not a phase. This check will never match "Ready" from getPodStatus which returns .status.phase.

 func checkPodReady(oc *CLI, namespace string, podName string) (bool, error) {
 	podOutPut, err := getPodStatus(oc, namespace, podName)
-	status := []string{"Running", "Ready", "Complete", "Succeeded"}
+	status := []string{"Running", "Succeeded"}
 	return contains(status, podOutPut), err
 }

Note: "Complete" is also not a valid phase—use "Succeeded" for completed pods.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
func checkPodReady(oc *CLI, namespace string, podName string) (bool, error) {
podOutPut, err := getPodStatus(oc, namespace, podName)
status := []string{"Running", "Ready", "Complete", "Succeeded"}
return contains(status, podOutPut), err
}
func checkPodReady(oc *CLI, namespace string, podName string) (bool, error) {
podOutPut, err := getPodStatus(oc, namespace, podName)
status := []string{"Running", "Succeeded"}
return contains(status, podOutPut), err
}
🤖 Prompt for AI Agents
In test/e2e/util.go around lines 62 to 66, the status list used to check pod
phase is incorrect: it includes "Ready" and "Complete" which are not valid pod
phases (Ready is a condition and Complete is not a phase). Replace the status
slice with the valid Kubernetes pod phases (e.g., "Running", "Pending",
"Succeeded", "Failed", "Unknown"), and ensure any checks for completed pods use
"Succeeded" rather than "Complete".

Copy link

@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 (3)
test/e2e/cli.go (1)

33-120: Avoid registering Ginkgo hooks per-CLI instance and clear namespacesToDelete after use

NewCLIWithPodSecurityLevel calls:

g.BeforeEach(cli.setupNamespace)
g.AfterEach(cli.teardownNamespace)

every time it’s invoked. If tests construct more than one CLI (or reconstruct it across contexts), each It will run multiple setupNamespace/teardownNamespace handlers, creating several namespaces per test and re-running cleanup, which is hard to reason about and can lead to flaky behavior. In addition, teardownNamespace iterates over c.namespacesToDelete but never clears it, so later tests repeatedly attempt to delete all previously created namespaces, increasing work and log noise.

Consider:

  • Registering the hooks once at package level (e.g. using a sync.Once or a var _ = g.BeforeEach(...) pattern that uses a shared CLI), or clearly documenting/enforcing a single-CLI construction pattern, and
  • Resetting namespacesToDelete after cleanup.

A minimal fix for the accumulation would be:

 func (c *CLI) teardownNamespace() {
@@
     for _, ns := range c.namespacesToDelete {
         e2e.Logf("Deleting namespace: %s", ns)
         _, err := c.asAdminInternal().withoutNamespaceInternal().run("delete", "namespace", ns, "--wait=false").output()
         if err != nil {
             e2e.Logf("Warning: failed to delete namespace %s: %v", ns, err)
         }
     }
+    c.namespacesToDelete = nil
 }

and then following up with a one-time hook registration strategy.

test/e2e/util.go (2)

128-148: checkOVNKState rollout predicate can never succeed, causing permanent timeouts

Within checkOVNKState, the poll condition is:

if strings.Contains(status, "rollout to finish") && strings.Contains(status, "successfully rolled out") {

oc rollout status ds/ovnkube-node prints “rollout to finish …” while waiting and “successfully rolled out” only once it completes, never both in the same message. This means the wait loop will always time out and checkOVNKState will report failure even when OVN is healthy.

Recommend treating “successfully rolled out” alone as success and logging intermediate states, e.g.:

-       if strings.Contains(status, "rollout to finish") && strings.Contains(status, "successfully rolled out") {
-           e2e.Logf("ovnkube rollout was triggerred and rolled out successfully")
-           return true, nil
-       }
-       e2e.Logf("ovnkube rollout trigger hasn't happened yet. Trying again")
-       return false, nil
+       if strings.Contains(status, "successfully rolled out") {
+           e2e.Logf("ovnkube rollout was triggered and rolled out successfully")
+           return true, nil
+       }
+       if strings.Contains(status, "rollout to finish") {
+           e2e.Logf("ovnkube rollout trigger hasn't happened yet. Trying again")
+           return false, nil
+       }
+       e2e.Logf("ovnkube rollout status unexpected (%s); retrying...", status)
+       return false, nil

so the poll can actually converge.


206-218: NodePort handling in curlPod2SvcPass/getSvcIP builds an invalid curl target

For NodePort services, getSvcIP returns the nodePort as the second value:

return svcIP, nodePort

but curlPod2SvcPass unconditionally treats both return values as IP/host strings:

svcIP1, svcIP2 := getSvcIP(...)
...
net.JoinHostPort(svcIP2, strconv.Itoa(svcPort))

When svctype == "NodePort", svcIP2 is something like "30080", so curl targets a host literally named 30080 instead of nodeIP:nodePort. That path can’t work, and NodePort connectivity is effectively untested.

Options:

  • Change getSvcIP to return (primarySvcIP, secondarySvcIP, nodePort) and have curlPod2SvcPass detect NodePort and build nodeIP:nodePort using a real node IP, or
  • Temporarily drop the NodePort branch and document that curlPod2SvcPass only supports ClusterIP/LoadBalancer until a correct NodePort implementation is added.

In any case, avoid passing a bare numeric nodePort as the “host” to net.JoinHostPort.

Also applies to: 224-242

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 7197594 and 3d6bf6e.

⛔ Files ignored due to path filters (291)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/distribution/reference/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/CODE-OF-CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/GOVERNANCE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/distribution-logo.svg is excluded by !**/*.svg, !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/normalize.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/regexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/cmd_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/sizeof.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/type_constraints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/name_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/concat.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/loading.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/initialism_index.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_lexem.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_mangler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/pools.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/split.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/string_bytes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/net.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/collection_formats.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/crypto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/date.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/dict.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/functions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/network.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/numeric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/reflect.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/regex.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/compression.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/conn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/join.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/mask.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/mask_safe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/prepared.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/connection.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/handlers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/priority.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/dictionary.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/read.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/write.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/flowrate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/io.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/OWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/RELEASING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/config/deprecated.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/decorator_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/deprecated_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/formatter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/build/build_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/abort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/boostrap_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/bootstrap_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/compile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/test_suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/verify_version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/labels/labels_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/main.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/ginkgo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/import.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/unfocus/unfocus_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta_tracker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hashes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_cli_dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/counter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/failer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/focus.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/global/init.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/group.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/interrupt_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/node.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/ordering.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/client_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/server_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_reporter_manager.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/report_entry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/suite_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/testingtproxy/testing_t_proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/tree.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/deprecated_reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/json_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/teamcity_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporting_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/table_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/code_location.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/deprecated_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/deprecation_support.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/enum_support.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/file_filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/flags.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/label_filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/report_entry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/types_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/gcustom/make_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/gomega_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/.mailmap is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/.pullapprove.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/LICENSE.docs is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/algorithm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/digest.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/digester.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/verifiers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdimages/cmdimages.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdinfo/info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdlist/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdrun/runsuite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdrun/runtest.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdupdate/update.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/dbtime/time.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extension.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/environment.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/result.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/result_writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/task.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/component.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/concurrency.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/environment.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/names.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/output.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/logging.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/parallel.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/junit/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/byte.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/empty.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int32.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/set.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/version/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift/api/config/v1/types_infrastructure.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (9)
  • Dockerfile (1 hunks)
  • Makefile (1 hunks)
  • go.mod (4 hunks)
  • pkg/network/mtu.go (2 hunks)
  • test/Makefile (1 hunks)
  • test/cmd/main.go (1 hunks)
  • test/e2e/cli.go (1 hunks)
  • test/e2e/cno.go (1 hunks)
  • test/e2e/util.go (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • test/e2e/cno.go
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • Dockerfile
  • pkg/network/mtu.go
  • test/cmd/main.go
  • test/e2e/cli.go
  • go.mod
  • test/e2e/util.go
  • Makefile
  • test/Makefile
🪛 checkmake (0.2.2)
Makefile

[warning] 50-50: Missing required phony target "test"

(minphony)

test/Makefile

[warning] 41-41: Missing required phony target "test"

(minphony)

🔇 Additional comments (5)
pkg/network/mtu.go (1)

35-47: Default-route detection update looks correct and backward-compatible

The explicit isDefault handling for both Dst == nil and 0.0.0.0/0 or ::/0 matches the netlink v1.1.0 vs v1.3.1 semantics while preserving the existing “min MTU over default routes” behavior. No changes requested.

Dockerfile (1)

4-5: Test extension binary build and packaging are wired correctly

Chaining hack/build-go.sh with make build-e2e-tests and then gzipping test/bin/cluster-network-operator-tests-ext, and copying the resulting .gz into /usr/bin/cluster-network-operator-tests-ext.gz, aligns with the new Makefile and test/Makefile. It makes the E2E test binary a first-class build artifact, which is appropriate here.

Also applies to: 10-10

test/Makefile (1)

1-45: E2E test Makefile integrates cleanly with version metadata and Docker build

The build/build-linux targets correctly compile cmd/main.go into bin/cluster-network-operator-tests-ext with the expected pkg/version ldflags, and match the top-level build-e2e-tests and Dockerfile expectations. No changes requested.

Makefile (1)

49-54: build-e2e-tests target cleanly delegates to the test Makefile

Delegating to $(MAKE) -C test build keeps the E2E test binary build logic local to test/Makefile while exposing a single top-level target for Docker and CI use. Looks good as-is.

go.mod (1)

11-30: Dependency updates verified—go.sum and vendor are in sync

Verification confirms that go mod tidy and go mod vendor completed successfully with no unintended changes. The dependency bumps (gomega, netlink, golang.org/x/*, OpenShift/Kubernetes modules) and temporary replace block are correctly resolved.

Copy link

@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: 0

🧹 Nitpick comments (1)
go.mod (1)

194-228: Track removal of the large temporary replace block.

The replace block redirects 33 k8s.io/* packages to a single OpenShift/Kubernetes snapshot commit. While this is typical for OpenShift repositories, the "temporary" nature combined with the large scope increases the risk of this being forgotten during future dependency updates.

Consider creating a tracking issue or TODO comment linking to the work item for removing these replacements, so the team has visibility when the next package bump occurs.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 3d6bf6e and edfed77.

⛔ Files ignored due to path filters (291)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/distribution/reference/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/CODE-OF-CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/GOVERNANCE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/distribution-logo.svg is excluded by !**/*.svg, !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/normalize.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/regexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/cmd_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/sizeof.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/type_constraints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/name_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/concat.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/loading.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/initialism_index.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_lexem.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_mangler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/pools.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/split.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/string_bytes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/net.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/collection_formats.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/crypto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/date.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/dict.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/functions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/network.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/numeric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/reflect.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/regex.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/compression.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/conn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/join.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/mask.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/mask_safe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/prepared.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/connection.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/handlers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/priority.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/dictionary.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/read.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/write.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/flowrate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/io.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/OWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/RELEASING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/config/deprecated.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/decorator_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/deprecated_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/formatter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/build/build_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/abort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/boostrap_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/bootstrap_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/compile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/test_suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/verify_version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/labels/labels_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/main.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/ginkgo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/import.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/unfocus/unfocus_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta_tracker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hashes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_cli_dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/counter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/failer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/focus.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/global/init.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/group.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/interrupt_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/node.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/ordering.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/client_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/server_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_reporter_manager.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/report_entry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/suite_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/testingtproxy/testing_t_proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/tree.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/deprecated_reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/json_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/teamcity_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporting_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/table_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/code_location.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/deprecated_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/deprecation_support.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/enum_support.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/file_filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/flags.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/label_filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/report_entry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/types_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/gcustom/make_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/gomega_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/.mailmap is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/.pullapprove.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/LICENSE.docs is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/algorithm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/digest.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/digester.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/verifiers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdimages/cmdimages.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdinfo/info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdlist/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdrun/runsuite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdrun/runtest.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdupdate/update.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/dbtime/time.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extension.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/environment.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/result.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/result_writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/task.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/component.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/concurrency.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/environment.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/names.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/output.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/logging.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/parallel.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/junit/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/byte.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/empty.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int32.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/set.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/version/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift/api/config/v1/types_infrastructure.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (2)
  • go.mod (4 hunks)
  • pkg/network/mtu.go (2 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • pkg/network/mtu.go
  • go.mod
🔇 Additional comments (2)
go.mod (1)

20-20: LGTM: netlink bump aligns with mtu.go changes.

The netlink upgrade from v1.1.0 to v1.3.1 is consistent with the default-route detection changes in pkg/network/mtu.go, which handles the API behavior difference between these versions.

pkg/network/mtu.go (1)

35-49: Update the version documentation for the netlink behavior change.

The behavior change reference appears to relate to commit acdc658 that added "default" dst handling, but evidence suggests this change predates or differs from the stated v1.3.1+ attribution. The actual breaking changes in the API have been documented since v1.2.0, not specifically v1.3.1.

The logic correctly handles both nil and 0.0.0.0/0 representations, but the comment claiming this behavior started in "v1.3.1+" should be verified or adjusted to reflect when netlink actually introduced this change. Consider revising the comment to reference the actual version where this behavior was introduced, or generalize it to avoid version-specific claims without definitive documentation.

…te repo

Signed-off-by: zhaozhanqi <zzhao@redhat.com>
This updates vendor dependencies required for the OpenShift Tests Extension
framework, including ginkgo v2, gomega, netlink v1.3.1, and other testing
dependencies.

Signed-off-by: zhaozhanqi <zzhao@redhat.com>
The vendor dependency update in the previous commit pulled in netlink
v1.3.1 which changed how default routes are represented. In v1.1.0,
default routes had route.Dst == nil, but in v1.3.1+, they have
route.Dst set to 0.0.0.0/0 (IPv4) or ::/0 (IPv6).

The existing code checked "if route.Dst != nil { continue }" to skip
non-default routes, which incorrectly skipped default routes with the
new netlink version, causing "unable to determine MTU" errors.

This fix updates the default route detection logic to handle both:
- Old behavior (v1.1.0): route.Dst == nil
- New behavior (v1.3.1+): route.Dst == 0.0.0.0/0 or ::/0

The fix checks if Dst is nil OR if it represents a default route by
verifying the IP is all zeros and the prefix length is 0.

Signed-off-by: zhaozhanqi <zzhao@redhat.com>
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 25, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

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

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

Copy link

@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: 0

♻️ Duplicate comments (4)
test/e2e/cli.go (2)

62-63: Hook registration in constructor may cause multiple registrations.

Registering BeforeEach and AfterEach hooks during CLI construction means that each CLI instance created across different test specs will add new hooks to the Ginkgo suite. This can lead to multiple namespace creations and deletions per test, causing resource conflicts and flaky tests.

Consider one of these approaches:

  • Move hook registration to a package-level init() or var _ = ginkgo.BeforeSuite() with a singleton pattern.
  • Document that only one CLI instance should be created per test file.
  • Remove hooks and require explicit Setup()/Teardown() calls in each test.

163-167: Args method mutates the receiver instead of a copy.

Unlike Run() which creates a copy before modifying, Args() appends directly to c.args. If Args() is called multiple times on the same CLI instance (e.g., reusing a base command), arguments accumulate unexpectedly.

 func (c *CLI) Args(args ...string) *CLI {
-	c.args = append(c.args, args...)
-	return c
+	nc := *c
+	nc.args = append(nc.args[:len(nc.args):len(nc.args)], args...)
+	return &nc
 }

Note: Using c.args[:len(c.args):len(c.args)] prevents the copy from sharing the underlying array with the original.

test/e2e/util.go (2)

62-66: checkPodReady includes invalid pod phase values.

The status list includes "Ready" and "Complete", but pod phases are only Running, Pending, Succeeded, Failed, and Unknown. "Ready" is a pod condition type, not a phase, and "Complete" is not a valid value at all.

 func checkPodReady(oc *CLI, namespace string, podName string) (bool, error) {
 	podOutPut, err := getPodStatus(oc, namespace, podName)
-	status := []string{"Running", "Ready", "Complete", "Succeeded"}
+	status := []string{"Running", "Succeeded"}
 	return contains(status, podOutPut), err
 }

139-148: Rollout status polling condition is incorrect.

oc rollout status never prints both "rollout to finish" and "successfully rolled out" in the same message. The former appears while waiting, the latter only once complete. The && condition will never be true, causing tests to time out.

 	return wait.PollUntilContextTimeout(context.Background(), 10*time.Second, 2*time.Minute, true, func(ctx context.Context) (bool, error) {
 		status, err := oc.AsAdmin().WithoutNamespace().Run("rollout").Args("status", "-n", "openshift-ovn-kubernetes", "ds", "ovnkube-node", "--timeout", "5m").Output()
 		o.Expect(err).NotTo(o.HaveOccurred())
-		if strings.Contains(status, "rollout to finish") && strings.Contains(status, "successfully rolled out") {
-			e2e.Logf("ovnkube rollout was triggerred and rolled out successfully")
+		if strings.Contains(status, "successfully rolled out") {
+			e2e.Logf("ovnkube rollout was triggered and rolled out successfully")
 			return true, nil
 		}
-		e2e.Logf("ovnkube rollout trigger hasn't happened yet. Trying again")
+		e2e.Logf("ovnkube rollout in progress, status: %s", status)
 		return false, nil
 	})
🧹 Nitpick comments (4)
test/cmd/main.go (2)

36-39: Minor: Simplify error formatting.

err.Error() returns a string, so using %+v on it loses the stack trace that %+v would provide on the original error. Use %+v directly on err to preserve stack information.

 	specs, err := g.BuildExtensionTestSpecsFromOpenShiftGinkgoSuite()
 	if err != nil {
-		panic(fmt.Sprintf("couldn't build extension test specs from ginkgo: %+v", err.Error()))
+		panic(fmt.Sprintf("couldn't build extension test specs from ginkgo: %+v", err))
 	}

49-53: Minor: Simplify IIFE pattern.

The immediately-invoked function expression is unnecessary here.

-	if err := func() error {
-		return root.Execute()
-	}(); err != nil {
+	if err := root.Execute(); err != nil {
 		os.Exit(1)
 	}
test/e2e/util.go (1)

346-356: Temporary file creation uses predictable path in shared /tmp.

Using /tmp/pod-<name>-<random>.json could lead to conflicts in parallel test runs or security issues (symlink attacks). Consider using os.CreateTemp which creates files atomically with proper permissions.

-	tmpFile := fmt.Sprintf("/tmp/pod-%s-%s.json", podName, getRandomString())
-	err := os.WriteFile(tmpFile, []byte(podJSON), 0644)
+	tmpFile, err := os.CreateTemp("", fmt.Sprintf("pod-%s-*.json", podName))
+	o.Expect(err).NotTo(o.HaveOccurred())
+	tmpFileName := tmpFile.Name()
+	_, err = tmpFile.WriteString(podJSON)
 	o.Expect(err).NotTo(o.HaveOccurred())
+	err = tmpFile.Close()
+	o.Expect(err).NotTo(o.HaveOccurred())

 	// Clean up the temporary file after use
 	defer func() {
-		if err := os.Remove(tmpFile); err != nil {
-			e2e.Logf("warning: failed to remove temporary file %s: %v", tmpFile, err)
+		if err := os.Remove(tmpFileName); err != nil {
+			e2e.Logf("warning: failed to remove temporary file %s: %v", tmpFileName, err)
 		}
 	}()

The same pattern applies to createGenericService at lines 417-426.

go.mod (1)

193-228: Add a TODO comment with a specific version target for the replace block removal.

The verification confirms there is no tracking mechanism or TODO comment for removing the replace directives. The current comment "remove during next package bump" is too vague. Add a more specific TODO with a version or Kubernetes release target to ensure this temporary block gets addressed in future maintenance.

Suggested update at line 193:

// TODO: Remove this replace block when upgrading to Kubernetes v1.31+ or once OpenShift kubernetes fork merges upstream changes
replace (
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between edfed77 and f501992.

⛔ Files ignored due to path filters (291)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/distribution/reference/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/CODE-OF-CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/GOVERNANCE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/distribution-logo.svg is excluded by !**/*.svg, !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/normalize.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/regexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/distribution/reference/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/cmd_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/sizeof.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/conv/type_constraints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/name_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/concat.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/loading.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/loading/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/initialism_index.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_lexem.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_mangler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/pools.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/split.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/string_bytes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/mangling/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/netutils/net.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/collection_formats.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/ordered_map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/crypto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/date.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/dict.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/functions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/network.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/numeric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/reflect.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/regex.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/compression.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/conn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/join.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/mask.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/mask_safe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/prepared.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/gorilla/websocket/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/connection.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/handlers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/priority.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/dictionary.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/read.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/write.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/flowrate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/io.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mxk/go-flowrate/flowrate/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/OWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/RELEASING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/config/deprecated.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/decorator_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/deprecated_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/formatter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/build/build_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/abort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/boostrap_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/bootstrap_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/compile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/test_suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/verify_version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/labels/labels_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/main.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/ginkgo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/import.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/unfocus/unfocus_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta_tracker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hashes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_cli_dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/counter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/failer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/focus.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/global/init.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/group.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/interrupt_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/node.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/ordering.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/client_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/server_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_reporter_manager.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/report_entry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/suite_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/testingtproxy/testing_t_proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/tree.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/deprecated_reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/json_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/teamcity_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporting_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/table_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/code_location.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/deprecated_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/deprecation_support.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/enum_support.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/file_filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/flags.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/label_filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/report_entry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/types_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/gcustom/make_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/gomega_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/.mailmap is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/.pullapprove.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/LICENSE.docs is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/MAINTAINERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/algorithm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/digest.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/digester.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/go-digest/verifiers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdimages/cmdimages.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdinfo/info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdlist/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdrun/runsuite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdrun/runtest.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdupdate/update.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/dbtime/time.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extension.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/environment.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/result.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/result_writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/task.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/component.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/concurrency.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/environment.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/names.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/output.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/logging.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/parallel.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/junit/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/byte.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/empty.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int32.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/set.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/version/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift/api/config/v1/types_infrastructure.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (9)
  • Dockerfile (1 hunks)
  • Makefile (1 hunks)
  • go.mod (4 hunks)
  • pkg/network/mtu.go (2 hunks)
  • test/Makefile (1 hunks)
  • test/cmd/main.go (1 hunks)
  • test/e2e/cli.go (1 hunks)
  • test/e2e/cno.go (1 hunks)
  • test/e2e/util.go (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • test/e2e/cno.go
  • Dockerfile
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • test/Makefile
  • test/cmd/main.go
  • go.mod
  • test/e2e/util.go
  • pkg/network/mtu.go
  • test/e2e/cli.go
  • Makefile
🧬 Code graph analysis (1)
test/e2e/util.go (1)
test/e2e/cli.go (1)
  • CLI (21-31)
🪛 checkmake (0.2.2)
test/Makefile

[warning] 41-41: Missing required phony target "test"

(minphony)

Makefile

[warning] 50-50: Missing required phony target "test"

(minphony)

🔇 Additional comments (6)
pkg/network/mtu.go (1)

35-48: LGTM! Properly handles netlink version differences for default route detection.

The updated logic correctly identifies default routes across netlink versions:

  • Dst == nil for netlink v1.1.0 behavior
  • 0.0.0.0/0 or ::/0 (mask size 0 with zero IP) for netlink v1.3.1+
test/e2e/cli.go (1)

232-252: LGTM! Clean config retrieval with proper QPS/Burst settings.

The getConfig() method properly handles kubeconfig resolution and applies sensible QPS/Burst defaults.

test/e2e/util.go (2)

33-40: LGTM! Random string generation is safe with Go 1.24.

Go 1.20+ automatically seeds math/rand with a random value, so determinism is not a concern here.


21-32: LGTM! Proper initialization of e2e framework context.

The init() function correctly sets up the Kubernetes e2e framework's TestContext with kubeconfig, kubectl path, cloud provider, and namespace deletion policy from environment variables.

Makefile (1)

49-53: New build-e2e-tests target integrates cleanly.

The delegation to test/Makefile via $(MAKE) -C test build is the correct pattern for sub-directory builds. Phony declaration is present, and the echo message aids traceability.

test/Makefile (1)

25-44: All build prerequisites verified—code changes are ready.

All three verification items passed:

  1. ✓ test/cmd/main.go exists as the Go entry point
  2. ✓ pkg/version package contains commitFromGit, buildDate, and versionFromGit fields for LDFLAGS embedding
  3. ✓ Dockerfile references the expected binary path (test/bin/cluster-network-operator-tests-ext)

The Makefile structure and build approach are sound. No issues remain.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 25, 2025

@zhaozhanqi: 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/okd-scos-e2e-aws-ovn 880b6d3 link false /test okd-scos-e2e-aws-ovn
ci/prow/e2e-aws-ovn-windows f501992 link true /test e2e-aws-ovn-windows
ci/prow/e2e-metal-ipi-ovn-dualstack-bgp-local-gw f501992 link true /test e2e-metal-ipi-ovn-dualstack-bgp-local-gw
ci/prow/e2e-metal-ipi-ovn-dualstack-bgp f501992 link true /test e2e-metal-ipi-ovn-dualstack-bgp
ci/prow/security f501992 link false /test security
ci/prow/e2e-ovn-ipsec-step-registry f501992 link true /test e2e-ovn-ipsec-step-registry

Full PR test history. Your PR dashboard.

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.

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

Labels

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants