diff --git a/controllers/gitrepository_controller.go b/controllers/gitrepository_controller.go index b27ac0b0..072ecfa4 100644 --- a/controllers/gitrepository_controller.go +++ b/controllers/gitrepository_controller.go @@ -101,7 +101,7 @@ func (r *GitRepositoryReconciler) Reconcile(req ctrl.Request) (ctrl.Result, erro func (r *GitRepositoryReconciler) SetupWithManager(mgr ctrl.Manager) error { return ctrl.NewControllerManagedBy(mgr). For(&sourcev1.GitRepository{}). - WithEventFilter(RepositoryChangePredicate{}). + WithEventFilter(SourceChangePredicate{}). WithEventFilter(predicate.Funcs{ DeleteFunc: func(e event.DeleteEvent) bool { gvk, err := apiutil.GVKForObject(e.Object, r.Scheme) diff --git a/controllers/helmchart_controller.go b/controllers/helmchart_controller.go index 6d48a4ab..3736d7a3 100644 --- a/controllers/helmchart_controller.go +++ b/controllers/helmchart_controller.go @@ -77,6 +77,7 @@ func (r *HelmChartReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) { // try to remove old artifacts r.gc(chart) + // get referenced chart repository repository, err := r.chartRepository(ctx, chart) if err != nil { chart = sourcev1.HelmChartNotReady(*chart.DeepCopy(), sourcev1.ChartPullFailedReason, err.Error()) @@ -108,7 +109,7 @@ func (r *HelmChartReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) { func (r *HelmChartReconciler) SetupWithManager(mgr ctrl.Manager) error { return ctrl.NewControllerManagedBy(mgr). For(&sourcev1.HelmChart{}). - WithEventFilter(RepositoryChangePredicate{}). + WithEventFilter(SourceChangePredicate{}). WithEventFilter(predicate.Funcs{ DeleteFunc: func(e event.DeleteEvent) bool { gvk, err := apiutil.GVKForObject(e.Object, r.Scheme) @@ -236,6 +237,7 @@ func (r *HelmChartReconciler) chartRepository(ctx context.Context, chart sourcev err := r.Client.Get(ctx, name, &repository) if err != nil { err = fmt.Errorf("failed to get HelmRepository '%s': %w", name, err) + return repository, err } if repository.Status.Artifact == nil { diff --git a/controllers/helmrepository_controller.go b/controllers/helmrepository_controller.go index d8cedca4..a7880652 100644 --- a/controllers/helmrepository_controller.go +++ b/controllers/helmrepository_controller.go @@ -97,7 +97,7 @@ func (r *HelmRepositoryReconciler) Reconcile(req ctrl.Request) (ctrl.Result, err func (r *HelmRepositoryReconciler) SetupWithManager(mgr ctrl.Manager) error { return ctrl.NewControllerManagedBy(mgr). For(&sourcev1.HelmRepository{}). - WithEventFilter(RepositoryChangePredicate{}). + WithEventFilter(SourceChangePredicate{}). WithEventFilter(predicate.Funcs{ DeleteFunc: func(e event.DeleteEvent) bool { gvk, err := apiutil.GVKForObject(e.Object, r.Scheme) diff --git a/controllers/predicate.go b/controllers/predicate.go index aee7e2af..5024a12a 100644 --- a/controllers/predicate.go +++ b/controllers/predicate.go @@ -21,12 +21,12 @@ import ( "sigs.k8s.io/controller-runtime/pkg/predicate" ) -type RepositoryChangePredicate struct { +type SourceChangePredicate struct { predicate.Funcs } // Update implements default UpdateEvent filter for validating repository change -func (RepositoryChangePredicate) Update(e event.UpdateEvent) bool { +func (SourceChangePredicate) Update(e event.UpdateEvent) bool { if e.MetaOld == nil || e.MetaNew == nil { // ignore objects without metadata return false