fix: skip GC for ManifestWorks managed by ManifestWorkReplicaSet (#1299)

Skip garbage collection for ManifestWorks that have the
ManifestWorkReplicaSet controller label, as these should be
managed exclusively by the ManifestWorkReplicaSet controller.

Changes:
- Fix logic bug in controller to properly check for ReplicaSet label
- Add unit tests for label-based GC skip behavior
- Add integration test to verify GC skip for ReplicaSet-managed works

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Signed-off-by: Jian Qiu <jqiu@redhat.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Jian Qiu
2025-12-16 16:56:07 +08:00
committed by GitHub
parent c4ced95d93
commit 78daf0d2ae
65 changed files with 4588 additions and 127 deletions

View File

@@ -24,6 +24,7 @@ import (
"open-cluster-management.io/sdk-go/pkg/basecontroller/events"
"open-cluster-management.io/sdk-go/pkg/basecontroller/factory"
cloudeventsaddon "open-cluster-management.io/sdk-go/pkg/cloudevents/clients/addon"
cloudeventsaddonv1alpha1 "open-cluster-management.io/sdk-go/pkg/cloudevents/clients/addon/v1alpha1"
cloudeventscluster "open-cluster-management.io/sdk-go/pkg/cloudevents/clients/cluster"
cloudeventscsr "open-cluster-management.io/sdk-go/pkg/cloudevents/clients/csr"
cloudeventsevent "open-cluster-management.io/sdk-go/pkg/cloudevents/clients/event"
@@ -142,7 +143,7 @@ func (d *GRPCDriver) BuildClients(ctx context.Context, secretOption register.Sec
ctx,
cloudeventsoptions.NewGenericClientOptions(
config,
cloudeventsaddon.NewManagedClusterAddOnCodec(),
cloudeventsaddonv1alpha1.NewManagedClusterAddOnCodec(),
secretOption.ClusterName,
).WithClusterName(secretOption.ClusterName).WithClientWatcherStore(addonWatchStore))
if err != nil {