wilfred-s commented on code in PR #844:
URL: https://github.com/apache/yunikorn-k8shim/pull/844#discussion_r1609379727


##########
pkg/client/clients.go:
##########
@@ -27,13 +27,19 @@ import (
        coreInformerV1 "k8s.io/client-go/informers/core/v1"
        schedulingInformerV1 "k8s.io/client-go/informers/scheduling/v1"
        storageInformerV1 "k8s.io/client-go/informers/storage/v1"
+       "k8s.io/client-go/tools/cache"
+       "k8s.io/klog/v2"
        "k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumebinding"
 
        "github.com/apache/yunikorn-k8shim/pkg/conf"
        "github.com/apache/yunikorn-k8shim/pkg/log"
        "github.com/apache/yunikorn-scheduler-interface/lib/go/api"
 )
 
+type informer interface {

Review Comment:
   I looked at using something like slices for storing all the different 
informers. Due to the differences of the listers between the informers that 
becomes a slice of `interface{}` That then triggers type casting and all kinds 
of other handling and checks which is worse than having the separate variables 
and maintaining the two sets. Just storing the `Informer()` and not the 
`Lister()` for the informers does not make sense for me. The lister is normally 
accessed outside of startup the informer is never accessed as it just runs...
   
   Any informer defined should be started and stopped. To not regress we could 
have a simple unit test that checks that all informers defined in the type are 
also returned in the `getInformers()` call. If someone adds a new informer we 
can then ensure that they are updated in both places 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to