Merge pull request #582 from weilaaa/feature/skip-disabled-gvr

skip disabled gvr when new informers
This commit is contained in:
karmada-bot 2021-08-11 09:29:14 +08:00 committed by GitHub
commit 4c2c18966d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 29 additions and 1 deletions

View File

@ -148,7 +148,7 @@ func (d *ResourceDetector) discoverResources(period time.Duration) {
wait.Until(func() {
newResources := GetDeletableResources(d.DiscoveryClientSet)
for r := range newResources {
if d.InformerManager.IsHandlerExist(r, d.EventHandler) {
if d.InformerManager.IsHandlerExist(r, d.EventHandler) || d.gvrDisabled(r) {
continue
}
klog.Infof("Setup informer for %s", r.String())
@ -158,6 +158,34 @@ func (d *ResourceDetector) discoverResources(period time.Duration) {
}, period, d.stopCh)
}
// gvrDisabled returns whether GroupVersionResource is disabled.
func (d *ResourceDetector) gvrDisabled(gvr schema.GroupVersionResource) bool {
if d.SkippedResourceConfig == nil {
return false
}
if d.SkippedResourceConfig.GroupVersionDisabled(gvr.GroupVersion()) {
return true
}
if d.SkippedResourceConfig.GroupDisabled(gvr.Group) {
return true
}
gvks, err := d.RESTMapper.KindsFor(gvr)
if err != nil {
klog.Errorf("gvr(%s) transform failed: %v", gvr.String(), err)
return false
}
for _, gvk := range gvks {
if d.SkippedResourceConfig.GroupVersionKindDisabled(gvk) {
return true
}
}
return false
}
// NeedLeaderElection implements LeaderElectionRunnable interface.
// So that the detector could run in the leader election mode.
func (d *ResourceDetector) NeedLeaderElection() bool {