Skip to content

Commit e1fd8e7

Browse files
authored
Merge pull request #2130 from vincepri/cleanup-internal-informers
🌱 Further cleanup internal/informers
2 parents 319c422 + 0f07001 commit e1fd8e7

File tree

5 files changed

+97
-95
lines changed

5 files changed

+97
-95
lines changed

pkg/cache/cache.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,12 +183,12 @@ func New(config *rest.Config, opts Options) (Cache, error) {
183183

184184
return &informerCache{
185185
scheme: opts.Scheme,
186-
InformersMap: internal.NewInformersMap(config, &internal.InformersMapOptions{
186+
Informers: internal.NewInformers(config, &internal.InformersOpts{
187187
Scheme: opts.Scheme,
188188
Mapper: opts.Mapper,
189189
ResyncPeriod: *opts.Resync,
190190
Namespace: opts.Namespace,
191-
ByGVK: internal.InformersMapOptionsByGVK{
191+
ByGVK: internal.InformersOptsByGVK{
192192
Selectors: internalSelectorsByGVK,
193193
DisableDeepCopy: disableDeepCopyByGVK,
194194
Transformers: transformByGVK,

pkg/cache/informer_cache.go

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -45,20 +45,21 @@ func (*ErrCacheNotStarted) Error() string {
4545
return "the cache is not started, can not read objects"
4646
}
4747

48-
// informerCache is a Kubernetes Object cache populated from InformersMap. informerCache wraps an InformersMap.
48+
// informerCache is a Kubernetes Object cache populated from internal.Informers.
49+
// informerCache wraps internal.Informers.
4950
type informerCache struct {
5051
scheme *runtime.Scheme
51-
*internal.InformersMap
52+
*internal.Informers
5253
}
5354

5455
// Get implements Reader.
55-
func (ip *informerCache) Get(ctx context.Context, key client.ObjectKey, out client.Object, opts ...client.GetOption) error {
56-
gvk, err := apiutil.GVKForObject(out, ip.scheme)
56+
func (ic *informerCache) Get(ctx context.Context, key client.ObjectKey, out client.Object, opts ...client.GetOption) error {
57+
gvk, err := apiutil.GVKForObject(out, ic.scheme)
5758
if err != nil {
5859
return err
5960
}
6061

61-
started, cache, err := ip.InformersMap.Get(ctx, gvk, out)
62+
started, cache, err := ic.Informers.Get(ctx, gvk, out)
6263
if err != nil {
6364
return err
6465
}
@@ -70,13 +71,13 @@ func (ip *informerCache) Get(ctx context.Context, key client.ObjectKey, out clie
7071
}
7172

7273
// List implements Reader.
73-
func (ip *informerCache) List(ctx context.Context, out client.ObjectList, opts ...client.ListOption) error {
74-
gvk, cacheTypeObj, err := ip.objectTypeForListObject(out)
74+
func (ic *informerCache) List(ctx context.Context, out client.ObjectList, opts ...client.ListOption) error {
75+
gvk, cacheTypeObj, err := ic.objectTypeForListObject(out)
7576
if err != nil {
7677
return err
7778
}
7879

79-
started, cache, err := ip.InformersMap.Get(ctx, *gvk, cacheTypeObj)
80+
started, cache, err := ic.Informers.Get(ctx, *gvk, cacheTypeObj)
8081
if err != nil {
8182
return err
8283
}
@@ -91,8 +92,8 @@ func (ip *informerCache) List(ctx context.Context, out client.ObjectList, opts .
9192
// objectTypeForListObject tries to find the runtime.Object and associated GVK
9293
// for a single object corresponding to the passed-in list type. We need them
9394
// because they are used as cache map key.
94-
func (ip *informerCache) objectTypeForListObject(list client.ObjectList) (*schema.GroupVersionKind, runtime.Object, error) {
95-
gvk, err := apiutil.GVKForObject(list, ip.scheme)
95+
func (ic *informerCache) objectTypeForListObject(list client.ObjectList) (*schema.GroupVersionKind, runtime.Object, error) {
96+
gvk, err := apiutil.GVKForObject(list, ic.scheme)
9697
if err != nil {
9798
return nil, nil, err
9899
}
@@ -115,36 +116,36 @@ func (ip *informerCache) objectTypeForListObject(list client.ObjectList) (*schem
115116

116117
// Any other list type should have a corresponding non-list type registered
117118
// in the scheme. Use that to create a new instance of the non-list type.
118-
cacheTypeObj, err := ip.scheme.New(gvk)
119+
cacheTypeObj, err := ic.scheme.New(gvk)
119120
if err != nil {
120121
return nil, nil, err
121122
}
122123
return &gvk, cacheTypeObj, nil
123124
}
124125

125126
// GetInformerForKind returns the informer for the GroupVersionKind.
126-
func (ip *informerCache) GetInformerForKind(ctx context.Context, gvk schema.GroupVersionKind) (Informer, error) {
127+
func (ic *informerCache) GetInformerForKind(ctx context.Context, gvk schema.GroupVersionKind) (Informer, error) {
127128
// Map the gvk to an object
128-
obj, err := ip.scheme.New(gvk)
129+
obj, err := ic.scheme.New(gvk)
129130
if err != nil {
130131
return nil, err
131132
}
132133

133-
_, i, err := ip.InformersMap.Get(ctx, gvk, obj)
134+
_, i, err := ic.Informers.Get(ctx, gvk, obj)
134135
if err != nil {
135136
return nil, err
136137
}
137138
return i.Informer, err
138139
}
139140

140141
// GetInformer returns the informer for the obj.
141-
func (ip *informerCache) GetInformer(ctx context.Context, obj client.Object) (Informer, error) {
142-
gvk, err := apiutil.GVKForObject(obj, ip.scheme)
142+
func (ic *informerCache) GetInformer(ctx context.Context, obj client.Object) (Informer, error) {
143+
gvk, err := apiutil.GVKForObject(obj, ic.scheme)
143144
if err != nil {
144145
return nil, err
145146
}
146147

147-
_, i, err := ip.InformersMap.Get(ctx, gvk, obj)
148+
_, i, err := ic.Informers.Get(ctx, gvk, obj)
148149
if err != nil {
149150
return nil, err
150151
}
@@ -153,7 +154,7 @@ func (ip *informerCache) GetInformer(ctx context.Context, obj client.Object) (In
153154

154155
// NeedLeaderElection implements the LeaderElectionRunnable interface
155156
// to indicate that this can be started without requiring the leader lock.
156-
func (ip *informerCache) NeedLeaderElection() bool {
157+
func (ic *informerCache) NeedLeaderElection() bool {
157158
return false
158159
}
159160

@@ -162,8 +163,8 @@ func (ip *informerCache) NeedLeaderElection() bool {
162163
// to List. For one-to-one compatibility with "normal" field selectors, only return one value.
163164
// The values may be anything. They will automatically be prefixed with the namespace of the
164165
// given object, if present. The objects passed are guaranteed to be objects of the correct type.
165-
func (ip *informerCache) IndexField(ctx context.Context, obj client.Object, field string, extractValue client.IndexerFunc) error {
166-
informer, err := ip.GetInformer(ctx, obj)
166+
func (ic *informerCache) IndexField(ctx context.Context, obj client.Object, field string, extractValue client.IndexerFunc) error {
167+
informer, err := ic.GetInformer(ctx, obj)
167168
if err != nil {
168169
return err
169170
}

pkg/cache/informer_cache_unit_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ const (
3939

4040
var _ = Describe("ip.objectTypeForListObject", func() {
4141
ip := &informerCache{
42-
scheme: scheme.Scheme,
43-
InformersMap: &internal.InformersMap{},
42+
scheme: scheme.Scheme,
43+
Informers: &internal.Informers{},
4444
}
4545

4646
It("should find the object type for unstructured lists", func() {

0 commit comments

Comments
 (0)