This is a backport issue for #4275, automatically created via GitHub Actions workflow initiated by @0xavi0
Original issue body:
This was reported in #4183 and confirmed.
The Bundle reconciler is filtering its requests using:
WithEventFilter(sharding.FilterByShardID(r.ShardID))
However, a Watches function is also being used, which monitors changes in Clusters and retrieves the Bundles that are deployed in those Clusters.
In that case, the request is being enqueued without filtering by ShardID, which can lead to a controller without an assigned ShardID processing that request.
More controllers might be affected by this.