Skip to content

Conversation

@anik120
Copy link

@anik120 anik120 commented Nov 10, 2025

No description provided.

@anik120 anik120 changed the title Add EP for introducing Boxcutter library in OLMv1 OPRUN-4244: Add EP for introducing Boxcutter library in OLMv1 Nov 10, 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 10, 2025
@openshift-ci-robot
Copy link

openshift-ci-robot commented Nov 10, 2025

@anik120: This pull request references OPRUN-4244 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:

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
Copy link
Contributor

openshift-ci bot commented Nov 10, 2025

[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 jerpeter1 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

@anik120
Copy link
Author

anik120 commented Nov 11, 2025

cc: @perdasilva @pedjak @dtfranz

`CollisionProtection=None`

**Garbage Collection**
- Maintains the last 5 archived revisions per `ClusterExtension`
Copy link

Choose a reason for hiding this comment

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

This is pretty nit-picky but what we do is slightly more nuanced. The 5 previous revisions are not necessarily archived and some may still be active, particularly in transitional states. The only revisions trimmed from the cluster are revisions that are both archived and exist beyond the total limit of 5.

An extreme but theoretically possible scenario would be a previous list with length > 5, where all revisions are not archived. In this scenario, none of the revisions would be trimmed from the list or the cluster. Also for instance, if there were 6 active revisions and a 7th archived revision, only the 7th archived revision will be trimmed, and the list will remain at length == 6.

TLDR: All previous revisions in archived lifecycle state beyond the revision limit of 5 will be garbage collected. Revisions in active lifecycle state are never garbage collected, even if the list contains more than 5 of them.

Copy link
Author

@anik120 anik120 Nov 19, 2025

Choose a reason for hiding this comment

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

Updated this section based on these pointers, PTAL cc20e02

dynamic watches for all resource GVKs in the revision
8. `ClusterExtensionRevision` controller invokes RevisionEngine.Reconcile() which
iterates through phases sequentially
9. For each object in Phase 1 (e.g., CRDs, RBAC), RevisionEngine applies via
Copy link

Choose a reason for hiding this comment

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

This again may be overly implementation-detail-ey but Phase 1 is Namespaces, 2 is 'policies' like NetworkPolicy, 3 is RBAC, then 4 is CRDs, etc. Not sure if that detail really matters for the purposes of this doc though and would also make the sequence diagram messier 😆

Copy link
Author

@anik120 anik120 Nov 19, 2025

Choose a reason for hiding this comment

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

Updated this section, tried to stay away from getting over implementation detail-y here..PTAL cc20e02

Comment on lines 352 to 357
6. `ClusterExtensionRevision` controller reconciles new revision following same
phased rollout process
7. When new revision reaches Succeeded=True, `ClusterExtensionRevision`
controller patches `<extension-name>-1` to set lifecycleState=Archived
8. Archived revision controller tears down resources it uniquely owns (those
not adopted by new revision)
Copy link

Choose a reason for hiding this comment

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

Maybe call out the adoption process here rather than as a footnote in step 8?

Suggested change
6. `ClusterExtensionRevision` controller reconciles new revision following same
phased rollout process
7. When new revision reaches Succeeded=True, `ClusterExtensionRevision`
controller patches `<extension-name>-1` to set lifecycleState=Archived
8. Archived revision controller tears down resources it uniquely owns (those
not adopted by new revision)
> 6. `ClusterExtensionRevision` controller reconciles new revision following same phased rollout process, adopting any existing resources from the previous revision
> 7. When new revision reaches Succeeded=True, `ClusterExtensionRevision`
controller patches `<extension-name>-1` to set lifecycleState=Archived
> 8. Archived revision controller tears down remaining resources not adopted by the previous revision

Copy link
Author

Choose a reason for hiding this comment

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

Archived revision controller tears down remaining resources not adopted by the previous revision

@dtfranz I want to make sure I understand the terminology correctly in this context:

Scenario:

  • Revision 1 (old) exists with resources A, B, C
  • Revision 2 (new) is created and adopts resources A and B (step 6)
  • Revision 2 reaches Succeeded=True (step 7)
  • Revision 1 is archived (step 7)
  • Revision 1 now tears down resources... (step 8)

Questions:

  1. In step 8, when we say "previous revision," do we mean:
    - Revision 2 (the revision that came after revision 1 and is now active), OR
    - Revision 0 or whatever came before revision 1?
  2. My original text says "not adopted by new revision" - is the issue with this wording that:
    - It's unclear which revision is "new" at this point in the timeline?
    - It should refer to the "newer" revision (revision 2)?
  3. Would clearer wording be something like: "tears down resources not adopted by the new active revision" or "tears
    down resources that only revision 1 owned"?

Per Goncalves da Silva and others added 3 commits November 13, 2025 16:44
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 19, 2025

@anik120: The following test 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/markdownlint cc20e02 link true /test markdownlint

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