diff --git a/cmd/main.go b/cmd/main.go index 2376fe3a9..34cc6119d 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -209,8 +209,9 @@ func main() { currentNamespace := utils.CurrentNamespace() templateReconciler := controller.TemplateReconciler{ - Client: mgr.GetClient(), - SystemNamespace: currentNamespace, + Client: mgr.GetClient(), + CreateManagement: createManagement, + SystemNamespace: currentNamespace, DefaultRegistryConfig: helm.DefaultRegistryConfig{ URL: defaultRegistryURL, RepoType: determinedRepositoryType, diff --git a/internal/controller/release_controller.go b/internal/controller/release_controller.go index 2caa4add0..8f201b3fd 100644 --- a/internal/controller/release_controller.go +++ b/internal/controller/release_controller.go @@ -379,10 +379,7 @@ func (r *ReleaseReconciler) SetupWithManager(mgr ctrl.Manager) error { if err != nil { return err } - // - if !r.CreateManagement { - return nil - } + // There's no Release objects created yet and we need to trigger reconcile initChannel := make(chan event.GenericEvent, 1) initChannel <- event.GenericEvent{Object: &kcm.Release{}} diff --git a/internal/controller/template_controller.go b/internal/controller/template_controller.go index 706bdb9c0..c4c11b751 100644 --- a/internal/controller/template_controller.go +++ b/internal/controller/template_controller.go @@ -51,6 +51,7 @@ type TemplateReconciler struct { SystemNamespace string DefaultRegistryConfig helm.DefaultRegistryConfig + CreateManagement bool } type ClusterTemplateReconciler struct { @@ -163,12 +164,11 @@ func (r *ProviderTemplateReconciler) Reconcile(ctx context.Context, req ctrl.Req l.Error(err, "Failed to get ProviderTemplate") return ctrl.Result{}, err } - management, err := r.getManagement(ctx, providerTemplate) - if err != nil { + if r.CreateManagement && err != nil { return ctrl.Result{}, err } - if !management.DeletionTimestamp.IsZero() { + if management != nil && !management.DeletionTimestamp.IsZero() { l.Info("Management is being deleted, skipping ProviderTemplate reconciliation") return ctrl.Result{}, nil }