diff --git a/controllers/subscription_controller.go b/controllers/subscription_controller.go index 6f64a2b3..90bc59ea 100644 --- a/controllers/subscription_controller.go +++ b/controllers/subscription_controller.go @@ -32,6 +32,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/event" "sigs.k8s.io/controller-runtime/pkg/handler" "sigs.k8s.io/controller-runtime/pkg/log" + "sigs.k8s.io/controller-runtime/pkg/manager" "sigs.k8s.io/controller-runtime/pkg/predicate" "sigs.k8s.io/controller-runtime/pkg/reconcile" @@ -290,6 +291,22 @@ func (r *SubscriptionReconciler) SetupWithManager(mgr ctrl.Manager) error { }, ) + err := mgr.Add(manager.RunnableFunc(func(ctx context.Context) error { + + odfDepsSub := GetStorageClusterSubscriptions()[0] + + if odfDepsSub.Spec.Package != OdfDepsSubscriptionPackage { + panic("odfDepsSub variable is expected to contain the 'odf-dependencies' subscription. " + + "Ensure the 'odf-dependencies' subscription indexed at 0.") + } + + return EnsureDesiredSubscription(r.Client, odfDepsSub) + + })) + if err != nil { + return err + } + return ctrl.NewControllerManagedBy(mgr). For(&operatorv1alpha1.Subscription{}, builder.WithPredicates(generationChangedPredicate, subscriptionPredicate)). diff --git a/controllers/subscriptions.go b/controllers/subscriptions.go index 9bd42ec1..11fe68c3 100644 --- a/controllers/subscriptions.go +++ b/controllers/subscriptions.go @@ -618,6 +618,7 @@ func GetStorageClusterSubscriptions() []*operatorv1alpha1.Subscription { }, } + // Do not change the inxex of odfDepsSubscription. The 0 index is being used to create this subscription while starting return []*operatorv1alpha1.Subscription{odfDepsSubscription, ocsSubscription, rookSubscription, noobaaSubscription, csiAddonsSubscription, cephCsiSubscription, ocsClientSubscription, prometheusSubscription, recipeSubscription} }