@@ -20,6 +20,7 @@ import (
2020 corev1 "k8s.io/api/core/v1"
2121 k8sErrors "k8s.io/apimachinery/pkg/api/errors"
2222 "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
23+ "k8s.io/apimachinery/pkg/fields"
2324 "k8s.io/apimachinery/pkg/runtime"
2425 "k8s.io/apimachinery/pkg/runtime/schema"
2526 "k8s.io/apimachinery/pkg/types"
@@ -193,12 +194,28 @@ func addNamespacedCache(mgr manager.Manager, cr *CertRotator, namespace string)
193194 }
194195 }
195196
196- c , err := cache .New (mgr .GetConfig (),
197- cache.Options {
198- Scheme : mgr .GetScheme (),
199- Mapper : mgr .GetRESTMapper (),
200- DefaultNamespaces : namespaces ,
201- })
197+ ObjectFilers := make (map [client.Object ]cache.ByObject )
198+
199+ for _ , webhook := range cr .Webhooks {
200+ wh := & unstructured.Unstructured {}
201+ wh .SetGroupVersionKind (webhook .gvk ())
202+ ObjectFilers [wh ] = cache.ByObject {
203+ Field : fields .SelectorFromSet (fields.Set {"metadata.name" : webhook .Name }),
204+ }
205+ }
206+
207+ ObjectFilers [& corev1.Secret {}] = cache.ByObject {
208+ Namespaces : namespaces ,
209+ Field : fields .SelectorFromSet (fields.Set {"metadata.name" : cr .SecretKey .Name }),
210+ }
211+
212+ c , err := cache .New (mgr .GetConfig (), cache.Options {
213+ ByObject : ObjectFilers ,
214+ Scheme : mgr .GetScheme (),
215+ Mapper : mgr .GetRESTMapper (),
216+ },
217+ )
218+
202219 if err != nil {
203220 return nil , err
204221 }
0 commit comments