Repository navigation
🌱 stop stamping owner-name on ClusterObjectSet managed objects - #3038
Merged
openshift-merge-bot[bot] merged 1 commit intoOct 20, 2026
Merged
openshift-merge-bot[bot] merged 1 commit into
openshift-merge-bot[bot] merged 1 commit into
Conversation
The ClusterObjectSet controller copied the owner-name label off the COS onto every managed object. That label is redundant and fragile: managed objects are already labeled app.kubernetes.io/managed-by by the boxcutter revision engine, the controller never reads owner-name (revision lookups use the spec.group index and teardown uses owner references), and copying it off the COS breaks for standalone ClusterObjectSets created without the label. Remove the propagation; managed-object labeling is now just the managed-by label (matching orb-operator). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Per G. da Silva <pegoncal@redhat.com>
✅ Deploy Preview for olmv1 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Member
|
/lgtm |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: joelanford The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
openshift-merge-bot
Bot
merged commit Oct 20, 2026
e2b424a
into
operator-framework:main
38 checks passed
perdasilva
pushed a commit
to perdasilva/operator-controller
that referenced
this pull request
Oct 20, 2026
With the ClusterObjectSet controller no longer propagating owner-name onto managed objects (operator-framework#3038), the owner-name label on COD-created revisions serves no purpose: ownership is expressed through the controller owner reference and the revision's spec.group, and the controller never reads owner-name. Generated revisions now carry only the template-hash label. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Per G. da Silva <pegoncal@redhat.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Follow-up to a review discussion on #3034: the ClusterObjectSet controller copied the
olm.operatorframework.io/owner-namelabel off the COS onto every managed object. This removes that propagation.The copy was:
owner-kindandowner-nameonto every managed object (operator-controller buildsobjLblsinboxcutter_reconcile_steps.go; the applier applies them viaobj.SetLabels(merge(..., objectLabels))inboxcutter.go). The removed line re-setowner-nameto the value already present. Managed objects are also labeledapp.kubernetes.io/managed-by: olm.operatorframework.ioby the boxcutter revision engine (matching orb-operator).cos.Labels[owner-name]), which is absent for standalone ClusterObjectSets created without it..spec.groupindex and teardown uses owner references.Changes
owner-namepropagation inbuildBoxcutterPhases(keeping the collision-protection handling that shared the loop) and drop the now-unusedlabelsimport.e2e impact
Safe.
uninstall.feature(ClusterExtensionResourcesCreatedAndAreLabeled) asserts managed objects carryowner-kind+owner-name, and that continues to hold because those labels come from the applier's baked-inobjectLabels, not from the removed line. No e2e assertsowner-nameon managed objects created by a standalone ClusterObjectSet.Scope / compatibility
owner-nameon the ClusterObjectSet objects themselves and on referred secrets (both applier-set, asserted by the install e2e) is untouched.Testing
go build ./..., full./internal/object-controller/...suite, andgolangci-lintall pass.make e2e/uninstall→ 2 scenarios passed, 26 steps passed (BoxcutterRuntimeenabled, no scenarios skipped), including the@BoxcutterRuntimescenario and theClusterExtension resources are created and labeledstep that checks managed objects still carryowner-kind/owner-name.🤖 Generated with Claude Code