diff --git a/pkg/cache/cache.go b/pkg/cache/cache.go index bcb1141a50..02c5f3df49 100644 --- a/pkg/cache/cache.go +++ b/pkg/cache/cache.go @@ -199,6 +199,10 @@ func BuilderWithOptions(options Options) NewCacheFunc { if err != nil { return nil, err } + options, err = defaultToInheritedOpts(options, inherited) + if err != nil { + return nil, err + } options, err = defaultOpts(config, options) if err != nil { return nil, err @@ -424,6 +428,21 @@ func defaultOpts(config *rest.Config, opts Options) (Options, error) { return opts, nil } +func defaultToInheritedOpts(opts, inherited Options) (Options, error) { + if opts.Scheme == nil { + opts.Scheme = inherited.Scheme + } + + if opts.Mapper == nil { + opts.Mapper = inherited.Mapper + } + + if opts.Resync == nil { + opts.Resync = inherited.Resync + } + return opts, nil +} + func convertToByGVK[T any](byObject map[client.Object]T, def T, scheme *runtime.Scheme) (map[schema.GroupVersionKind]T, error) { byGVK := map[schema.GroupVersionKind]T{} for object, value := range byObject {