@@ -55,6 +55,12 @@ func (r *RepositoryReconciler) Reconcile(ctx context.Context, req ctrl.Request)
5555
5656 log .Info ("reconciling repository" )
5757
58+ var cachedImageList kuikv1alpha1.CachedImageList
59+ if err := r .List (ctx , & cachedImageList , client.MatchingFields {repositoryOwnerKey : repository .Name }); err != nil && ! apierrors .IsNotFound (err ) {
60+ return ctrl.Result {}, err
61+ }
62+ repository .Status .Images = len (cachedImageList .Items )
63+
5864 if ! repository .ObjectMeta .DeletionTimestamp .IsZero () {
5965 r .UpdateStatus (ctx , & repository , []metav1.Condition {{
6066 Type : typeReadyRepository ,
@@ -64,10 +70,6 @@ func (r *RepositoryReconciler) Reconcile(ctx context.Context, req ctrl.Request)
6470 }})
6571
6672 if controllerutil .ContainsFinalizer (& repository , repositoryFinalizerName ) {
67- var cachedImageList kuikv1alpha1.CachedImageList
68- if err := r .List (ctx , & cachedImageList , client.MatchingFields {repositoryOwnerKey : repository .Name }); err != nil && ! apierrors .IsNotFound (err ) {
69- return ctrl.Result {}, err
70- }
7173
7274 log .Info ("repository is deleting" , "cachedImages" , len (cachedImageList .Items ))
7375 if len (cachedImageList .Items ) > 0 {
@@ -163,6 +165,15 @@ func (r *RepositoryReconciler) SetupWithManager(mgr ctrl.Manager) error {
163165 handler .EnqueueRequestsFromMapFunc (r .repositoryWithDeletingCachedImages ),
164166 builder .WithPredicates (p ),
165167 ).
168+ Watches (
169+ & source.Kind {Type : & kuikv1alpha1.CachedImage {}},
170+ handler .EnqueueRequestsFromMapFunc (requestRepositoryFromCachedImage ),
171+ builder .WithPredicates (predicate.Funcs {
172+ CreateFunc : func (e event.CreateEvent ) bool {
173+ return true
174+ },
175+ }),
176+ ).
166177 Complete (r )
167178}
168179
@@ -174,6 +185,11 @@ func (r *RepositoryReconciler) repositoryWithDeletingCachedImages(obj client.Obj
174185 return nil
175186 }
176187
188+ return requestRepositoryFromCachedImage (cachedImage )
189+ }
190+
191+ func requestRepositoryFromCachedImage (obj client.Object ) []ctrl.Request {
192+ cachedImage := obj .(* kuikv1alpha1.CachedImage )
177193 repositoryName , ok := cachedImage .Labels [kuikv1alpha1 .RepositoryLabelName ]
178194 if ! ok {
179195 return nil
0 commit comments