Skip to content

Commit

Permalink
controllers: trigger reconcile for claims when the desired hash changes
Browse files Browse the repository at this point in the history
add a watch for storageClient annotation change in the claim controller

Signed-off-by: Rewant Soni <[email protected]>
  • Loading branch information
rewantsoni committed Feb 6, 2025
1 parent 820dc23 commit 9d3efba
Showing 1 changed file with 22 additions and 2 deletions.
24 changes: 22 additions & 2 deletions internal/controller/storageclaim_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import (
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/builder"
"sigs.k8s.io/controller-runtime/pkg/cache"
Expand Down Expand Up @@ -130,6 +131,24 @@ func (r *StorageClaimReconciler) SetupWithManager(mgr ctrl.Manager) error {
}
}

// Reconcile the OperatorConfigMap object when the cluster's version object is updated
enqueueStorageClaimRequest := handler.EnqueueRequestsFromMapFunc(
func(_ context.Context, c client.Object) []reconcile.Request {
return []reconcile.Request{
{
NamespacedName: types.NamespacedName{
Name: fmt.Sprintf("%s-ceph-rbd", c.GetName()),
},
},
{
NamespacedName: types.NamespacedName{
Name: fmt.Sprintf("%s-cephfs", c.GetName()),
},
},
}
},
)

generationChangePredicate := predicate.GenerationChangedPredicate{}
bldr := ctrl.NewControllerManagedBy(mgr).
For(&v1alpha1.StorageClaim{}, builder.WithPredicates(generationChangePredicate)).
Expand All @@ -139,7 +158,7 @@ func (r *StorageClaimReconciler) SetupWithManager(mgr ctrl.Manager) error {
Owns(&csiopv1a1.ClientProfile{}, builder.WithPredicates(generationChangePredicate)).
Watches(
&extv1.CustomResourceDefinition{},
&handler.EnqueueRequestForObject{},
enqueueStorageClaimRequest,
builder.WithPredicates(
utils.NamePredicate(VolumeGroupSnapshotClassCrdName),
utils.EventTypePredicate(
Expand All @@ -150,7 +169,8 @@ func (r *StorageClaimReconciler) SetupWithManager(mgr ctrl.Manager) error {
),
),
builder.OnlyMetadata,
)
).
Watches(&v1alpha1.StorageClient{}, enqueueStorageClaimRequest, builder.WithPredicates(predicate.AnnotationChangedPredicate{}))
if r.AvailableCrds[VolumeGroupSnapshotClassCrdName] {
bldr = bldr.Owns(&groupsnapapi.VolumeGroupSnapshotClass{})
}
Expand Down

0 comments on commit 9d3efba

Please sign in to comment.