@@ -500,6 +500,26 @@ func (r *CommonServiceReconciler) mappingToCsRequestForOperandRegistry() handler
500500 }
501501}
502502
503+ func (r * CommonServiceReconciler ) mappingToCsRequestForConfigMap () handler.MapFunc {
504+ return func (object client.Object ) []reconcile.Request {
505+ configMap , ok := object .(* corev1.ConfigMap )
506+ if ! ok {
507+ return nil
508+ }
509+
510+ if configMap .Name == constant .IBMCPPCONFIG && configMap .Namespace == r .Bootstrap .CSData .ServicesNs {
511+ // Trigger reconcile of the master CR when ibm-cpp-config changes
512+ return []reconcile.Request {
513+ {NamespacedName : types.NamespacedName {
514+ Name : constant .MasterCR ,
515+ Namespace : r .Bootstrap .CSData .OperatorNs ,
516+ }},
517+ }
518+ }
519+ return nil
520+ }
521+ }
522+
503523func (r * CommonServiceReconciler ) isODLMManagedSubscription () handler.MapFunc {
504524 return func (object client.Object ) []reconcile.Request {
505525 subscription , ok := object .(* olmv1alpha1.Subscription )
@@ -557,6 +577,20 @@ func (r *CommonServiceReconciler) SetupWithManager(mgr ctrl.Manager) error {
557577 UpdateFunc : func (e event.UpdateEvent ) bool {
558578 return true
559579 },
580+ })).
581+ Watches (
582+ & source.Kind {Type : & corev1.ConfigMap {}},
583+ handler .EnqueueRequestsFromMapFunc (r .mappingToCsRequestForConfigMap ()),
584+ builder .WithPredicates (predicate.Funcs {
585+ CreateFunc : func (e event.CreateEvent ) bool {
586+ return true
587+ },
588+ DeleteFunc : func (e event.DeleteEvent ) bool {
589+ return false // We don't care about deletions
590+ },
591+ UpdateFunc : func (e event.UpdateEvent ) bool {
592+ return true
593+ },
560594 }))
561595 if isOpregAPI , err := r .Bootstrap .CheckCRD (constant .OpregAPIGroupVersion , constant .OpregKind ); err != nil {
562596 klog .Errorf ("Failed to check if OperandRegistry CRD exists: %v" , err )
0 commit comments