Use object informers instead of listers (#669)
We'll need these informers for https://github.com/virtual-kubelet/virtual-kubelet/pull/586 Changing this now means we don't need to make API changes later.
This commit is contained in:
@@ -181,9 +181,9 @@ func runRootCommand(ctx context.Context, c Opts) error {
|
|||||||
PodInformer: podInformer,
|
PodInformer: podInformer,
|
||||||
EventRecorder: eb.NewRecorder(scheme.Scheme, corev1.EventSource{Component: path.Join(pNode.Name, "pod-controller")}),
|
EventRecorder: eb.NewRecorder(scheme.Scheme, corev1.EventSource{Component: path.Join(pNode.Name, "pod-controller")}),
|
||||||
Provider: p,
|
Provider: p,
|
||||||
SecretLister: secretInformer.Lister(),
|
SecretInformer: secretInformer,
|
||||||
ConfigMapLister: configMapInformer.Lister(),
|
ConfigMapInformer: configMapInformer,
|
||||||
ServiceLister: serviceInformer.Lister(),
|
ServiceInformer: serviceInformer,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrap(err, "error setting up pod controller")
|
return errors.Wrap(err, "error setting up pod controller")
|
||||||
|
|||||||
@@ -110,33 +110,36 @@ type PodControllerConfig struct {
|
|||||||
|
|
||||||
Provider PodLifecycleHandler
|
Provider PodLifecycleHandler
|
||||||
|
|
||||||
// Listers used for filling details for things like downward API in pod spec.
|
// Informers used for filling details for things like downward API in pod spec.
|
||||||
ConfigMapLister corev1listers.ConfigMapLister
|
//
|
||||||
SecretLister corev1listers.SecretLister
|
// We are using informers here instead of listers because we'll need the
|
||||||
ServiceLister corev1listers.ServiceLister
|
// informer for certain features (like notifications for updated ConfigMaps)
|
||||||
|
ConfigMapInformer corev1informers.ConfigMapInformer
|
||||||
|
SecretInformer corev1informers.SecretInformer
|
||||||
|
ServiceInformer corev1informers.ServiceInformer
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewPodController(cfg PodControllerConfig) (*PodController, error) {
|
func NewPodController(cfg PodControllerConfig) (*PodController, error) {
|
||||||
if cfg.PodClient == nil {
|
if cfg.PodClient == nil {
|
||||||
return nil, errdefs.InvalidInput("must set core client")
|
return nil, errdefs.InvalidInput("missing core client")
|
||||||
}
|
}
|
||||||
if cfg.EventRecorder == nil {
|
if cfg.EventRecorder == nil {
|
||||||
return nil, errdefs.InvalidInput("must set event recorder")
|
return nil, errdefs.InvalidInput("missing event recorder")
|
||||||
}
|
}
|
||||||
if cfg.PodInformer == nil {
|
if cfg.PodInformer == nil {
|
||||||
return nil, errdefs.InvalidInput("must set informer")
|
return nil, errdefs.InvalidInput("missing pod informer")
|
||||||
}
|
}
|
||||||
if cfg.ConfigMapLister == nil {
|
if cfg.ConfigMapInformer == nil {
|
||||||
return nil, errdefs.InvalidInput("must set config map lister")
|
return nil, errdefs.InvalidInput("missing config map informer")
|
||||||
}
|
}
|
||||||
if cfg.SecretLister == nil {
|
if cfg.SecretInformer == nil {
|
||||||
return nil, errdefs.InvalidInput("must set secret lister")
|
return nil, errdefs.InvalidInput("missing secret informer")
|
||||||
}
|
}
|
||||||
if cfg.ServiceLister == nil {
|
if cfg.ServiceInformer == nil {
|
||||||
return nil, errdefs.InvalidInput("must set service lister")
|
return nil, errdefs.InvalidInput("missing service informer")
|
||||||
}
|
}
|
||||||
|
|
||||||
rm, err := manager.NewResourceManager(cfg.PodInformer.Lister(), cfg.SecretLister, cfg.ConfigMapLister, cfg.ServiceLister)
|
rm, err := manager.NewResourceManager(cfg.PodInformer.Lister(), cfg.SecretInformer.Lister(), cfg.ConfigMapInformer.Lister(), cfg.ServiceInformer.Lister())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, pkgerrors.Wrap(err, "could not create resource manager")
|
return nil, pkgerrors.Wrap(err, "could not create resource manager")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user