Skip to content

Conversation

barney-s
Copy link
Contributor

@barney-s barney-s commented Aug 14, 2025

Change KRO labels

  • Based on proposal: Adding a propsal for changing the KRO instance and resource labels #639
  • Move to new labels
  • Add deprecate TODO for old labels
  • Add new testcase for nested RGD and update existing testcase labels
  • Have separate instance labellers for different reconcile paths.
    This is needed when we have RGD2 instance in RGD1 resources.
    Today both paths use the same label resulting in conflict.
    path 1: RGD2.instance created as part of an RGD1 instance reconciliation
    path 2: RGD2.instance reconciled by RGD2 reconciler

Initial code: Pulling this out from #561

@barney-s barney-s requested review from matthchr and a-hilaly August 14, 2025 17:14
@barney-s barney-s changed the title Have separate instance labellers for different reconcile paths. Have separate instance labellers for different reconcile paths Aug 14, 2025
Copy link
Contributor

@jakobmoellerdev jakobmoellerdev left a comment

Choose a reason for hiding this comment

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

this is a good change but I think we should introduce a test case here to ensure this never breaks again. WDYT?

@barney-s
Copy link
Contributor Author

this is a good change but I think we should introduce a test case here to ensure this never breaks again. WDYT?

I modified an existing test to check for the source label. Can add a separate test too.

@jakobmoellerdev
Copy link
Contributor

existing test is perfectly fine imo 👍 🙇

@barney-s barney-s requested a review from matthchr August 15, 2025 22:45
barney-s added a commit to barney-s/kro that referenced this pull request Aug 15, 2025
barney-s added a commit to barney-s/kro that referenced this pull request Aug 18, 2025
* Add docs.go and interface docs
* Remove pkg/metadata/finalizer.go changes and create a separate PR kubernetes-sigs#625
* nits and adding comments
* move envtest makefile changes to kubernetes-sigs#636
* removing labeller changes and moving them to kubernetes-sigs#631
* Fix regression when removing labeller changes:
  `dynamic-controller      Error syncing item, requeuing with rate limit   {"item": {"NamespacedKey":"chainsaw-special-quail/test-instance","GVR":{"Group":"kro.run","Version":"v1alpha1","Resource":"checkinstancecreationsimpledeployments"}}, "error": "failed to setup instance: failed to set finalizer: error getting finalizers: .metadata.finalizers accessor error: [] is of the type []string, expected []interface{}"}`
barney-s added a commit to barney-s/kro that referenced this pull request Aug 18, 2025
* Add docs.go and interface docs
* Remove pkg/metadata/finalizer.go changes and create a separate PR kubernetes-sigs#625
* nits and adding comments
* move envtest makefile changes to kubernetes-sigs#636
* removing labeller changes and moving them to kubernetes-sigs#631
* Fix regression when removing labeller changes:
  `dynamic-controller      Error syncing item, requeuing with rate limit   {"item": {"NamespacedKey":"chainsaw-special-quail/test-instance","GVR":{"Group":"kro.run","Version":"v1alpha1","Resource":"checkinstancecreationsimpledeployments"}}, "error": "failed to setup instance: failed to set finalizer: error getting finalizers: .metadata.finalizers accessor error: [] is of the type []string, expected []interface{}"}`
@barney-s
Copy link
Contributor Author

Added a proposal here: #639

barney-s added a commit to barney-s/kro that referenced this pull request Aug 19, 2025
* Move applyset/applylib -> pkg/applylib
* Add more docs
  * Add a reference to the applyset KEP in comments
  * Add docs.go and interface docs
* Improvements:
  * remove caching a json marshalled copy of obj
  * Remove name/namespace in PruneObject and instead derive it from object. Also change object type from runtime.Object to unstructured.
  * use fieldmanager config param to remove kro hardcoding in applyset
  * Aggregate pruneErrors and applyErrors into single Errors()
  * add recordPruneObject helper
  * switched from waitGroup to errgroup when collecting objects to prune across namespaces
  * take logr as a config in ApplySet. Added more logging in applyset.
  * use superset of namespaces and GKs we compute before apply for pruning
  * Add simple tests in the applyset pkg
  * use namespace-scoped resource interface when pruning
  * use force=True when applying in setManaged()
  * Removed un-necessary deepcopy in updateParentLabelsAndAnnotations
* Refactors:
  * add RestMapper to the client-set
  * use Unstrucutred in ApplyableObject instead of interface and forcing it to be unstructured in code
  * minor restruction in processLoad() method
  * Refactor code that was using errors.Join and an array
  * Use ContainsFinalizer
  * Converting unstructured to PartialObjectMetadata for parent in applyset.
* Cleanups:
  * Fix typos in comments, prints etc
  * Remove obseleted comments
  * Make the exported resources strutter less, applyset.ApplySet -> applyset.Set, NewApplySet -> New etc.
  * Fix captilaization for var names. Uid -> UID, ...
  * use consts for labelManager strings
  * remove pure formatting changes in unrelated files to minimize PR changeset
Split out:
  * Remove pkg/metadata/finalizer.go changes and create a separate PR kubernetes-sigs#625
  * move envtest makefile changes to kubernetes-sigs#636
  * removing labeller changes and moving them to kubernetes-sigs#631
  * Fix regression when removing labeller changes:
    `dynamic-controller      Error syncing item, requeuing with rate limit   {"item": {"NamespacedKey":"chainsaw-special-quail/test-instance","GVR":{"Group":"kro.run","Version":"v1alpha1","Resource":"checkinstancecreationsimpledeployments"}}, "error": "failed to setup instance: failed to set finalizer: error getting finalizers: .metadata.finalizers accessor error: [] is of the type []string, expected []interface{}"}`
barney-s added a commit to barney-s/kro that referenced this pull request Aug 19, 2025
* Move applyset/applylib -> pkg/applylib
* Add more docs
  * Add a reference to the applyset KEP in comments
  * Add docs.go and interface docs
* Improvements:
  * remove caching a json marshalled copy of obj
  * Remove name/namespace in PruneObject and instead derive it from object. Also change object type from runtime.Object to unstructured.
  * use fieldmanager config param to remove kro hardcoding in applyset
  * Aggregate pruneErrors and applyErrors into single Errors()
  * add recordPruneObject helper
  * switched from waitGroup to errgroup when collecting objects to prune across namespaces
  * take logr as a config in ApplySet. Added more logging in applyset.
  * use superset of namespaces and GKs we compute before apply for pruning
  * Add simple tests in the applyset pkg
  * use namespace-scoped resource interface when pruning
  * use force=True when applying in setManaged()
  * Removed un-necessary deepcopy in updateParentLabelsAndAnnotations
* Refactors:
  * add RestMapper to the client-set
  * use Unstrucutred in ApplyableObject instead of interface and forcing it to be unstructured in code
  * minor restruction in processLoad() method
  * Refactor code that was using errors.Join and an array
  * Use ContainsFinalizer
  * Converting unstructured to PartialObjectMetadata for parent in applyset.
* Cleanups:
  * Fix typos in comments, prints etc
  * Remove obseleted comments
  * Make the exported resources strutter less, applyset.ApplySet -> applyset.Set, NewApplySet -> New etc.
  * Fix captilaization for var names. Uid -> UID, ...
  * use consts for labelManager strings
  * remove pure formatting changes in unrelated files to minimize PR changeset
Split out:
  * Remove pkg/metadata/finalizer.go changes and create a separate PR kubernetes-sigs#625
  * move envtest makefile changes to kubernetes-sigs#636
  * removing labeller changes and moving them to kubernetes-sigs#631
  * Fix regression when removing labeller changes:
    `dynamic-controller      Error syncing item, requeuing with rate limit   {"item": {"NamespacedKey":"chainsaw-special-quail/test-instance","GVR":{"Group":"kro.run","Version":"v1alpha1","Resource":"checkinstancecreationsimpledeployments"}}, "error": "failed to setup instance: failed to set finalizer: error getting finalizers: .metadata.finalizers accessor error: [] is of the type []string, expected []interface{}"}`
barney-s added a commit to barney-s/kro that referenced this pull request Aug 20, 2025
* Move applyset/applylib -> pkg/applylib
* Add more docs
  * Add a reference to the applyset KEP in comments
  * Add docs.go and interface docs
* Improvements:
  * remove caching a json marshalled copy of obj
  * Remove name/namespace in PruneObject and instead derive it from object. Also change object type from runtime.Object to unstructured.
  * use fieldmanager config param to remove kro hardcoding in applyset
  * Aggregate pruneErrors and applyErrors into single Errors()
  * add recordPruneObject helper
  * switched from waitGroup to errgroup when collecting objects to prune across namespaces
  * take logr as a config in ApplySet. Added more logging in applyset.
  * use superset of namespaces and GKs we compute before apply for pruning
  * Add simple tests in the applyset pkg
  * use namespace-scoped resource interface when pruning
  * use force=True when applying in setManaged()
  * Removed un-necessary deepcopy in updateParentLabelsAndAnnotations
* Refactors:
  * add RestMapper to the client-set
  * use Unstrucutred in ApplyableObject instead of interface and forcing it to be unstructured in code
  * minor restruction in processLoad() method
  * Refactor code that was using errors.Join and an array
  * Use ContainsFinalizer
  * Converting unstructured to PartialObjectMetadata for parent in applyset.
* Cleanups:
  * Fix typos in comments, prints etc
  * Remove obseleted comments
  * Make the exported resources strutter less, applyset.ApplySet -> applyset.Set, NewApplySet -> New etc.
  * Fix captilaization for var names. Uid -> UID, ...
  * use consts for labelManager strings
  * remove pure formatting changes in unrelated files to minimize PR changeset
Split out:
  * Remove pkg/metadata/finalizer.go changes and create a separate PR kubernetes-sigs#625
  * move envtest makefile changes to kubernetes-sigs#636
  * removing labeller changes and moving them to kubernetes-sigs#631
  * Fix regression when removing labeller changes:
    `dynamic-controller      Error syncing item, requeuing with rate limit   {"item": {"NamespacedKey":"chainsaw-special-quail/test-instance","GVR":{"Group":"kro.run","Version":"v1alpha1","Resource":"checkinstancecreationsimpledeployments"}}, "error": "failed to setup instance: failed to set finalizer: error getting finalizers: .metadata.finalizers accessor error: [] is of the type []string, expected []interface{}"}`
@barney-s barney-s force-pushed the src-labels branch 5 times, most recently from b22ef25 to b38e353 Compare August 21, 2025 21:54
@barney-s barney-s changed the title Have separate instance labellers for different reconcile paths Change KRO labels Aug 21, 2025
barney-s added a commit to barney-s/kro that referenced this pull request Aug 22, 2025
* Move applyset/applylib -> pkg/applylib
* Add more docs
  * Add a reference to the applyset KEP in comments
  * Add docs.go and interface docs
* Improvements:
  * remove caching a json marshalled copy of obj
  * Remove name/namespace in PruneObject and instead derive it from object. Also change object type from runtime.Object to unstructured.
  * use fieldmanager config param to remove kro hardcoding in applyset
  * Aggregate pruneErrors and applyErrors into single Errors()
  * add recordPruneObject helper
  * switched from waitGroup to errgroup when collecting objects to prune across namespaces
  * take logr as a config in ApplySet. Added more logging in applyset.
  * use superset of namespaces and GKs we compute before apply for pruning
  * Add simple tests in the applyset pkg
  * use namespace-scoped resource interface when pruning
  * use force=True when applying in setManaged()
  * Removed un-necessary deepcopy in updateParentLabelsAndAnnotations
  * Add Unit tests to verify pruning and apply logic
  * Fix bugs in pruning logic that missed old namespaces and GKs
* Refactors:
  * add RestMapper to the client-set
  * use Unstrucutred in ApplyableObject instead of interface and forcing it to be unstructured in code
  * minor restruction in processLoad() method
  * Refactor code that was using errors.Join and an array
  * Use ContainsFinalizer
  * Converting unstructured to PartialObjectMetadata for parent in applyset.
* Cleanups:
  * Fix typos in comments, prints etc
  * Remove obseleted comments
  * Make the exported resources strutter less, applyset.ApplySet -> applyset.Set, NewApplySet -> New etc.
  * Fix captilaization for var names. Uid -> UID, ...
  * use consts for labelManager strings
  * remove pure formatting changes in unrelated files to minimize PR changeset
Split out:
  * Remove pkg/metadata/finalizer.go changes and create a separate PR kubernetes-sigs#625
  * move envtest makefile changes to kubernetes-sigs#636
  * removing labeller changes and moving them to kubernetes-sigs#631
  * Fix regression when removing labeller changes:
    `dynamic-controller      Error syncing item, requeuing with rate limit   {"item": {"NamespacedKey":"chainsaw-special-quail/test-instance","GVR":{"Group":"kro.run","Version":"v1alpha1","Resource":"checkinstancecreationsimpledeployments"}}, "error": "failed to setup instance: failed to set finalizer: error getting finalizers: .metadata.finalizers accessor error: [] is of the type []string, expected []interface{}"}`
@k8s-triage-robot
Copy link

Unknown CLA label state. Rechecking for CLA labels.

Send feedback to sig-contributor-experience at kubernetes/community.

/check-cla
/easycla

@k8s-ci-robot k8s-ci-robot added needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Sep 12, 2025
barney-s added a commit to barney-s/kro that referenced this pull request Sep 17, 2025
* Move applyset/applylib -> pkg/applylib
* Add more docs
  * Add a reference to the applyset KEP in comments
  * Add docs.go and interface docs
* Improvements:
  * remove caching a json marshalled copy of obj
  * Remove name/namespace in PruneObject and instead derive it from object. Also change object type from runtime.Object to unstructured.
  * use fieldmanager config param to remove kro hardcoding in applyset
  * Aggregate pruneErrors and applyErrors into single Errors()
  * add recordPruneObject helper
  * switched from waitGroup to errgroup when collecting objects to prune across namespaces
  * take logr as a config in ApplySet. Added more logging in applyset.
  * use superset of namespaces and GKs we compute before apply for pruning
  * Add simple tests in the applyset pkg
  * use namespace-scoped resource interface when pruning
  * use force=True when applying in setManaged()
  * Removed un-necessary deepcopy in updateParentLabelsAndAnnotations
  * Add Unit tests to verify pruning and apply logic
  * Fix bugs in pruning logic that missed old namespaces and GKs
* Refactors:
  * add RestMapper to the client-set
  * use Unstrucutred in ApplyableObject instead of interface and forcing it to be unstructured in code
  * minor restruction in processLoad() method
  * Refactor code that was using errors.Join and an array
  * Use ContainsFinalizer
  * Converting unstructured to PartialObjectMetadata for parent in applyset.
* Cleanups:
  * Fix typos in comments, prints etc
  * Remove obseleted comments
  * Make the exported resources strutter less, applyset.ApplySet -> applyset.Set, NewApplySet -> New etc.
  * Fix captilaization for var names. Uid -> UID, ...
  * use consts for labelManager strings
  * remove pure formatting changes in unrelated files to minimize PR changeset
Split out:
  * Remove pkg/metadata/finalizer.go changes and create a separate PR kubernetes-sigs#625
  * move envtest makefile changes to kubernetes-sigs#636
  * removing labeller changes and moving them to kubernetes-sigs#631
  * Fix regression when removing labeller changes:
    `dynamic-controller      Error syncing item, requeuing with rate limit   {"item": {"NamespacedKey":"chainsaw-special-quail/test-instance","GVR":{"Group":"kro.run","Version":"v1alpha1","Resource":"checkinstancecreationsimpledeployments"}}, "error": "failed to setup instance: failed to set finalizer: error getting finalizers: .metadata.finalizers accessor error: [] is of the type []string, expected []interface{}"}`
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: barney-s, jakobmoellerdev

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

The pull request process is described 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

@k8s-ci-robot k8s-ci-robot added approved Indicates a PR has been approved by an approver from all required OWNERS files. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Sep 17, 2025
barney-s added a commit to barney-s/kro that referenced this pull request Sep 18, 2025
* Move applyset/applylib -> pkg/applylib
* Add more docs
  * Add a reference to the applyset KEP in comments
  * Add docs.go and interface docs
* Improvements:
  * remove caching a json marshalled copy of obj
  * Remove name/namespace in PruneObject and instead derive it from object. Also change object type from runtime.Object to unstructured.
  * use fieldmanager config param to remove kro hardcoding in applyset
  * Aggregate pruneErrors and applyErrors into single Errors()
  * add recordPruneObject helper
  * switched from waitGroup to errgroup when collecting objects to prune across namespaces
  * take logr as a config in ApplySet. Added more logging in applyset.
  * use superset of namespaces and GKs we compute before apply for pruning
  * Add simple tests in the applyset pkg
  * use namespace-scoped resource interface when pruning
  * use force=True when applying in setManaged()
  * Removed un-necessary deepcopy in updateParentLabelsAndAnnotations
  * Add Unit tests to verify pruning and apply logic
  * Fix bugs in pruning logic that missed old namespaces and GKs
* Refactors:
  * add RestMapper to the client-set
  * use Unstrucutred in ApplyableObject instead of interface and forcing it to be unstructured in code
  * minor restruction in processLoad() method
  * Refactor code that was using errors.Join and an array
  * Use ContainsFinalizer
  * Converting unstructured to PartialObjectMetadata for parent in applyset.
* Cleanups:
  * Fix typos in comments, prints etc
  * Remove obseleted comments
  * Make the exported resources strutter less, applyset.ApplySet -> applyset.Set, NewApplySet -> New etc.
  * Fix captilaization for var names. Uid -> UID, ...
  * use consts for labelManager strings
  * remove pure formatting changes in unrelated files to minimize PR changeset
Split out:
  * Remove pkg/metadata/finalizer.go changes and create a separate PR kubernetes-sigs#625
  * move envtest makefile changes to kubernetes-sigs#636
  * removing labeller changes and moving them to kubernetes-sigs#631
  * Fix regression when removing labeller changes:
    `dynamic-controller      Error syncing item, requeuing with rate limit   {"item": {"NamespacedKey":"chainsaw-special-quail/test-instance","GVR":{"Group":"kro.run","Version":"v1alpha1","Resource":"checkinstancecreationsimpledeployments"}}, "error": "failed to setup instance: failed to set finalizer: error getting finalizers: .metadata.finalizers accessor error: [] is of the type []string, expected []interface{}"}`
barney-s added a commit to barney-s/kro that referenced this pull request Sep 25, 2025
* Move applyset/applylib -> pkg/applylib
* Add more docs
  * Add a reference to the applyset KEP in comments
  * Add docs.go and interface docs
* Improvements:
  * remove caching a json marshalled copy of obj
  * Remove name/namespace in PruneObject and instead derive it from object. Also change object type from runtime.Object to unstructured.
  * use fieldmanager config param to remove kro hardcoding in applyset
  * Aggregate pruneErrors and applyErrors into single Errors()
  * add recordPruneObject helper
  * switched from waitGroup to errgroup when collecting objects to prune across namespaces
  * take logr as a config in ApplySet. Added more logging in applyset.
  * use superset of namespaces and GKs we compute before apply for pruning
  * Add simple tests in the applyset pkg
  * use namespace-scoped resource interface when pruning
  * use force=True when applying in setManaged()
  * Removed un-necessary deepcopy in updateParentLabelsAndAnnotations
  * Add Unit tests to verify pruning and apply logic
  * Fix bugs in pruning logic that missed old namespaces and GKs
* Refactors:
  * add RestMapper to the client-set
  * use Unstrucutred in ApplyableObject instead of interface and forcing it to be unstructured in code
  * minor restruction in processLoad() method
  * Refactor code that was using errors.Join and an array
  * Use ContainsFinalizer
  * Converting unstructured to PartialObjectMetadata for parent in applyset.
* Cleanups:
  * Fix typos in comments, prints etc
  * Remove obseleted comments
  * Make the exported resources strutter less, applyset.ApplySet -> applyset.Set, NewApplySet -> New etc.
  * Fix captilaization for var names. Uid -> UID, ...
  * use consts for labelManager strings
  * remove pure formatting changes in unrelated files to minimize PR changeset
Split out:
  * Remove pkg/metadata/finalizer.go changes and create a separate PR kubernetes-sigs#625
  * move envtest makefile changes to kubernetes-sigs#636
  * removing labeller changes and moving them to kubernetes-sigs#631
  * Fix regression when removing labeller changes:
    `dynamic-controller      Error syncing item, requeuing with rate limit   {"item": {"NamespacedKey":"chainsaw-special-quail/test-instance","GVR":{"Group":"kro.run","Version":"v1alpha1","Resource":"checkinstancecreationsimpledeployments"}}, "error": "failed to setup instance: failed to set finalizer: error getting finalizers: .metadata.finalizers accessor error: [] is of the type []string, expected []interface{}"}`
barney-s added a commit to barney-s/kro that referenced this pull request Sep 25, 2025
* Applylib is inspired from:
  * kubectl pkg/cmd/apply/applyset.go
  * kubebuilder-declarative-pattern/applylib
  * Creating a simpler, self-contained version of the library that is purpose built for controllers.
  * Handle pruning and uses server-side apply
* RGD controller changes
  * fix linter warnings for func defn lines being too long
  * Inject restMapper to be passed to instance controllers
* Instance controller changes
  * When patching instance status, use retry-on-conflict loop
  * Since we apply all resolved resources, Join() errors across
    resources (apply/update errors)
  * Add changes to get restMapper and pass it on to applylib
* Instance reconciler changes
  * Refactor reconcileInstance to use Applylib
* Makefile
  * Add target to setup/install envtest
  * Setup envtest, kubebuilder assets for running e2e tests locally
* Remove pkg/controller/instance/delta since we dont compute delta
  locally. We defer it to the server.
* With SSA, we need to be careful about setting field manager
  * different reconciler paths use different managers
  * Introduce source-rgd labels to differenciate b/w parent rgd that
    creates an instance and the source rgd that defines the instance CRD
    * This is useful when we have an RGD creating and instance of
      another RG. Today we have a bug where the parent and the child
      reconcilers overwrite the labels.
* (next steps) lifecycle support in applylib
  * redo externalRef as lifecycle hints
  * decorate lifecycle hint (create or update, no delete)

-----------------------

Addressing review comments:

* Move applyset/applylib -> pkg/applylib
* Add more docs
  * Add a reference to the applyset KEP in comments
  * Add docs.go and interface docs
* Improvements:
  * remove caching a json marshalled copy of obj
  * Remove name/namespace in PruneObject and instead derive it from object. Also change object type from runtime.Object to unstructured.
  * use fieldmanager config param to remove kro hardcoding in applyset
  * Aggregate pruneErrors and applyErrors into single Errors()
  * add recordPruneObject helper
  * switched from waitGroup to errgroup when collecting objects to prune across namespaces
  * take logr as a config in ApplySet. Added more logging in applyset.
  * use superset of namespaces and GKs we compute before apply for pruning
  * Add simple tests in the applyset pkg
  * use namespace-scoped resource interface when pruning
  * use force=True when applying in setManaged()
  * Removed un-necessary deepcopy in updateParentLabelsAndAnnotations
  * Add Unit tests to verify pruning and apply logic
  * Fix bugs in pruning logic that missed old namespaces and GKs
  * Remove callbacks and make code more procedural
  * Make pruning sequential by default
* Refactors:
  * add RestMapper to the client-set
  * use Unstrucutred in ApplyableObject instead of interface and forcing it to be unstructured in code
  * minor restruction in processLoad() method
  * Refactor code that was using errors.Join and an array
  * Use ContainsFinalizer
  * Converting unstructured to PartialObjectMetadata for parent in applyset.
* Cleanups:
  * Fix typos in comments, prints etc
  * Remove obseleted comments
  * Make the exported resources strutter less, applyset.ApplySet -> applyset.Set, NewApplySet -> New etc.
  * Fix captilaization for var names. Uid -> UID, ...
  * use consts for labelManager strings
  * remove pure formatting changes in unrelated files to minimize PR changeset
Split out:
  * Remove pkg/metadata/finalizer.go changes and create a separate PR kubernetes-sigs#625
  * move envtest makefile changes to kubernetes-sigs#636
  * removing labeller changes and moving them to kubernetes-sigs#631
  * Fix regression when removing labeller changes:
    `dynamic-controller      Error syncing item, requeuing with rate limit   {"item": {"NamespacedKey":"chainsaw-special-quail/test-instance","GVR":{"Group":"kro.run","Version":"v1alpha1","Resource":"checkinstancecreationsimpledeployments"}}, "error": "failed to setup instance: failed to set finalizer: error getting finalizers: .metadata.finalizers accessor error: [] is of the type []string, expected []interface{}"}`
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Sep 26, 2025
- Based on proposal: kubernetes-sigs#639
- Move to new labels
- Add deprecate TODO for old labels
- Add new testcase for nested RGD and update existing testcase labels
- Add docs
- Have separate instance labellers for different reconcile paths.
  This is needed when we have RGD2 instance in RGD1 resources.
  Today both paths use the same label resulting in conflict.
  path 1: RGD2.instance created as part of an RGD1 instance reconciliation
  path 2: RGD2.instance reconciled by RGD2 reconciler
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Sep 26, 2025
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. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants