Skip to content

OCPBUGS-84943: fix(test): rely on DeferCleanup for both-watch-modes scenario teardown#712

Open
tmshort wants to merge 1 commit intoopenshift:mainfrom
tmshort:fix-OCPBUGS-84943
Open

OCPBUGS-84943: fix(test): rely on DeferCleanup for both-watch-modes scenario teardown#712
tmshort wants to merge 1 commit intoopenshift:mainfrom
tmshort:fix-OCPBUGS-84943

Conversation

@tmshort
Copy link
Copy Markdown
Contributor

@tmshort tmshort commented May 4, 2026

Remove the manual per-iteration cleanup block that explicitly deleted the
CE, CRB, SA, and namespaces between loop iterations. Each scenario uses
unique names (via rand.String(4)), so there is no cross-iteration collision.
Cleanup is now handled by two existing mechanisms:

  • EnsureCleanupClusterExtension at the start of each iteration finds and
    deletes any CE for the package by name, then blocks until COS teardown
    removes all managed resources (including the CRD).
  • DeferCleanup handlers registered per iteration fire at spec exit for the
    SA, CRB, CE, and namespaces.

Also fix wrong arguments in the CE DeferCleanup: it was calling
EnsureCleanupClusterExtension(ctx, ceName, nsName) but the signature takes
(ctx, packageName, crdName). ceName is the CR object name (not the package
name) and nsName is the catalog namespace (not the CRD name), making the
call a silent no-op. Fix to pass packageName and crdName.

This eliminates the 300s namespace-deletion timeout that caused flaky
failures on GCP techpreview clusters with master nodes at 94-99% CPU.

Summary by CodeRabbit

  • Tests
    • Speed up test iterations by removing per-iteration blocking waits for namespace deletion.
    • Rely on deferred cleanup handlers instead of explicit deletes between iterations.
    • Ensure teardown reliably targets the intended cluster-scoped resources by fixing cleanup invocation to use correct identifiers.

@openshift-ci-robot openshift-ci-robot added jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels May 4, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@tmshort: This pull request references Jira Issue OCPBUGS-84943, which is invalid:

  • expected the bug to target the "5.0.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

The both-watch-modes test loops over two scenarios (singlens, ownns) inside a single It block and was blocking on full namespace deletion between them. This caused flaky 300s timeouts on GCP techpreview clusters where master nodes run at 94-99% CPU, which starves the namespace controller and makes namespace termination arbitrarily slow.

The wait was not guarding anything real:

  • EnsureCleanupClusterExtension already ensures the CE and CRD are gone; since CE deletion uses ForegroundPropagation, the ClusterObjectSet teardown must complete before the CE disappears, meaning all managed resources (Deployments, Services, etc.) are already deleted at that point.
  • The singleown bundle installs no ValidatingWebhookConfiguration or MutatingWebhookConfiguration, so there is no webhook admission risk.
  • Each scenario generates unique namespace names and CRD group suffixes via rand.String(4), so a terminating namespace from scenario 1 cannot collide with or interfere with scenario 2's resources.

Trigger both namespace deletions and proceed without waiting. The DeferCleanup registrations that already exist will handle any residual cleanup after the spec exits.

Fixes: OCPBUGS-84943

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.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 4, 2026

Walkthrough

Removed an unused import and simplified test teardown in olmv1-singleownnamespace.go: per-iteration explicit polling and deletion of install/watch namespaces and some cluster-scoped deletes were removed; deferred cleanup handlers (via EnsureCleanupClusterExtension called with packageName/crdName at iteration start) are relied on for teardown instead.

Changes

Test cleanup and teardown ordering

Layer / File(s) Summary
Import Cleanup
openshift/tests-extension/test/olmv1-singleownnamespace.go
Removed k8s.io/apimachinery/pkg/api/errors import.
Deferred cleanup argument change
openshift/tests-extension/test/olmv1-singleownnamespace.go
ClusterExtension deferred cleanup now calls helpers.EnsureCleanupClusterExtension(context.Background(), packageName, crdName) (was CE name/namespace).
Per-iteration teardown coordination
openshift/tests-extension/test/olmv1-singleownnamespace.go
Loop no longer explicitly deletes ClusterExtension/ClusterRoleBinding/ServiceAccount between iterations; relies on deferred cleanup handlers and an initial EnsureCleanupClusterExtension(packageName, crdName) at iteration start to ensure teardown synchronization.
Namespace deletion behavior
openshift/tests-extension/test/olmv1-singleownnamespace.go
Removed per-iteration Eventually(... errors.IsNotFound ...) polling for namespace deletion; comments indicate non-blocking foreground deletion and that unique per-scenario naming plus start-of-iteration cleanup provide sufficient isolation.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 11 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Test Structure And Quality ❓ Inconclusive No result was produced after verification. Marking as INCONCLUSIVE. Re-run the check or adjust instructions to produce a final result.
✅ Passed checks (11 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: removing a blocking namespace-deletion wait in the both-watch-modes test scenario and relying on DeferCleanup for teardown, which directly matches the code modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed All test titles are static and deterministic. Dynamic values are only in test bodies, not titles.
Microshift Test Compatibility ✅ Passed No new Ginkgo e2e tests were added in this PR. Changes are refactoring of existing test logic (removing blocking waits, reorganizing cleanup). The check applies only to newly added tests.
Single Node Openshift (Sno) Test Compatibility ✅ Passed This PR does not add new tests. It modifies existing tests by removing namespace deletion waits and improving cleanup. The tests present do not make multi-node or HA assumptions.
Topology-Aware Scheduling Compatibility ✅ Passed PR only modifies a test file, not deployment manifests, operator code, or controllers. The custom check explicitly applies only to those types of changes. No scheduling constraints introduced.
Ote Binary Stdout Contract ✅ Passed No OTE Binary Stdout Contract violations found. File contains only Ginkgo test specs, no process-level code, no klog configuration, and no stdout writes outside test blocks.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed All new tests added have [Skipped:Disconnected] labels. No IPv4 hardcoding, IPv4 CIDR blocks, or external connectivity assumptions detected in test code.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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

@tmshort
Copy link
Copy Markdown
Contributor Author

tmshort commented May 4, 2026

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels May 4, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@tmshort: This pull request references Jira Issue OCPBUGS-84943, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

/jira refresh

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.

@openshift-ci openshift-ci Bot requested review from camilamacedo86 and pedjak May 4, 2026 18:37
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 4, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@tmshort: This pull request references Jira Issue OCPBUGS-84943, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

The both-watch-modes test loops over two scenarios (singlens, ownns) inside a single It block and was blocking on full namespace deletion between them. This caused flaky 300s timeouts on GCP techpreview clusters where master nodes run at 94-99% CPU, which starves the namespace controller and makes namespace termination arbitrarily slow.

The wait was not guarding anything real:

  • EnsureCleanupClusterExtension already ensures the CE and CRD are gone; since CE deletion uses ForegroundPropagation, the ClusterObjectSet teardown must complete before the CE disappears, meaning all managed resources (Deployments, Services, etc.) are already deleted at that point.
  • The singleown bundle installs no ValidatingWebhookConfiguration or MutatingWebhookConfiguration, so there is no webhook admission risk.
  • Each scenario generates unique namespace names and CRD group suffixes via rand.String(4), so a terminating namespace from scenario 1 cannot collide with or interfere with scenario 2's resources.

Trigger both namespace deletions and proceed without waiting. The DeferCleanup registrations that already exist will handle any residual cleanup after the spec exits.

Fixes: OCPBUGS-84943

Summary by CodeRabbit

  • Tests
  • Updated test cleanup procedures to eliminate blocking waits during namespace deletion, improving test execution flow.

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.

@tmshort
Copy link
Copy Markdown
Contributor Author

tmshort commented May 4, 2026

/payload-aggregate periodic-ci-openshift-release-main-ci-5.0-e2e-gcp-ovn-techpreview 10

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 4, 2026

@tmshort: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-ci-5.0-e2e-gcp-ovn-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/8fa60410-47e9-11f1-97b8-dbfe0786b9b6-0

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label May 4, 2026
@grokspawn
Copy link
Copy Markdown
Contributor

I do question the rationale of considering a TPNU-only scenario a release blocker, but that's not this PR's fault.

Expect(k8sClient.Delete(ctx, crb, client.PropagationPolicy(deletePolicy))).To(Succeed(), "failed to delete ClusterRoleBinding %q", crbName)
Expect(k8sClient.Delete(ctx, sa, client.PropagationPolicy(deletePolicy))).To(Succeed(), "failed to delete ServiceAccount %q", saName)

// Trigger namespace deletion and proceed without blocking. By this point
Copy link
Copy Markdown
Contributor

@grokspawn grokspawn May 4, 2026

Choose a reason for hiding this comment

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

We actually could just rely on DeferCleanup at the end of the scenario, since there isn't resource collision.
And for line 419, isn't the last parameter intended to be the CRD name, not the namespace?

Also, the comment at 447 is no longer correct (which I guess was before the resource parallelization, which might be the source of some CPU complexity but which obviates the need for serial namespace cleanup).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Claude said that "DeferCleanup" was less urgent than the rest of your comment.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I... see. Blink twice if claude won't let you type any more.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Updated

Copy link
Copy Markdown
Member

@rashmigottipati rashmigottipati left a comment

Choose a reason for hiding this comment

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

/lgtm

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 4, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: grokspawn, rashmigottipati, tmshort

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

The pull request process is described here

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

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

@tmshort tmshort force-pushed the fix-OCPBUGS-84943 branch from 7432604 to 28ae4f8 Compare May 4, 2026 20:30
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label May 4, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 4, 2026

New changes are detected. LGTM label has been removed.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
openshift/tests-extension/test/olmv1-singleownnamespace.go (1)

136-143: ⚡ Quick win

Consider fixing similar EnsureCleanupClusterExtension calls in other DeferCleanup handlers.

Line 142 passes (ceName, namespace) but the function expects (packageName, crdName). The same pattern exists at lines 260, 578, and 713. Per the function signature in cluster_extension.go:186, these calls will be ineffective:

  • The packageName filter (ce.Spec.Source.Catalog.PackageName == packageName) won't match ceName
  • The namespace string won't match any CRD name

This is outside the PR's scope but worth addressing in a follow-up for cleanup consistency.

Example fix for line 142
 			DeferCleanup(func() {
 				By(fmt.Sprintf("cleanup: deleting ClusterExtension %s", ce.Name))
 				_ = k8sClient.Delete(context.Background(), ce, client.PropagationPolicy(metav1.DeletePropagationForeground))
 
 				By("ensuring ClusterExtension is deleted")
-				helpers.EnsureCleanupClusterExtension(context.Background(), ceName, namespace)
+				crdName := fmt.Sprintf("webhooktests-%s.webhook.operators.coreos.io", crdSuffix)
+				helpers.EnsureCleanupClusterExtension(context.Background(), packageName, crdName)
 			})
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@openshift/tests-extension/test/olmv1-singleownnamespace.go` around lines 136
- 143, The EnsureCleanupClusterExtension calls pass (ceName, namespace) but
EnsureCleanupClusterExtension expects (packageName, crdName) and filters by
ce.Spec.Source.Catalog.PackageName; update each DeferCleanup caller (including
the instance around ClusterExtension ce and the similar calls at the other
locations) to pass the extension package name
(ce.Spec.Source.Catalog.PackageName) as the first argument and the actual CRD
name (the CRD created for the extension, not the namespace) as the second
argument so the function’s packageName and crdName filters match; locate calls
referencing EnsureCleanupClusterExtension and replace the incorrect parameters
accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@openshift/tests-extension/test/olmv1-singleownnamespace.go`:
- Around line 136-143: The EnsureCleanupClusterExtension calls pass (ceName,
namespace) but EnsureCleanupClusterExtension expects (packageName, crdName) and
filters by ce.Spec.Source.Catalog.PackageName; update each DeferCleanup caller
(including the instance around ClusterExtension ce and the similar calls at the
other locations) to pass the extension package name
(ce.Spec.Source.Catalog.PackageName) as the first argument and the actual CRD
name (the CRD created for the extension, not the namespace) as the second
argument so the function’s packageName and crdName filters match; locate calls
referencing EnsureCleanupClusterExtension and replace the incorrect parameters
accordingly.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: a583b040-e67f-487e-a5b1-76004a5d339a

📥 Commits

Reviewing files that changed from the base of the PR and between 7432604 and 28ae4f8.

📒 Files selected for processing (1)
  • openshift/tests-extension/test/olmv1-singleownnamespace.go

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 5, 2026

@tmshort: all tests passed!

Full PR test history. Your PR dashboard.

Details

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

…es scenario teardown

Remove the manual per-iteration cleanup block that explicitly deleted the
CE, CRB, SA, and namespaces between loop iterations. Each scenario uses
unique names (via rand.String(4)), so there is no cross-iteration collision.
Cleanup is now handled by two existing mechanisms:

- EnsureCleanupClusterExtension at the start of each iteration finds and
  deletes any CE for the package by name, then blocks until COS teardown
  removes all managed resources (including the CRD).
- DeferCleanup handlers registered per iteration fire at spec exit for the
  SA, CRB, CE, and namespaces.

Also fix wrong arguments in the CE DeferCleanup: it was calling
EnsureCleanupClusterExtension(ctx, ceName, nsName) but the signature takes
(ctx, packageName, crdName). ceName is the CR object name (not the package
name) and nsName is the catalog namespace (not the CRD name), making the
call a silent no-op. Fix to pass packageName and crdName.

This eliminates the 300s namespace-deletion timeout that caused flaky
failures on GCP techpreview clusters with master nodes at 94-99% CPU.

Fixes: OCPBUGS-84943

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Todd Short <tshort@redhat.com>
@tmshort tmshort force-pushed the fix-OCPBUGS-84943 branch from 28ae4f8 to b720ee7 Compare May 5, 2026 00:34
@tmshort tmshort changed the title OCPBUGS-84943: fix(test): drop blocking namespace-deletion wait between both-watch-modes scenarios OCPBUGS-84943: fix(test): rely on DeferCleanup for both-watch-modes scenario teardown May 5, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@tmshort: This pull request references Jira Issue OCPBUGS-84943, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

Remove the manual per-iteration cleanup block that explicitly deleted the
CE, CRB, SA, and namespaces between loop iterations. Each scenario uses
unique names (via rand.String(4)), so there is no cross-iteration collision.
Cleanup is now handled by two existing mechanisms:

  • EnsureCleanupClusterExtension at the start of each iteration finds and
    deletes any CE for the package by name, then blocks until COS teardown
    removes all managed resources (including the CRD).
  • DeferCleanup handlers registered per iteration fire at spec exit for the
    SA, CRB, CE, and namespaces.

Also fix wrong arguments in the CE DeferCleanup: it was calling
EnsureCleanupClusterExtension(ctx, ceName, nsName) but the signature takes
(ctx, packageName, crdName). ceName is the CR object name (not the package
name) and nsName is the catalog namespace (not the CRD name), making the
call a silent no-op. Fix to pass packageName and crdName.

This eliminates the 300s namespace-deletion timeout that caused flaky
failures on GCP techpreview clusters with master nodes at 94-99% CPU.

Summary by CodeRabbit

  • Tests
  • Improved cleanup to explicitly remove cluster-scoped resources before each scenario.
  • Removed blocking waits for namespace deletion and switched to non-blocking namespace teardown to speed test iterations.
  • Fixed cleanup invocation to use correct identifiers so deferred teardown reliably targets the intended resources.

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.

@tmshort
Copy link
Copy Markdown
Contributor Author

tmshort commented May 5, 2026

/payload-aggregate periodic-ci-openshift-release-main-ci-5.0-e2e-gcp-ovn-techpreview 10

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 5, 2026

@tmshort: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-ci-5.0-e2e-gcp-ovn-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/5be32b40-481a-11f1-9c07-ca61cec83ad6-0

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
openshift/tests-extension/test/olmv1-singleownnamespace.go (1)

447-451: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix stale teardown rationale in the comment block.

At Line 450, the comment says the next iteration’s cleanup call will delete this iteration’s CE; with per-iteration unique packageName/crdName, that is not true. Cleanup here is handled by this iteration’s deferred cleanup at spec exit.

✏️ Suggested comment update
-// All resources use unique names per scenario, so there is no collision risk between
-// iterations. DeferCleanup handlers registered above handle SA, CRB, CE, and namespaces
-// at spec exit. The EnsureCleanupClusterExtension call at the start of the next iteration
-// (line ~348) will find and delete this iteration’s CE by package name, then block until
-// COS teardown removes all managed resources (including the CRD) before proceeding.
+// All resources use unique names per scenario, so there is no collision risk between
+// iterations. DeferCleanup handlers registered above handle SA, CRB, CE, and namespaces
+// at spec exit for each scenario. The per-scenario EnsureCleanupClusterExtension call
+// (in this scenario's cleanup) removes lingering CE/CRD for this scenario's package/CRD.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@openshift/tests-extension/test/olmv1-singleownnamespace.go` around lines 447
- 451, Update the stale comment explaining teardown: clarify that because each
iteration uses unique packageName and crdName, the next iteration’s
EnsureCleanupClusterExtension will NOT delete this iteration’s ClusterExtension
(CE); instead, this iteration’s CE/CRB/SA/namespace are removed by the deferred
cleanup handlers registered in this spec’s exit. Edit the comment block
referencing EnsureCleanupClusterExtension, packageName, crdName, CE, CRD and
DeferCleanup to state that per-iteration unique names prevent cross-iteration
deletion and that cleanup is handled by this iteration’s deferred cleanup.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@openshift/tests-extension/test/olmv1-singleownnamespace.go`:
- Around line 447-451: Update the stale comment explaining teardown: clarify
that because each iteration uses unique packageName and crdName, the next
iteration’s EnsureCleanupClusterExtension will NOT delete this iteration’s
ClusterExtension (CE); instead, this iteration’s CE/CRB/SA/namespace are removed
by the deferred cleanup handlers registered in this spec’s exit. Edit the
comment block referencing EnsureCleanupClusterExtension, packageName, crdName,
CE, CRD and DeferCleanup to state that per-iteration unique names prevent
cross-iteration deletion and that cleanup is handled by this iteration’s
deferred cleanup.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: a20ba213-e821-429c-a144-904f54876bed

📥 Commits

Reviewing files that changed from the base of the PR and between 28ae4f8 and b720ee7.

📒 Files selected for processing (1)
  • openshift/tests-extension/test/olmv1-singleownnamespace.go

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. 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.

4 participants