ForResource returns an informer for a given resource.
(ns string, gvr *client.GVR)
| 249 | |
| 250 | // ForResource returns an informer for a given resource. |
| 251 | func (f *Factory) ForResource(ns string, gvr *client.GVR) (informers.GenericInformer, error) { |
| 252 | fact, err := f.ensureFactory(ns) |
| 253 | if err != nil { |
| 254 | return nil, err |
| 255 | } |
| 256 | inf := fact.ForResource(gvr.GVR()) |
| 257 | if inf == nil { |
| 258 | slog.Error("No informer found", |
| 259 | slogs.GVR, gvr, |
| 260 | slogs.Namespace, ns, |
| 261 | ) |
| 262 | return inf, nil |
| 263 | } |
| 264 | |
| 265 | f.mx.RLock() |
| 266 | defer f.mx.RUnlock() |
| 267 | fact.Start(f.stopChan) |
| 268 | |
| 269 | return inf, nil |
| 270 | } |
| 271 | |
| 272 | func (f *Factory) ensureFactory(ns string) (di.DynamicSharedInformerFactory, error) { |
| 273 | if client.IsClusterWide(ns) { |
no test coverage detected