Skip to content

Commit 2af983e

Browse files
authored
Merge pull request kubernetes-sigs#255 from prometherion/issues/254
fix: api reader for CCM clean-up to avoid cache lazy loading
2 parents e35940e + fd8eac9 commit 2af983e

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

controllers/kubevirtcluster_controller.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,15 @@ import (
5050
// KubevirtClusterReconciler reconciles a KubevirtCluster object.
5151
type KubevirtClusterReconciler struct {
5252
client.Client
53+
// APIReader is used to prune the Cloud Controller resources for the given cluster:
54+
// this client doesn't locally cache the resources upon a GET/LIST request,
55+
// decreasing memory consumption and avoiding granting further RBAC verbs.
56+
APIReader client.Reader
5357
InfraCluster infracluster.InfraCluster
5458
Log logr.Logger
5559
}
5660

57-
func GetLoadBalancerNamespace(kc *infrav1.KubevirtCluster, infraClusterNamespace string ) string {
61+
func GetLoadBalancerNamespace(kc *infrav1.KubevirtCluster, infraClusterNamespace string) string {
5862
// Use namespace specified in Service Template if exist
5963
if kc.Spec.ControlPlaneServiceTemplate.ObjectMeta.Namespace != "" {
6064
return kc.Spec.ControlPlaneServiceTemplate.ObjectMeta.Namespace
@@ -285,7 +289,7 @@ func (r *KubevirtClusterReconciler) deleteExtraGVK(ctx *context.ClusterContext,
285289
var extraResourceMetaList metav1.PartialObjectMetadataList
286290
extraResourceMetaList.SetGroupVersionKind(extraGVK)
287291
extraResourceLabels := map[string]string{"cluster.x-k8s.io/cluster-name": ctx.Cluster.Name, "capk.cluster.x-k8s.io/template-kind": "extra-resource"}
288-
if err := r.List(ctx, &extraResourceMetaList, client.InNamespace(ctx.Cluster.Namespace), client.MatchingLabels(extraResourceLabels)); err != nil {
292+
if err := r.APIReader.List(ctx, &extraResourceMetaList, client.InNamespace(ctx.Cluster.Namespace), client.MatchingLabels(extraResourceLabels)); err != nil {
289293
return errors.Wrap(err, "failed listing cluster extra object meta")
290294
}
291295

@@ -294,6 +298,6 @@ func (r *KubevirtClusterReconciler) deleteExtraGVK(ctx *context.ClusterContext,
294298
return errors.Wrap(err, "failed deleting cluster extra object meta")
295299
}
296300
}
297-
return nil
298301

302+
return nil
299303
}

main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ func setupReconcilers(ctx context.Context, mgr ctrl.Manager) {
170170

171171
if err := (&controllers.KubevirtClusterReconciler{
172172
Client: mgr.GetClient(),
173+
APIReader: mgr.GetAPIReader(),
173174
InfraCluster: infracluster.New(mgr.GetClient(), noCachedClient),
174175
Log: ctrl.Log.WithName("controllers").WithName("KubevirtCluster"),
175176
}).SetupWithManager(mgr); err != nil {

0 commit comments

Comments
 (0)