Skip to content

Commit 09f07c5

Browse files
authored
Merge pull request #8913 from sbueringer/pr-kcp-cache-unstructured
🌱 KCP: cache unstructured
2 parents a1ec56a + 7fe546b commit 09f07c5

File tree

7 files changed

+19
-26
lines changed

7 files changed

+19
-26
lines changed

controlplane/kubeadm/controllers/alias.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,8 @@ import (
3030

3131
// KubeadmControlPlaneReconciler reconciles a KubeadmControlPlane object.
3232
type KubeadmControlPlaneReconciler struct {
33-
Client client.Client
34-
APIReader client.Reader
35-
Tracker *remote.ClusterCacheTracker
33+
Client client.Client
34+
Tracker *remote.ClusterCacheTracker
3635

3736
EtcdDialTimeout time.Duration
3837
EtcdCallTimeout time.Duration
@@ -45,7 +44,6 @@ type KubeadmControlPlaneReconciler struct {
4544
func (r *KubeadmControlPlaneReconciler) SetupWithManager(ctx context.Context, mgr ctrl.Manager, options controller.Options) error {
4645
return (&kubeadmcontrolplanecontrollers.KubeadmControlPlaneReconciler{
4746
Client: r.Client,
48-
APIReader: r.APIReader,
4947
Tracker: r.Tracker,
5048
EtcdDialTimeout: r.EtcdDialTimeout,
5149
EtcdCallTimeout: r.EtcdCallTimeout,

controlplane/kubeadm/internal/controllers/controller.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,11 @@ const (
7070

7171
// KubeadmControlPlaneReconciler reconciles a KubeadmControlPlane object.
7272
type KubeadmControlPlaneReconciler struct {
73-
Client client.Client
74-
APIReader client.Reader
75-
controller controller.Controller
76-
recorder record.EventRecorder
77-
Tracker *remote.ClusterCacheTracker
73+
Client client.Client
74+
controller controller.Controller
75+
recorder record.EventRecorder
76+
Tracker *remote.ClusterCacheTracker
77+
7878
EtcdDialTimeout time.Duration
7979
EtcdCallTimeout time.Duration
8080

controlplane/kubeadm/internal/controllers/controller_test.go

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,6 @@ func TestKubeadmControlPlaneReconciler_adoption(t *testing.T) {
515515
fmc.Reader = fakeClient
516516
r := &KubeadmControlPlaneReconciler{
517517
Client: fakeClient,
518-
APIReader: fakeClient,
519518
managementCluster: fmc,
520519
managementClusterUncached: fmc,
521520
}
@@ -611,7 +610,6 @@ func TestKubeadmControlPlaneReconciler_adoption(t *testing.T) {
611610
fmc.Reader = fakeClient
612611
r := &KubeadmControlPlaneReconciler{
613612
Client: fakeClient,
614-
APIReader: fakeClient,
615613
managementCluster: fmc,
616614
managementClusterUncached: fmc,
617615
}
@@ -697,7 +695,6 @@ func TestKubeadmControlPlaneReconciler_adoption(t *testing.T) {
697695
fmc.Reader = fakeClient
698696
r := &KubeadmControlPlaneReconciler{
699697
Client: fakeClient,
700-
APIReader: fakeClient,
701698
managementCluster: fmc,
702699
managementClusterUncached: fmc,
703700
}
@@ -750,7 +747,6 @@ func TestKubeadmControlPlaneReconciler_adoption(t *testing.T) {
750747
recorder := record.NewFakeRecorder(32)
751748
r := &KubeadmControlPlaneReconciler{
752749
Client: fakeClient,
753-
APIReader: fakeClient,
754750
recorder: recorder,
755751
managementCluster: fmc,
756752
managementClusterUncached: fmc,
@@ -1281,9 +1277,8 @@ kubernetesVersion: metav1.16.1`,
12811277

12821278
expectedLabels := map[string]string{clusterv1.ClusterNameLabel: "foo"}
12831279
r := &KubeadmControlPlaneReconciler{
1284-
Client: env,
1285-
APIReader: env.GetAPIReader(),
1286-
recorder: record.NewFakeRecorder(32),
1280+
Client: env,
1281+
recorder: record.NewFakeRecorder(32),
12871282
managementCluster: &fakeManagementCluster{
12881283
Management: &internal.Management{Client: env},
12891284
Workload: fakeWorkloadCluster{
@@ -1309,13 +1304,13 @@ kubernetesVersion: metav1.16.1`,
13091304
g.Expect(err).NotTo(HaveOccurred())
13101305
// this first requeue is to add finalizer
13111306
g.Expect(result).To(Equal(ctrl.Result{}))
1312-
g.Expect(r.APIReader.Get(ctx, util.ObjectKey(kcp), kcp)).To(Succeed())
1307+
g.Expect(env.GetAPIReader().Get(ctx, util.ObjectKey(kcp), kcp)).To(Succeed())
13131308
g.Expect(kcp.Finalizers).To(ContainElement(controlplanev1.KubeadmControlPlaneFinalizer))
13141309

13151310
g.Eventually(func(g Gomega) {
13161311
_, err = r.Reconcile(ctx, ctrl.Request{NamespacedName: util.ObjectKey(kcp)})
13171312
g.Expect(err).NotTo(HaveOccurred())
1318-
g.Expect(r.APIReader.Get(ctx, client.ObjectKey{Name: kcp.Name, Namespace: kcp.Namespace}, kcp)).To(Succeed())
1313+
g.Expect(env.GetAPIReader().Get(ctx, client.ObjectKey{Name: kcp.Name, Namespace: kcp.Namespace}, kcp)).To(Succeed())
13191314
// Expect the referenced infrastructure template to have a Cluster Owner Reference.
13201315
g.Expect(env.GetAPIReader().Get(ctx, util.ObjectKey(genericInfrastructureMachineTemplate), genericInfrastructureMachineTemplate)).To(Succeed())
13211316
g.Expect(genericInfrastructureMachineTemplate.GetOwnerReferences()).To(ContainElement(metav1.OwnerReference{

controlplane/kubeadm/internal/controllers/helpers_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -784,8 +784,7 @@ func TestKubeadmControlPlaneReconciler_adoptKubeconfigSecret(t *testing.T) {
784784
t.Run(tt.name, func(t *testing.T) {
785785
fakeClient := newFakeClient(kcp, tt.configSecret)
786786
r := &KubeadmControlPlaneReconciler{
787-
APIReader: fakeClient,
788-
Client: fakeClient,
787+
Client: fakeClient,
789788
}
790789
g.Expect(r.adoptKubeconfigSecret(ctx, tt.configSecret, kcp)).To(Succeed())
791790
actualSecret := &corev1.Secret{}

controlplane/kubeadm/internal/controllers/scale_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,6 @@ func TestKubeadmControlPlaneReconciler_scaleUpControlPlane(t *testing.T) {
209209

210210
r := &KubeadmControlPlaneReconciler{
211211
Client: env,
212-
APIReader: env.GetAPIReader(),
213212
managementCluster: fmc,
214213
managementClusterUncached: fmc,
215214
recorder: record.NewFakeRecorder(32),

controlplane/kubeadm/internal/controllers/upgrade_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,8 @@ func TestKubeadmControlPlaneReconciler_RolloutStrategy_ScaleUp(t *testing.T) {
7878
setKCPHealthy(kcp)
7979

8080
r := &KubeadmControlPlaneReconciler{
81-
Client: env,
82-
APIReader: env.GetAPIReader(),
83-
recorder: record.NewFakeRecorder(32),
81+
Client: env,
82+
recorder: record.NewFakeRecorder(32),
8483
managementCluster: &fakeManagementCluster{
8584
Management: &internal.Management{Client: env},
8685
Workload: fakeWorkloadCluster{
@@ -227,7 +226,6 @@ func TestKubeadmControlPlaneReconciler_RolloutStrategy_ScaleDown(t *testing.T) {
227226
fakeClient := newFakeClient(objs...)
228227
fmc.Reader = fakeClient
229228
r := &KubeadmControlPlaneReconciler{
230-
APIReader: fakeClient,
231229
Client: fakeClient,
232230
managementCluster: fmc,
233231
managementClusterUncached: fmc,

controlplane/kubeadm/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,11 @@ func main() {
209209
&corev1.ConfigMap{},
210210
&corev1.Secret{},
211211
},
212+
// This config ensures that the default client caches Unstructured objects.
213+
// KCP is only using Unstructured to retrieve InfraMachines and InfraMachineTemplates.
214+
// As the cache should be used in those cases, caching is configured globally instead of
215+
// creating a separate client that caches Unstructured.
216+
Unstructured: true,
212217
},
213218
},
214219
WebhookServer: webhook.NewServer(
@@ -283,7 +288,6 @@ func setupReconcilers(ctx context.Context, mgr ctrl.Manager) {
283288

284289
if err := (&kubeadmcontrolplanecontrollers.KubeadmControlPlaneReconciler{
285290
Client: mgr.GetClient(),
286-
APIReader: mgr.GetAPIReader(),
287291
Tracker: tracker,
288292
WatchFilterValue: watchFilterValue,
289293
EtcdDialTimeout: etcdDialTimeout,

0 commit comments

Comments
 (0)