Skip to content

Commit

Permalink
Add watching on Secrets in drcluster_controller
Browse files Browse the repository at this point in the history
Signed-off-by: Elena Gershkovich <[email protected]>
  • Loading branch information
ELENAGER committed Dec 21, 2023
1 parent 3f6f4a8 commit 5ce49d6
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions controllers/drcluster_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,10 @@ func (r *DRClusterReconciler) SetupWithManager(mgr ctrl.Manager) error {
Watches(&source.Kind{Type: &ramen.DRPlacementControl{}}, drpcMapFun, builder.WithPredicates(drpcPred())).
Watches(&source.Kind{Type: &ocmworkv1.ManifestWork{}}, mwMapFun, builder.WithPredicates(mwPred)).
Watches(&source.Kind{Type: &viewv1beta1.ManagedClusterView{}}, mcvMapFun, builder.WithPredicates(mcvPred)).
Watches(&source.Kind{Type: &corev1.Secret{}},
handler.EnqueueRequestsFromMapFunc(r.drClusterSecretMapFunc),
builder.WithPredicates(util.CreateOrDeleteOrResourceVersionUpdatePredicate{}),
).
Complete(r)
}

Expand All @@ -141,6 +145,24 @@ func (r *DRClusterReconciler) drClusterConfigMapMapFunc(configMap client.Object)
return requests
}

func (r *DRClusterReconciler) drClusterSecretMapFunc(secret client.Object) []reconcile.Request {
if secret.GetNamespace() != NamespaceName() {
return []reconcile.Request{}
}

drcusters := &ramen.DRClusterList{}
if err := r.Client.List(context.TODO(), drcusters); err != nil {
return []reconcile.Request{}
}

requests := make([]reconcile.Request, len(drcusters.Items))
for i, drcluster := range drcusters.Items {
requests[i].Name = drcluster.GetName()
}

return requests
}

// drpcPred watches for updates to the DRPC resource and checks if it requires an appropriate DRCluster reconcile
func drpcPred() predicate.Funcs {
drpcPredicate := predicate.Funcs{
Expand Down Expand Up @@ -263,6 +285,7 @@ func filterDRClusterMCV(mcv *viewv1beta1.ManagedClusterView) []ctrl.Request {
// +kubebuilder:rbac:groups=apps.open-cluster-management.io,resources=placementrules,verbs=get;list;watch
// +kubebuilder:rbac:groups=cluster.open-cluster-management.io,resources=placements,verbs=get;list;watch
// +kubebuilder:rbac:groups=argoproj.io,resources=applicationsets,verbs=get;list;watch
// +kubebuilder:rbac:groups="",resources=secrets,verbs=list;watch
// +kubebuilder:rbac:groups="",resources=configmaps,verbs=list;watch

func (r *DRClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
Expand Down

0 comments on commit 5ce49d6

Please sign in to comment.