...
1
16
17
18
19 package v1
20
21 import (
22 "context"
23 time "time"
24
25 appsv1 "k8s.io/api/apps/v1"
26 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
27 runtime "k8s.io/apimachinery/pkg/runtime"
28 watch "k8s.io/apimachinery/pkg/watch"
29 internalinterfaces "k8s.io/client-go/informers/internalinterfaces"
30 kubernetes "k8s.io/client-go/kubernetes"
31 v1 "k8s.io/client-go/listers/apps/v1"
32 cache "k8s.io/client-go/tools/cache"
33 )
34
35
36
37 type StatefulSetInformer interface {
38 Informer() cache.SharedIndexInformer
39 Lister() v1.StatefulSetLister
40 }
41
42 type statefulSetInformer struct {
43 factory internalinterfaces.SharedInformerFactory
44 tweakListOptions internalinterfaces.TweakListOptionsFunc
45 namespace string
46 }
47
48
49
50
51 func NewStatefulSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
52 return NewFilteredStatefulSetInformer(client, namespace, resyncPeriod, indexers, nil)
53 }
54
55
56
57
58 func NewFilteredStatefulSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
59 return cache.NewSharedIndexInformer(
60 &cache.ListWatch{
61 ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
62 if tweakListOptions != nil {
63 tweakListOptions(&options)
64 }
65 return client.AppsV1().StatefulSets(namespace).List(context.TODO(), options)
66 },
67 WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
68 if tweakListOptions != nil {
69 tweakListOptions(&options)
70 }
71 return client.AppsV1().StatefulSets(namespace).Watch(context.TODO(), options)
72 },
73 },
74 &appsv1.StatefulSet{},
75 resyncPeriod,
76 indexers,
77 )
78 }
79
80 func (f *statefulSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
81 return NewFilteredStatefulSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
82 }
83
84 func (f *statefulSetInformer) Informer() cache.SharedIndexInformer {
85 return f.factory.InformerFor(&appsv1.StatefulSet{}, f.defaultInformer)
86 }
87
88 func (f *statefulSetInformer) Lister() v1.StatefulSetLister {
89 return v1.NewStatefulSetLister(f.Informer().GetIndexer())
90 }
91
View as plain text