@@ -26,7 +26,7 @@ import (
2626// +kubebuilder:rbac:groups=pullup.dev,resources=httpwebhooks,verbs=get;list;watch
2727// +kubebuilder:rbac:groups=pullup.dev,resources=githubwebhooks,verbs=get;list;watch
2828
29- const ownerRefUIDField = "metadata.ownerReferences.uid "
29+ const webhookRefField = "spec.webhookRef "
3030
3131var ErrObjectNotWebhook = errors .New ("object is not a webhook" )
3232
@@ -54,11 +54,11 @@ type BetaReconcilerFactory struct {
5454}
5555
5656func NewBetaReconcilerFactory (conf BetaReconcilerConfig , mgr manager.Manager ) (* BetaReconcilerFactory , error ) {
57- err := mgr .GetFieldIndexer ().IndexField (context .Background (), & v1beta1.ResourceTemplate {}, ownerRefUIDField , func (obj runtime.Object ) []string {
57+ err := mgr .GetFieldIndexer ().IndexField (context .Background (), & v1beta1.ResourceTemplate {}, webhookRefField , func (obj runtime.Object ) []string {
5858 var result []string
5959
60- for _ , ref := range obj .(* v1beta1.ResourceTemplate ).OwnerReferences {
61- result = append (result , string (ref . UID ))
60+ if ref := obj .(* v1beta1.ResourceTemplate ).Spec . WebhookRef ; ref != nil {
61+ result = append (result , objectRefString (ref ))
6262 }
6363
6464 return result
@@ -113,9 +113,15 @@ func (r *BetaReconciler) Reconcile(req reconcile.Request) (reconcile.Result, err
113113 return reconcile.Result {}, ErrObjectNotWebhook
114114 }
115115
116+ apiVersion , kind := webhook .GetObjectKind ().GroupVersionKind ().ToAPIVersionAndKind ()
117+
116118 list := new (v1beta1.ResourceTemplateList )
117119 err := r .Client .List (ctx , list , client .InNamespace (webhook .GetNamespace ()), client .MatchingFields (map [string ]string {
118- ownerRefUIDField : string (webhook .GetUID ()),
120+ webhookRefField : objectRefString (& v1beta1.ObjectReference {
121+ APIVersion : apiVersion ,
122+ Kind : kind ,
123+ Name : webhook .GetName (),
124+ }),
119125 }))
120126 if err != nil {
121127 return reconcile.Result {Requeue : true }, fmt .Errorf ("failed to list resource templates: %w" , err )
@@ -179,3 +185,7 @@ func (r *BetaReconciler) patchResource(ctx context.Context, webhook hookutil.Web
179185 Reason : ReasonPatched ,
180186 }
181187}
188+
189+ func objectRefString (ref * v1beta1.ObjectReference ) string {
190+ return fmt .Sprintf ("apiVersion=%s, kind=%s, name=%s" , ref .APIVersion , ref .Kind , ref .Name )
191+ }
0 commit comments