Skip to content

Commit 2fb1fc8

Browse files
author
Arvind Thirumurugan
committed
use uncached reader in eviction controller
1 parent a9945c6 commit 2fb1fc8

File tree

5 files changed

+54
-49
lines changed

5 files changed

+54
-49
lines changed

cmd/hubagent/workload/setup.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,8 @@ func SetupControllers(ctx context.Context, wg *sync.WaitGroup, mgr ctrl.Manager,
229229
}
230230
klog.Info("Setting up cluster resource placement eviction controller")
231231
if err := (&clusterresourceplacementeviction.Reconciler{
232-
Client: mgr.GetClient(),
232+
Client: mgr.GetClient(),
233+
UncachedReader: mgr.GetAPIReader(),
233234
}).SetupWithManager(mgr); err != nil {
234235
klog.ErrorS(err, "Unable to set up cluster resource placement eviction controller")
235236
return err

pkg/controllers/clusterresourceplacementeviction/controller.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ import (
3131
// Reconciler reconciles a ClusterResourcePlacementEviction object.
3232
type Reconciler struct {
3333
client.Client
34+
// UncachedReader is only used to read disruption budget objects directly from the API server to ensure we can enforce the disruption budget for eviction.
35+
UncachedReader client.Reader
3436
}
3537

3638
// Reconcile triggers a single eviction reconcile round.
@@ -186,7 +188,7 @@ func (r *Reconciler) executeEviction(ctx context.Context, validationResult *evic
186188
}
187189

188190
var db placementv1alpha1.ClusterResourcePlacementDisruptionBudget
189-
if err := r.Client.Get(ctx, types.NamespacedName{Name: crp.Name}, &db); err != nil {
191+
if err := r.UncachedReader.Get(ctx, types.NamespacedName{Name: crp.Name}, &db); err != nil {
190192
if k8serrors.IsNotFound(err) {
191193
if err = r.deleteClusterResourceBinding(ctx, evictionTargetBinding); err != nil {
192194
return err

pkg/controllers/clusterresourceplacementeviction/controller_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,8 @@ func TestExecuteEviction(t *testing.T) {
625625
WithObjects(objects...).
626626
Build()
627627
r := Reconciler{
628-
Client: fakeClient,
628+
Client: fakeClient,
629+
UncachedReader: fakeClient,
629630
}
630631
gotErr := r.executeEviction(ctx, tc.validationResult, tc.eviction)
631632
gotExecutedCondition := tc.eviction.GetCondition(string(placementv1alpha1.PlacementEvictionConditionTypeExecuted))

pkg/controllers/clusterresourceplacementeviction/suite_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@ var _ = BeforeSuite(func() {
8484
Expect(err).Should(Succeed())
8585

8686
err = (&Reconciler{
87-
Client: k8sClient,
87+
Client: k8sClient,
88+
UncachedReader: mgr.GetAPIReader(),
8889
}).SetupWithManager(mgr)
8990
Expect(err).Should(Succeed())
9091

0 commit comments

Comments
 (0)