Skip to content

Commit b5cb8df

Browse files
committed
Strip managed fields for cached objects
This patch adds support for stripping managed fields for objects entering the cache. The controller-runtime documentation for this transformer states: If you are not explicitly accessing managedFields from your code, setting this as `DefaultTransform` on the cache can lead to significant reduction in memory usage. Given that VM Operator never directly accesses the managed fields for any object, there is no reason we should not be using this transformer. Please see kubernetes-sigs/controller-runtime#2791 for more information on this feature.
1 parent 14b7303 commit b5cb8df

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

pkg/manager/cache.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,10 @@ func NewLabelSelectorCacheForObject(
3535

3636
cache, err := ctrlcache.New(mgr.GetConfig(),
3737
ctrlcache.Options{
38-
Scheme: mgr.GetScheme(),
39-
Mapper: mgr.GetRESTMapper(),
40-
SyncPeriod: resync,
38+
Scheme: mgr.GetScheme(),
39+
Mapper: mgr.GetRESTMapper(),
40+
DefaultTransform: ctrlcache.TransformStripManagedFields(),
41+
SyncPeriod: resync,
4142
ByObject: map[ctrlclient.Object]ctrlcache.ByObject{
4243
object: {
4344
Label: selector,
@@ -70,12 +71,14 @@ func NewNamespacedCacheForObject(
7071

7172
cache, err := ctrlcache.New(mgr.GetConfig(),
7273
ctrlcache.Options{
73-
Scheme: mgr.GetScheme(),
74-
Mapper: mgr.GetRESTMapper(),
75-
SyncPeriod: resync,
74+
Scheme: mgr.GetScheme(),
75+
Mapper: mgr.GetRESTMapper(),
76+
DefaultTransform: ctrlcache.TransformStripManagedFields(),
77+
SyncPeriod: resync,
7678
ByObject: map[ctrlclient.Object]ctrlcache.ByObject{
7779
object: {
7880
Namespaces: GetNamespaceCacheConfigs(namespaces...),
81+
Transform: ctrlcache.TransformStripManagedFields(),
7982
},
8083
},
8184
},

pkg/manager/manager.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ func New(ctx context.Context, opts Options) (Manager, error) {
7272
Scheme: opts.Scheme,
7373
Cache: cache.Options{
7474
DefaultNamespaces: GetNamespaceCacheConfigs(opts.WatchNamespace),
75+
DefaultTransform: cache.TransformStripManagedFields(),
7576
SyncPeriod: &opts.SyncPeriod,
7677
},
7778
Client: client.Options{

0 commit comments

Comments
 (0)