@@ -8,13 +8,14 @@ import (
88 "sync"
99 "time"
1010
11- "github.com/deckhouse/deckhouse/pkg/log"
1211 "github.com/gofrs/uuid/v5"
1312 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1413 "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
1514 "k8s.io/apimachinery/pkg/runtime/schema"
1615 "k8s.io/client-go/tools/cache"
1716
17+ "github.com/deckhouse/deckhouse/pkg/log"
18+
1819 klient "github.com/flant/kube-client/client"
1920 "github.com/flant/shell-operator/pkg/app"
2021 "github.com/flant/shell-operator/pkg/filter/jq"
@@ -23,7 +24,7 @@ import (
2324 "github.com/flant/shell-operator/pkg/utils/measure"
2425)
2526
26- type resourceInformer struct {
27+ type ResourceInformer struct {
2728 id string
2829 KubeClient * klient.Client
2930 Monitor * MonitorConfig
@@ -54,7 +55,7 @@ type resourceInformer struct {
5455 eventCbEnabled bool
5556 eventBufLock sync.Mutex
5657
57- // TODO resourceInformer should be stoppable (think of deleted namespaces and disabled modules in addon-operator)
58+ // TODO ResourceInformer should be stoppable (think of deleted namespaces and disabled modules in addon-operator)
5859 ctx context.Context
5960 cancel context.CancelFunc
6061
@@ -66,7 +67,7 @@ type resourceInformer struct {
6667 logger * log.Logger
6768}
6869
69- // resourceInformer should implement ResourceInformer
70+ // ResourceInformer should implement ResourceInformer
7071type resourceInformerConfig struct {
7172 client * klient.Client
7273 mstor metric.Storage
@@ -76,8 +77,8 @@ type resourceInformerConfig struct {
7677 logger * log.Logger
7778}
7879
79- func newResourceInformer (ns , name string , cfg * resourceInformerConfig ) * resourceInformer {
80- informer := & resourceInformer {
80+ func newResourceInformer (ns , name string , cfg * resourceInformerConfig ) * ResourceInformer {
81+ informer := & ResourceInformer {
8182 id : uuid .Must (uuid .NewV4 ()).String (),
8283 KubeClient : cfg .client ,
8384 metricStorage : cfg .mstor ,
@@ -95,17 +96,17 @@ func newResourceInformer(ns, name string, cfg *resourceInformerConfig) *resource
9596 return informer
9697}
9798
98- func (ei * resourceInformer ) withContext (ctx context.Context ) {
99+ func (ei * ResourceInformer ) withContext (ctx context.Context ) {
99100 ei .ctx , ei .cancel = context .WithCancel (ctx )
100101}
101102
102- func (ei * resourceInformer ) putEvent (ev kemtypes.KubeEvent ) {
103+ func (ei * ResourceInformer ) putEvent (ev kemtypes.KubeEvent ) {
103104 if ei .eventCb != nil {
104105 ei .eventCb (ev )
105106 }
106107}
107108
108- func (ei * resourceInformer ) createSharedInformer () error {
109+ func (ei * ResourceInformer ) createSharedInformer () error {
109110 var err error
110111
111112 // discover GroupVersionResource for informer
@@ -153,7 +154,7 @@ func (ei *resourceInformer) createSharedInformer() error {
153154}
154155
155156// Snapshot returns all cached objects for this informer
156- func (ei * resourceInformer ) getCachedObjects () []kemtypes.ObjectAndFilterResult {
157+ func (ei * ResourceInformer ) getCachedObjects () []kemtypes.ObjectAndFilterResult {
157158 ei .cacheLock .RLock ()
158159 res := make ([]kemtypes.ObjectAndFilterResult , 0 )
159160 for _ , obj := range ei .cachedObjects {
@@ -170,7 +171,7 @@ func (ei *resourceInformer) getCachedObjects() []kemtypes.ObjectAndFilterResult
170171 return res
171172}
172173
173- func (ei * resourceInformer ) enableKubeEventCb () {
174+ func (ei * ResourceInformer ) enableKubeEventCb () {
174175 ei .eventBufLock .Lock ()
175176 defer ei .eventBufLock .Unlock ()
176177 if ei .eventCbEnabled {
@@ -186,7 +187,7 @@ func (ei *resourceInformer) enableKubeEventCb() {
186187
187188// loadExistedObjects get a list of existed objects in namespace that match selectors and
188189// fills Checksum map with checksums of existing objects.
189- func (ei * resourceInformer ) loadExistedObjects () error {
190+ func (ei * ResourceInformer ) loadExistedObjects () error {
190191 defer trace .StartRegion (context .Background (), "loadExistedObjects" ).End ()
191192
192193 objList , err := ei .KubeClient .Dynamic ().
@@ -260,23 +261,23 @@ func (ei *resourceInformer) loadExistedObjects() error {
260261 return nil
261262}
262263
263- func (ei * resourceInformer ) OnAdd (obj interface {}, _ bool ) {
264+ func (ei * ResourceInformer ) OnAdd (obj interface {}, _ bool ) {
264265 ei .handleWatchEvent (obj , kemtypes .WatchEventAdded )
265266}
266267
267- func (ei * resourceInformer ) OnUpdate (_ , newObj interface {}) {
268+ func (ei * ResourceInformer ) OnUpdate (_ , newObj interface {}) {
268269 ei .handleWatchEvent (newObj , kemtypes .WatchEventModified )
269270}
270271
271- func (ei * resourceInformer ) OnDelete (obj interface {}) {
272+ func (ei * ResourceInformer ) OnDelete (obj interface {}) {
272273 ei .handleWatchEvent (obj , kemtypes .WatchEventDeleted )
273274}
274275
275276// HandleKubeEvent register object in cache. Pass object to callback if object's checksum is changed.
276277// TODO refactor: pass KubeEvent as argument
277278// TODO add delay to merge Added and Modified events (node added and then labels applied — one hook run on Added+Modified is enough)
278- // func (ei *resourceInformer ) HandleKubeEvent(obj *unstructured.Unstructured, objectId string, filterResult string, newChecksum string, eventType WatchEventType) {
279- func (ei * resourceInformer ) handleWatchEvent (object interface {}, eventType kemtypes.WatchEventType ) {
279+ // func (ei *ResourceInformer ) HandleKubeEvent(obj *unstructured.Unstructured, objectId string, filterResult string, newChecksum string, eventType WatchEventType) {
280+ func (ei * ResourceInformer ) handleWatchEvent (object interface {}, eventType kemtypes.WatchEventType ) {
280281 // check if stop
281282 if ei .stopped {
282283 log .Debug ("received WATCH for stopped informer" ,
@@ -411,7 +412,7 @@ func (ei *resourceInformer) handleWatchEvent(object interface{}, eventType kemty
411412 }
412413}
413414
414- func (ei * resourceInformer ) adjustFieldSelector (selector * kemtypes.FieldSelector , objName string ) * kemtypes.FieldSelector {
415+ func (ei * ResourceInformer ) adjustFieldSelector (selector * kemtypes.FieldSelector , objName string ) * kemtypes.FieldSelector {
415416 var selectorCopy * kemtypes.FieldSelector
416417
417418 if selector != nil {
@@ -440,7 +441,7 @@ func (ei *resourceInformer) adjustFieldSelector(selector *kemtypes.FieldSelector
440441 return selectorCopy
441442}
442443
443- func (ei * resourceInformer ) shouldFireEvent (checkEvent kemtypes.WatchEventType ) bool {
444+ func (ei * ResourceInformer ) shouldFireEvent (checkEvent kemtypes.WatchEventType ) bool {
444445 for _ , event := range ei .Monitor .EventTypes {
445446 if event == checkEvent {
446447 return true
@@ -449,7 +450,7 @@ func (ei *resourceInformer) shouldFireEvent(checkEvent kemtypes.WatchEventType)
449450 return false
450451}
451452
452- func (ei * resourceInformer ) start () {
453+ func (ei * ResourceInformer ) start () {
453454 log .Debug ("RUN resource informer" , slog .String ("debugName" , ei .Monitor .Metadata .DebugName ))
454455
455456 go func () {
@@ -470,20 +471,20 @@ func (ei *resourceInformer) start() {
470471 log .Debug ("informer is ready" , slog .String ("debugName" , ei .Monitor .Metadata .DebugName ))
471472}
472473
473- func (ei * resourceInformer ) pauseHandleEvents () {
474+ func (ei * ResourceInformer ) pauseHandleEvents () {
474475 log .Debug ("PAUSE resource informer" , slog .String ("debugName" , ei .Monitor .Metadata .DebugName ))
475476 ei .stopped = true
476477}
477478
478479// CachedObjectsInfo returns info accumulated from start.
479- func (ei * resourceInformer ) getCachedObjectsInfo () CachedObjectsInfo {
480+ func (ei * ResourceInformer ) getCachedObjectsInfo () CachedObjectsInfo {
480481 ei .cacheLock .RLock ()
481482 defer ei .cacheLock .RUnlock ()
482483 return * ei .cachedObjectsInfo
483484}
484485
485486// getCachedObjectsInfoIncrement returns info accumulated from last call and clean it.
486- func (ei * resourceInformer ) getCachedObjectsInfoIncrement () CachedObjectsInfo {
487+ func (ei * ResourceInformer ) getCachedObjectsInfoIncrement () CachedObjectsInfo {
487488 ei .cacheLock .Lock ()
488489 defer ei .cacheLock .Unlock ()
489490 info := * ei .cachedObjectsIncrement
0 commit comments