mirror of
https://github.com/kubernetes/sample-controller.git
synced 2025-02-22 00:32:59 +08:00
run hack/update-codegen.sh
Kubernetes-commit: 6a4b80fcabc5e950af997d97f447354b83fcdcc4
This commit is contained in:
parent
bf2edea825
commit
13c3b2b0f9
@ -19,6 +19,7 @@ limitations under the License.
|
|||||||
package externalversions
|
package externalversions
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
cache "k8s.io/client-go/tools/cache"
|
cache "k8s.io/client-go/tools/cache"
|
||||||
@ -31,9 +32,11 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type sharedInformerFactory struct {
|
type sharedInformerFactory struct {
|
||||||
client versioned.Interface
|
client versioned.Interface
|
||||||
lock sync.Mutex
|
namespace string
|
||||||
defaultResync time.Duration
|
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||||
|
lock sync.Mutex
|
||||||
|
defaultResync time.Duration
|
||||||
|
|
||||||
informers map[reflect.Type]cache.SharedIndexInformer
|
informers map[reflect.Type]cache.SharedIndexInformer
|
||||||
// startedInformers is used for tracking which informers have been started.
|
// startedInformers is used for tracking which informers have been started.
|
||||||
@ -43,8 +46,17 @@ type sharedInformerFactory struct {
|
|||||||
|
|
||||||
// NewSharedInformerFactory constructs a new instance of sharedInformerFactory
|
// NewSharedInformerFactory constructs a new instance of sharedInformerFactory
|
||||||
func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory {
|
func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory {
|
||||||
|
return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory.
|
||||||
|
// Listers obtained via this SharedInformerFactory will be subject to the same filters
|
||||||
|
// as specified here.
|
||||||
|
func NewFilteredSharedInformerFactory(client versioned.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory {
|
||||||
return &sharedInformerFactory{
|
return &sharedInformerFactory{
|
||||||
client: client,
|
client: client,
|
||||||
|
namespace: namespace,
|
||||||
|
tweakListOptions: tweakListOptions,
|
||||||
defaultResync: defaultResync,
|
defaultResync: defaultResync,
|
||||||
informers: make(map[reflect.Type]cache.SharedIndexInformer),
|
informers: make(map[reflect.Type]cache.SharedIndexInformer),
|
||||||
startedInformers: make(map[reflect.Type]bool),
|
startedInformers: make(map[reflect.Type]bool),
|
||||||
@ -114,5 +126,5 @@ type SharedInformerFactory interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (f *sharedInformerFactory) Samplecontroller() samplecontroller.Interface {
|
func (f *sharedInformerFactory) Samplecontroller() samplecontroller.Interface {
|
||||||
return samplecontroller.New(f)
|
return samplecontroller.New(f, f.namespace, f.tweakListOptions)
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ limitations under the License.
|
|||||||
package internalinterfaces
|
package internalinterfaces
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
cache "k8s.io/client-go/tools/cache"
|
cache "k8s.io/client-go/tools/cache"
|
||||||
versioned "k8s.io/sample-controller/pkg/client/clientset/versioned"
|
versioned "k8s.io/sample-controller/pkg/client/clientset/versioned"
|
||||||
@ -32,3 +33,5 @@ type SharedInformerFactory interface {
|
|||||||
Start(stopCh <-chan struct{})
|
Start(stopCh <-chan struct{})
|
||||||
InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer
|
InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type TweakListOptionsFunc func(*v1.ListOptions)
|
||||||
|
@ -30,15 +30,17 @@ type Interface interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type group struct {
|
type group struct {
|
||||||
internalinterfaces.SharedInformerFactory
|
factory internalinterfaces.SharedInformerFactory
|
||||||
|
namespace string
|
||||||
|
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||||
}
|
}
|
||||||
|
|
||||||
// New returns a new Interface.
|
// New returns a new Interface.
|
||||||
func New(f internalinterfaces.SharedInformerFactory) Interface {
|
func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {
|
||||||
return &group{f}
|
return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
|
||||||
}
|
}
|
||||||
|
|
||||||
// V1alpha1 returns a new v1alpha1.Interface.
|
// V1alpha1 returns a new v1alpha1.Interface.
|
||||||
func (g *group) V1alpha1() v1alpha1.Interface {
|
func (g *group) V1alpha1() v1alpha1.Interface {
|
||||||
return v1alpha1.New(g.SharedInformerFactory)
|
return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions)
|
||||||
}
|
}
|
||||||
|
@ -38,19 +38,34 @@ type FooInformer interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type fooInformer struct {
|
type fooInformer struct {
|
||||||
factory internalinterfaces.SharedInformerFactory
|
factory internalinterfaces.SharedInformerFactory
|
||||||
|
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||||
|
namespace string
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewFooInformer constructs a new informer for Foo type.
|
// NewFooInformer constructs a new informer for Foo type.
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
// one. This reduces memory footprint and number of connections to the server.
|
||||||
func NewFooInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
func NewFooInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||||
|
return NewFilteredFooInformer(client, namespace, resyncPeriod, indexers, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewFilteredFooInformer constructs a new informer for Foo type.
|
||||||
|
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||||
|
// one. This reduces memory footprint and number of connections to the server.
|
||||||
|
func NewFilteredFooInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||||
return cache.NewSharedIndexInformer(
|
return cache.NewSharedIndexInformer(
|
||||||
&cache.ListWatch{
|
&cache.ListWatch{
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
||||||
|
if tweakListOptions != nil {
|
||||||
|
tweakListOptions(&options)
|
||||||
|
}
|
||||||
return client.SamplecontrollerV1alpha1().Foos(namespace).List(options)
|
return client.SamplecontrollerV1alpha1().Foos(namespace).List(options)
|
||||||
},
|
},
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
||||||
|
if tweakListOptions != nil {
|
||||||
|
tweakListOptions(&options)
|
||||||
|
}
|
||||||
return client.SamplecontrollerV1alpha1().Foos(namespace).Watch(options)
|
return client.SamplecontrollerV1alpha1().Foos(namespace).Watch(options)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -60,12 +75,12 @@ func NewFooInformer(client versioned.Interface, namespace string, resyncPeriod t
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func defaultFooInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
func (f *fooInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||||
return NewFooInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})
|
return NewFilteredFooInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fooInformer) Informer() cache.SharedIndexInformer {
|
func (f *fooInformer) Informer() cache.SharedIndexInformer {
|
||||||
return f.factory.InformerFor(&samplecontroller_v1alpha1.Foo{}, defaultFooInformer)
|
return f.factory.InformerFor(&samplecontroller_v1alpha1.Foo{}, f.defaultInformer)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fooInformer) Lister() v1alpha1.FooLister {
|
func (f *fooInformer) Lister() v1alpha1.FooLister {
|
||||||
|
@ -29,15 +29,17 @@ type Interface interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type version struct {
|
type version struct {
|
||||||
internalinterfaces.SharedInformerFactory
|
factory internalinterfaces.SharedInformerFactory
|
||||||
|
namespace string
|
||||||
|
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||||
}
|
}
|
||||||
|
|
||||||
// New returns a new Interface.
|
// New returns a new Interface.
|
||||||
func New(f internalinterfaces.SharedInformerFactory) Interface {
|
func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {
|
||||||
return &version{f}
|
return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Foos returns a FooInformer.
|
// Foos returns a FooInformer.
|
||||||
func (v *version) Foos() FooInformer {
|
func (v *version) Foos() FooInformer {
|
||||||
return &fooInformer{factory: v.SharedInformerFactory}
|
return &fooInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user