@@ -20,14 +20,11 @@ import (
2020
2121 "github.com/go-logr/logr"
2222 extv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
23- "k8s.io/apimachinery/pkg/api/meta"
24- "k8s.io/apimachinery/pkg/types"
2523 ctrl "sigs.k8s.io/controller-runtime"
2624 "sigs.k8s.io/controller-runtime/pkg/builder"
2725 "sigs.k8s.io/controller-runtime/pkg/client"
2826 ctrlrtcontroller "sigs.k8s.io/controller-runtime/pkg/controller"
2927 "sigs.k8s.io/controller-runtime/pkg/event"
30- "sigs.k8s.io/controller-runtime/pkg/handler"
3128 "sigs.k8s.io/controller-runtime/pkg/predicate"
3229 "sigs.k8s.io/controller-runtime/pkg/reconcile"
3330
@@ -109,50 +106,18 @@ func (r *ResourceGraphDefinitionReconciler) SetupWithManager(mgr ctrl.Manager) e
109106 MaxConcurrentReconciles : r .maxConcurrentReconciles ,
110107 },
111108 ).
112- WatchesMetadata (
113- & extv1.CustomResourceDefinition {},
114- handler .EnqueueRequestsFromMapFunc (r .findRGDsForCRD ),
115- builder .WithPredicates (predicate.Funcs {
116- UpdateFunc : func (e event.UpdateEvent ) bool {
117- return true
118- },
119- CreateFunc : func (e event.CreateEvent ) bool {
120- return false
121- },
122- DeleteFunc : func (e event.DeleteEvent ) bool {
123- return false
124- },
125- }),
126- ).
127- Complete (reconcile .AsReconciler [* v1alpha1.ResourceGraphDefinition ](mgr .GetClient (), r ))
128- }
129-
130- // findRGDsForCRD returns a list of reconcile requests for the ResourceGraphDefinition
131- // that owns the given CRD. It is used to trigger reconciliation when a CRD is updated.
132- func (r * ResourceGraphDefinitionReconciler ) findRGDsForCRD (ctx context.Context , obj client.Object ) []reconcile.Request {
133- mobj , err := meta .Accessor (obj )
134- if err != nil {
135- return nil
136- }
137-
138- // Check if the CRD is owned by a ResourceGraphDefinition
139- if ! metadata .IsKROOwned (mobj ) {
140- return nil
141- }
142-
143- rgdName , ok := mobj .GetLabels ()[metadata .ResourceGraphDefinitionNameLabel ]
144- if ! ok {
145- return nil
146- }
147-
148- // Return a reconcile request for the corresponding RGD
149- return []reconcile.Request {
150- {
151- NamespacedName : types.NamespacedName {
152- Name : rgdName ,
109+ Owns (& extv1.CustomResourceDefinition {}, builder .WithPredicates (predicate.Funcs {
110+ UpdateFunc : func (e event.UpdateEvent ) bool {
111+ return true
153112 },
154- },
155- }
113+ CreateFunc : func (e event.CreateEvent ) bool {
114+ return false
115+ },
116+ DeleteFunc : func (e event.DeleteEvent ) bool {
117+ return false
118+ },
119+ }), builder .OnlyMetadata ).
120+ Complete (reconcile .AsReconciler [* v1alpha1.ResourceGraphDefinition ](mgr .GetClient (), r ))
156121}
157122
158123func (r * ResourceGraphDefinitionReconciler ) Reconcile (ctx context.Context , o * v1alpha1.ResourceGraphDefinition ) (ctrl.Result , error ) {
0 commit comments