Skip to content

Commit 8e4639b

Browse files
committed
update
1 parent 272ecaa commit 8e4639b

12 files changed

+20
-65
lines changed

controllers/remote/cluster_cache_tracker.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -325,10 +325,12 @@ func (t *ClusterCacheTracker) newClusterAccessor(ctx context.Context, cluster cl
325325
cfg: config,
326326
})
327327

328-
delegatingClient, err := client.NewDelegatingClient(client.NewDelegatingClientInput{
329-
CacheReader: cache,
330-
Client: c,
331-
UncachedObjects: t.clientUncachedObjects,
328+
// FIXME(sbueringer): double check: https://github.com/kubernetes-sigs/controller-runtime/pull/2150/files
329+
delegatingClient, err := client.New(config, client.Options{
330+
Cache: &client.CacheOptions{
331+
Reader: cache,
332+
DisableFor: t.clientUncachedObjects,
333+
},
332334
})
333335
if err != nil {
334336
return nil, err
@@ -371,7 +373,13 @@ func (t *ClusterCacheTracker) runningOnWorkloadCluster(ctx context.Context, c cl
371373
// createClient creates a client and a mapper based on a rest.Config.
372374
func (t *ClusterCacheTracker) createClient(config *rest.Config, cluster client.ObjectKey) (client.Client, meta.RESTMapper, error) {
373375
// Create a mapper for it
374-
mapper, err := apiutil.NewDynamicRESTMapper(config)
376+
// FIXME(sbueringer): double check if we use one single http client across all calls.
377+
httpClient, err := rest.HTTPClientFor(config)
378+
if err != nil {
379+
return nil, nil, errors.Wrapf(err, "error creating http client for remote cluster %q", cluster.String())
380+
}
381+
382+
mapper, err := apiutil.NewDynamicRESTMapper(config, httpClient)
375383
if err != nil {
376384
return nil, nil, errors.Wrapf(err, "error creating dynamic rest mapper for remote cluster %q", cluster.String())
377385
}

exp/internal/controllers/machinepool_controller.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,8 @@ import (
2323
"github.com/pkg/errors"
2424
corev1 "k8s.io/api/core/v1"
2525
apierrors "k8s.io/apimachinery/pkg/api/errors"
26-
"k8s.io/apimachinery/pkg/api/meta"
2726
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2827
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
29-
"k8s.io/apimachinery/pkg/runtime"
3028
kerrors "k8s.io/apimachinery/pkg/util/errors"
3129
"k8s.io/client-go/tools/record"
3230
"k8s.io/klog/v2"
@@ -72,8 +70,6 @@ type MachinePoolReconciler struct {
7270
recorder record.EventRecorder
7371
externalWatchers sync.Map
7472
cache cache.Cache
75-
scheme *runtime.Scheme
76-
mapper meta.RESTMapper
7773
}
7874

7975
func (r *MachinePoolReconciler) SetupWithManager(ctx context.Context, mgr ctrl.Manager, options controller.Options) error {
@@ -106,8 +102,6 @@ func (r *MachinePoolReconciler) SetupWithManager(ctx context.Context, mgr ctrl.M
106102
r.controller = c
107103
r.recorder = mgr.GetEventRecorderFor("machinepool-controller")
108104
r.cache = mgr.GetCache()
109-
r.scheme = mgr.GetScheme()
110-
r.mapper = mgr.GetRESTMapper()
111105
return nil
112106
}
113107

exp/internal/controllers/machinepool_controller_phases.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ func (r *MachinePoolReconciler) reconcileExternal(ctx context.Context, cluster *
154154
log.Info("Adding watcher on external object", "groupVersionKind", obj.GroupVersionKind())
155155
err := r.controller.Watch(
156156
source.Kind(r.cache, obj),
157-
handler.EnqueueRequestForOwner(r.scheme, r.mapper, &expv1.MachinePool{}),
157+
handler.EnqueueRequestForOwner(r.Client.Scheme(), r.Client.RESTMapper(), &expv1.MachinePool{}),
158158
)
159159
if err != nil {
160160
r.externalWatchers.Delete(obj.GroupVersionKind().String())

internal/controllers/cluster/cluster_controller.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,6 @@ type Reconciler struct {
7272

7373
recorder record.EventRecorder
7474
externalTracker external.ObjectTracker
75-
scheme *runtime.Scheme
76-
mapper meta.RESTMapper
7775
}
7876

7977
func (r *Reconciler) SetupWithManager(ctx context.Context, mgr ctrl.Manager, options controller.Options) error {
@@ -96,8 +94,6 @@ func (r *Reconciler) SetupWithManager(ctx context.Context, mgr ctrl.Manager, opt
9694
Controller: controller,
9795
Cache: mgr.GetCache(),
9896
}
99-
r.scheme = mgr.GetScheme()
100-
r.mapper = mgr.GetRESTMapper()
10197
return nil
10298
}
10399

internal/controllers/cluster/cluster_controller_phases.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ func (r *Reconciler) reconcileExternal(ctx context.Context, cluster *clusterv1.C
111111
}
112112

113113
// Ensure we add a watcher to the external object.
114-
if err := r.externalTracker.Watch(log, obj, handler.EnqueueRequestForOwner(r.scheme, r.mapper, &clusterv1.Cluster{})); err != nil {
114+
if err := r.externalTracker.Watch(log, obj, handler.EnqueueRequestForOwner(r.Client.Scheme(), r.Client.RESTMapper(), &clusterv1.Cluster{})); err != nil {
115115
return external.ReconcileOutput{}, err
116116
}
117117

internal/controllers/cluster/cluster_controller_phases_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,6 @@ func TestClusterReconcilePhases(t *testing.T) {
137137
}
138138
r := &Reconciler{
139139
Client: c,
140-
scheme: c.Scheme(),
141-
mapper: c.RESTMapper(),
142140
}
143141

144142
res, err := r.reconcileInfrastructure(ctx, tt.cluster)

internal/controllers/clusterclass/suite_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
"k8s.io/component-base/featuregate"
3434
ctrl "sigs.k8s.io/controller-runtime"
3535
"sigs.k8s.io/controller-runtime/pkg/client"
36+
"sigs.k8s.io/controller-runtime/pkg/config"
3637
"sigs.k8s.io/controller-runtime/pkg/controller"
3738

3839
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
@@ -79,7 +80,7 @@ func TestMain(m *testing.M) {
7980
Client: mgr.GetClient(),
8081
APIReader: mgr.GetAPIReader(),
8182
UnstructuredCachingClient: unstructuredCachingClient,
82-
}).SetupWithManager(ctx, mgr, controller.Options{MaxConcurrentReconciles: 5}); err != nil {
83+
}).SetupWithManager(ctx, mgr, controller.Options{Controller: config.Controller{MaxConcurrentReconciles: 5}}); err != nil {
8384
panic(fmt.Sprintf("unable to create clusterclass reconciler: %v", err))
8485
}
8586
}

internal/controllers/machine/machine_controller.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@ import (
2424
"github.com/pkg/errors"
2525
corev1 "k8s.io/api/core/v1"
2626
apierrors "k8s.io/apimachinery/pkg/api/errors"
27-
"k8s.io/apimachinery/pkg/api/meta"
2827
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2928
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
30-
"k8s.io/apimachinery/pkg/runtime"
3129
"k8s.io/apimachinery/pkg/types"
3230
kerrors "k8s.io/apimachinery/pkg/util/errors"
3331
"k8s.io/apimachinery/pkg/util/wait"
@@ -98,8 +96,6 @@ type Reconciler struct {
9896
// the controller that need SSA as the current test setup does not support SSA.
9997
// This flag should be dropped after the tests are migrated to envtest.
10098
disableNodeLabelSync bool
101-
scheme *runtime.Scheme
102-
mapper meta.RESTMapper
10399
}
104100

105101
func (r *Reconciler) SetupWithManager(ctx context.Context, mgr ctrl.Manager, options controller.Options) error {
@@ -144,8 +140,6 @@ func (r *Reconciler) SetupWithManager(ctx context.Context, mgr ctrl.Manager, opt
144140
Controller: controller,
145141
Cache: mgr.GetCache(),
146142
}
147-
r.scheme = mgr.GetScheme()
148-
r.mapper = mgr.GetRESTMapper()
149143
return nil
150144
}
151145

internal/controllers/machine/machine_controller_phases.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ func (r *Reconciler) reconcileExternal(ctx context.Context, cluster *clusterv1.C
142142
}
143143

144144
// Ensure we add a watcher to the external object.
145-
if err := r.externalTracker.Watch(log, obj, handler.EnqueueRequestForOwner(r.scheme, r.mapper, &clusterv1.Machine{})); err != nil {
145+
if err := r.externalTracker.Watch(log, obj, handler.EnqueueRequestForOwner(r.Client.Scheme(), r.Client.RESTMapper(), &clusterv1.Machine{})); err != nil {
146146
return external.ReconcileOutput{}, err
147147
}
148148

internal/controllers/machine/machine_controller_phases_test.go

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,6 @@ func TestReconcileMachinePhases(t *testing.T) {
131131
r := &Reconciler{
132132
disableNodeLabelSync: true,
133133
Client: c,
134-
scheme: c.Scheme(),
135-
mapper: c.RESTMapper(),
136134
}
137135

138136
res, err := r.reconcile(ctx, defaultCluster, machine)
@@ -174,8 +172,6 @@ func TestReconcileMachinePhases(t *testing.T) {
174172
r := &Reconciler{
175173
disableNodeLabelSync: true,
176174
Client: c,
177-
scheme: c.Scheme(),
178-
mapper: c.RESTMapper(),
179175
}
180176

181177
res, err := r.reconcile(ctx, defaultCluster, machine)
@@ -222,8 +218,6 @@ func TestReconcileMachinePhases(t *testing.T) {
222218
r := &Reconciler{
223219
disableNodeLabelSync: true,
224220
Client: c,
225-
scheme: c.Scheme(),
226-
mapper: c.RESTMapper(),
227221
}
228222

229223
res, err := r.reconcile(ctx, defaultCluster, machine)
@@ -305,8 +299,6 @@ func TestReconcileMachinePhases(t *testing.T) {
305299
disableNodeLabelSync: true,
306300
Client: cl,
307301
Tracker: remote.NewTestClusterCacheTracker(logr.New(log.NullLogSink{}), cl, scheme.Scheme, client.ObjectKey{Name: defaultCluster.Name, Namespace: defaultCluster.Namespace}),
308-
scheme: cl.Scheme(),
309-
mapper: cl.RESTMapper(),
310302
}
311303

312304
res, err := r.reconcile(ctx, defaultCluster, machine)
@@ -375,8 +367,6 @@ func TestReconcileMachinePhases(t *testing.T) {
375367
disableNodeLabelSync: true,
376368
Client: cl,
377369
Tracker: remote.NewTestClusterCacheTracker(logr.New(log.NullLogSink{}), cl, scheme.Scheme, client.ObjectKey{Name: defaultCluster.Name, Namespace: defaultCluster.Namespace}),
378-
scheme: cl.Scheme(),
379-
mapper: cl.RESTMapper(),
380370
}
381371

382372
res, err := r.reconcile(ctx, defaultCluster, machine)
@@ -455,8 +445,6 @@ func TestReconcileMachinePhases(t *testing.T) {
455445
disableNodeLabelSync: true,
456446
Client: cl,
457447
Tracker: remote.NewTestClusterCacheTracker(logr.New(log.NullLogSink{}), cl, scheme.Scheme, client.ObjectKey{Name: defaultCluster.Name, Namespace: defaultCluster.Namespace}),
458-
scheme: cl.Scheme(),
459-
mapper: cl.RESTMapper(),
460448
}
461449

462450
res, err := r.reconcile(ctx, defaultCluster, machine)
@@ -520,8 +508,6 @@ func TestReconcileMachinePhases(t *testing.T) {
520508
disableNodeLabelSync: true,
521509
Client: cl,
522510
Tracker: remote.NewTestClusterCacheTracker(logr.New(log.NullLogSink{}), cl, scheme.Scheme, client.ObjectKey{Name: defaultCluster.Name, Namespace: defaultCluster.Namespace}),
523-
scheme: cl.Scheme(),
524-
mapper: cl.RESTMapper(),
525511
}
526512

527513
res, err := r.reconcile(ctx, defaultCluster, machine)
@@ -605,8 +591,6 @@ func TestReconcileMachinePhases(t *testing.T) {
605591
Client: cl,
606592
Tracker: remote.NewTestClusterCacheTracker(logr.New(log.NullLogSink{}), cl, scheme.Scheme, client.ObjectKey{Name: defaultCluster.Name, Namespace: defaultCluster.Namespace}),
607593
recorder: record.NewFakeRecorder(32),
608-
scheme: cl.Scheme(),
609-
mapper: cl.RESTMapper(),
610594
}
611595

612596
res, err := r.reconcileDelete(ctx, defaultCluster, machine)
@@ -912,8 +896,6 @@ func TestReconcileBootstrap(t *testing.T) {
912896
r := &Reconciler{
913897
disableNodeLabelSync: true,
914898
Client: c,
915-
scheme: c.Scheme(),
916-
mapper: c.RESTMapper(),
917899
}
918900

919901
res, err := r.reconcileBootstrap(ctx, defaultCluster, tc.machine)
@@ -1127,8 +1109,6 @@ func TestReconcileInfrastructure(t *testing.T) {
11271109
r := &Reconciler{
11281110
disableNodeLabelSync: true,
11291111
Client: c,
1130-
scheme: c.Scheme(),
1131-
mapper: c.RESTMapper(),
11321112
}
11331113

11341114
result, err := r.reconcileInfrastructure(ctx, defaultCluster, tc.machine)
@@ -1373,8 +1353,6 @@ func TestReconcileCertificateExpiry(t *testing.T) {
13731353
r := &Reconciler{
13741354
disableNodeLabelSync: true,
13751355
Client: c,
1376-
scheme: c.Scheme(),
1377-
mapper: c.RESTMapper(),
13781356
}
13791357

13801358
_, _ = r.reconcileCertificateExpiry(ctx, nil, tc.machine)

internal/controllers/machine/machine_controller_test.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -729,8 +729,6 @@ func TestReconcileRequest(t *testing.T) {
729729
disableNodeLabelSync: true,
730730
Client: clientFake,
731731
Tracker: remote.NewTestClusterCacheTracker(logr.New(log.NullLogSink{}), clientFake, scheme.Scheme, client.ObjectKey{Name: testCluster.Name, Namespace: testCluster.Namespace}),
732-
scheme: scheme.Scheme,
733-
mapper: clientFake.RESTMapper(),
734732
}
735733

736734
result, err := r.Reconcile(ctx, reconcile.Request{NamespacedName: util.ObjectKey(&tc.machine)})
@@ -978,8 +976,6 @@ func TestMachineConditions(t *testing.T) {
978976
disableNodeLabelSync: true,
979977
Client: clientFake,
980978
Tracker: remote.NewTestClusterCacheTracker(logr.New(log.NullLogSink{}), clientFake, scheme.Scheme, client.ObjectKey{Name: testCluster.Name, Namespace: testCluster.Namespace}),
981-
scheme: scheme.Scheme,
982-
mapper: clientFake.RESTMapper(),
983979
}
984980

985981
_, err := r.Reconcile(ctx, reconcile.Request{NamespacedName: util.ObjectKey(&machine)})
@@ -1070,8 +1066,6 @@ func TestReconcileDeleteExternal(t *testing.T) {
10701066

10711067
r := &Reconciler{
10721068
Client: c,
1073-
scheme: scheme.Scheme,
1074-
mapper: c.RESTMapper(),
10751069
}
10761070

10771071
obj, err := r.reconcileDeleteExternal(ctx, machine, machine.Spec.Bootstrap.ConfigRef)

internal/controllers/topology/cluster/cluster_controller.go

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ import (
2323

2424
"github.com/pkg/errors"
2525
apierrors "k8s.io/apimachinery/pkg/api/errors"
26-
"k8s.io/apimachinery/pkg/api/meta"
27-
"k8s.io/apimachinery/pkg/runtime"
2826
"k8s.io/apimachinery/pkg/types"
2927
kerrors "k8s.io/apimachinery/pkg/util/errors"
3028
"k8s.io/client-go/tools/record"
@@ -84,8 +82,6 @@ type Reconciler struct {
8482
patchEngine patches.Engine
8583

8684
patchHelperFactory structuredmerge.PatchHelperFactoryFunc
87-
scheme *runtime.Scheme
88-
mapper meta.RESTMapper
8985
}
9086

9187
func (r *Reconciler) SetupWithManager(ctx context.Context, mgr ctrl.Manager, options controller.Options) error {
@@ -122,16 +118,12 @@ func (r *Reconciler) SetupWithManager(ctx context.Context, mgr ctrl.Manager, opt
122118
if r.patchHelperFactory == nil {
123119
r.patchHelperFactory = serverSideApplyPatchHelperFactory(r.Client)
124120
}
125-
r.scheme = mgr.GetScheme()
126-
r.mapper = mgr.GetRESTMapper()
127121
return nil
128122
}
129123

130124
// SetupForDryRun prepares the Reconciler for a dry run execution.
131125
func (r *Reconciler) SetupForDryRun(recorder record.EventRecorder) {
132126
r.patchEngine = patches.NewEngine(r.RuntimeClient)
133-
r.scheme = r.Client.Scheme()
134-
r.mapper = r.Client.RESTMapper()
135127
r.recorder = recorder
136128
r.patchHelperFactory = dryRunPatchHelperFactory(r.Client)
137129
}
@@ -263,15 +255,15 @@ func (r *Reconciler) reconcile(ctx context.Context, s *scope.Scope) (ctrl.Result
263255
func (r *Reconciler) setupDynamicWatches(ctx context.Context, s *scope.Scope) error {
264256
if s.Current.InfrastructureCluster != nil {
265257
if err := r.externalTracker.Watch(ctrl.LoggerFrom(ctx), s.Current.InfrastructureCluster,
266-
handler.EnqueueRequestForOwner(r.scheme, r.mapper, &clusterv1.Cluster{}),
258+
handler.EnqueueRequestForOwner(r.Client.Scheme(), r.Client.RESTMapper(), &clusterv1.Cluster{}),
267259
// Only trigger Cluster reconciliation if the InfrastructureCluster is topology owned.
268260
predicates.ResourceIsTopologyOwned(ctrl.LoggerFrom(ctx))); err != nil {
269261
return errors.Wrap(err, "error watching Infrastructure CR")
270262
}
271263
}
272264
if s.Current.ControlPlane.Object != nil {
273265
if err := r.externalTracker.Watch(ctrl.LoggerFrom(ctx), s.Current.ControlPlane.Object,
274-
handler.EnqueueRequestForOwner(r.scheme, r.mapper, &clusterv1.Cluster{}),
266+
handler.EnqueueRequestForOwner(r.Client.Scheme(), r.Client.RESTMapper(), &clusterv1.Cluster{}),
275267
// Only trigger Cluster reconciliation if the ControlPlane is topology owned.
276268
predicates.ResourceIsTopologyOwned(ctrl.LoggerFrom(ctx))); err != nil {
277269
return errors.Wrap(err, "error watching ControlPlane CR")

0 commit comments

Comments
 (0)