Skip to content

Conversation

@camilamacedo86
Copy link
Contributor

@camilamacedo86 camilamacedo86 commented Jan 11, 2026

To ensure that we do not broke workloads when a catalog is removed.

Copilot AI review requested due to automatic review settings January 11, 2026 05:18
@netlify
Copy link

netlify bot commented Jan 11, 2026

Deploy Preview for olmv1 ready!

Name Link
🔨 Latest commit 8851183
🔍 Latest deploy log https://app.netlify.com/projects/olmv1/deploys/6963919e6fc4c70008ec0546
😎 Deploy Preview https://deploy-preview-2439--olmv1.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@openshift-ci
Copy link

openshift-ci bot commented Jan 11, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

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

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

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

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds comprehensive end-to-end tests to verify that installed OLM extensions continue functioning correctly when their source catalog is deleted. The tests cover both standard runtime and experimental Boxcutter runtime scenarios.

Changes:

  • Added new feature file with 8 scenarios testing catalog deletion resilience
  • Implemented CatalogIsDeleted function to support catalog deletion in tests
  • Added step registrations for ClusterExtension update operations

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
test/e2e/steps/steps.go Adds CatalogIsDeleted function and step registrations for testing catalog deletion and ClusterExtension updates
test/e2e/features/catalog-deletion-resilience.feature Defines 8 test scenarios covering extension resilience, resource restoration, config changes, version upgrades, and revision behavior when catalog is deleted

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings January 11, 2026 05:43
@camilamacedo86 camilamacedo86 changed the title 🌱 test: add e2e tests for workload resilience when catalog is deleted WIP 🌱 test: add e2e tests for workload resilience when catalog is deleted Jan 11, 2026
@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 Jan 11, 2026
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

l.Info("skipping unpack - using installed bundle content")
// imageFS will remain nil - the applier will use the existing installed content
return nil, nil
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

PROBLEM: Always tries to pull image, even when using installed bundle


// If contentFS is nil, we're maintaining the current state without catalog access.
// In this case, reconcile the existing Helm release if it exists.
if contentFS == nil {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Will fail if is not able to get the content.
PROBLEM: Immediately tries to build chart from contentFS
FIX: Reconcile the existing release and watch the release objects to ensure they're maintained

Copilot AI review requested due to automatic review settings January 11, 2026 07:09
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings January 11, 2026 07:30
@camilamacedo86 camilamacedo86 changed the title WIP 🌱 test: add e2e tests for workload resilience when catalog is deleted WIP 🐛 Workload should still resilient when catalog is deleted Jan 11, 2026
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings January 11, 2026 09:00
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@camilamacedo86 camilamacedo86 force-pushed the test-e2e-res branch 2 times, most recently from 986e945 to 95f39fb Compare January 11, 2026 09:41
Copilot AI review requested due to automatic review settings January 11, 2026 09:41
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +338 to 349
// If contentFS is nil, we're maintaining the current state without catalog access.
// In this case, we should use the existing installed revision without generating a new one.
if contentFS == nil {
if len(existingRevisions) == 0 {
return false, "", fmt.Errorf("no bundle content available and no existing revisions found")
}
// Use the most recent revision and rely on its existing controller loop (don't create a new one).
// Returning true here signals that the rollout has succeeded using the current revision; the
// ClusterExtensionRevision controller will continue to reconcile and maintain the resources
// independently of this apply call.
return true, "", nil
}
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

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

The contentFS nil handling in the apply method introduces a new code path for maintaining state when the catalog is unavailable but lacks unit test coverage. Consider adding unit tests to verify that this path correctly handles cases where no existing revisions are found versus when revisions exist.

Copilot uses AI. Check for mistakes.
When upgrading OLM from standard (Helm runtime) to experimental
(Boxcutter runtime), the BoxcutterStorageMigrator creates a
ClusterExtensionRevision from the existing Helm release. However,
the migrated revision was created without status conditions, causing
a race condition where it wasn't recognized as "Installed".

This fix sets an initial Succeeded status on migrated revisions,
ensuring they're immediately recognized and allowing version upgrades
to proceed correctly after OLM upgrades.

Fixes test-upgrade-st2ex-e2e failures.
Enables installed extensions to continue working when their source
catalog becomes unavailable or is deleted. When resolution fails due
to catalog unavailability, the operator now continues reconciling with
the currently installed bundle instead of failing.

Changes:
- Resolution falls back to installed bundle when catalog unavailable
- Unpacking skipped when maintaining current installed state
- Helm and Boxcutter appliers handle nil contentFS gracefully
- Version upgrades properly blocked without catalog access

This ensures workloads remain stable and operational even when the
catalog they were installed from is temporarily unavailable or deleted,
while appropriately preventing version changes that require catalog access.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant