sample-apiserver admission wait for informer sync before serving
This commit is contained in:
@@ -53,6 +53,10 @@ func (d *DisallowFlunder) Admit(a admission.Attributes) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !d.WaitForReady() {
|
||||||
|
return admission.NewForbidden(a, fmt.Errorf("not yet ready to handle request"))
|
||||||
|
}
|
||||||
|
|
||||||
metaAccessor, err := meta.Accessor(a.GetObject())
|
metaAccessor, err := meta.Accessor(a.GetObject())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -82,6 +86,7 @@ func (d *DisallowFlunder) Admit(a admission.Attributes) error {
|
|||||||
// The lister knows how to lists Fischers.
|
// The lister knows how to lists Fischers.
|
||||||
func (d *DisallowFlunder) SetInternalWardleInformerFactory(f informers.SharedInformerFactory) {
|
func (d *DisallowFlunder) SetInternalWardleInformerFactory(f informers.SharedInformerFactory) {
|
||||||
d.lister = f.Wardle().InternalVersion().Fischers().Lister()
|
d.lister = f.Wardle().InternalVersion().Fischers().Lister()
|
||||||
|
d.SetReadyFunc(f.Wardle().InternalVersion().Fischers().Informer().HasSynced)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ValidaValidateInitializationte checks whether the plugin was correctly initialized.
|
// ValidaValidateInitializationte checks whether the plugin was correctly initialized.
|
||||||
|
|||||||
@@ -137,6 +137,7 @@ func (o WardleServerOptions) RunWardleServer(stopCh <-chan struct{}) error {
|
|||||||
|
|
||||||
server.GenericAPIServer.AddPostStartHook("start-sample-server-informers", func(context genericapiserver.PostStartHookContext) error {
|
server.GenericAPIServer.AddPostStartHook("start-sample-server-informers", func(context genericapiserver.PostStartHookContext) error {
|
||||||
config.GenericConfig.SharedInformerFactory.Start(context.StopCh)
|
config.GenericConfig.SharedInformerFactory.Start(context.StopCh)
|
||||||
|
o.SharedInformerFactory.Start(context.StopCh)
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user