@@ -19,6 +19,7 @@ import (
1919 corev1 "k8s.io/api/core/v1"
2020 apierrors "k8s.io/apimachinery/pkg/api/errors"
2121 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
22+ "k8s.io/apimachinery/pkg/runtime/schema"
2223 apitypes "k8s.io/apimachinery/pkg/types"
2324 utilerrors "k8s.io/apimachinery/pkg/util/errors"
2425 "k8s.io/client-go/discovery"
@@ -94,6 +95,7 @@ type ReconcilerOptions struct {
9495type Reconciler [T Component ] struct {
9596 name string
9697 id string
98+ groupVersionKind schema.GroupVersionKind
9799 client cluster.Client
98100 resourceGenerator manifests.Generator
99101 statusAnalyzer status.StatusAnalyzer
@@ -152,18 +154,14 @@ func (r *Reconciler[T]) Reconcile(ctx context.Context, req ctrl.Request) (result
152154
153155 // fetch reconciled object
154156 component := newComponent [T ]()
155- gvk , err := apiutil .GVKForObject (component , r .client .Scheme ())
156- if err != nil {
157- return ctrl.Result {}, errors .Wrap (err , "error getting type metadata for component" )
158- }
159157 if err := r .client .Get (ctx , req .NamespacedName , component ); err != nil {
160158 if apierrors .IsNotFound (err ) {
161159 log .V (1 ).Info ("not found; ignoring" )
162160 return ctrl.Result {}, nil
163161 }
164162 return ctrl.Result {}, errors .Wrap (err , "unexpected get error" )
165163 }
166- component .GetObjectKind ().SetGroupVersionKind (gvk )
164+ component .GetObjectKind ().SetGroupVersionKind (r . groupVersionKind )
167165
168166 // convenience accessors
169167 status := component .GetStatus ()
@@ -482,6 +480,12 @@ func (r *Reconciler[T]) SetupWithManagerAndBuilder(mgr ctrl.Manager, blder *ctrl
482480 }
483481
484482 component := newComponent [T ]()
483+
484+ r .groupVersionKind , err = apiutil .GVKForObject (component , r .client .Scheme ())
485+ if err != nil {
486+ return errors .Wrap (err , "error getting type metadata for component" )
487+ }
488+
485489 if err := blder .
486490 For (component , builder .WithPredicates (predicate .Or (predicate.GenerationChangedPredicate {}, predicate.AnnotationChangedPredicate {}))).
487491 Complete (r ); err != nil {
0 commit comments