mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-06 07:57:35 +00:00
GC doesn't have to create monitors in the constructor
This commit is contained in:
@@ -76,7 +76,6 @@ type GarbageCollector struct {
|
||||
func NewGarbageCollector(
|
||||
metadataClient metadata.Interface,
|
||||
mapper resettableRESTMapper,
|
||||
deletableResources map[schema.GroupVersionResource]struct{},
|
||||
ignoredResources map[schema.GroupResource]struct{},
|
||||
sharedInformers controller.InformerFactory,
|
||||
informersStarted <-chan struct{},
|
||||
@@ -91,7 +90,7 @@ func NewGarbageCollector(
|
||||
attemptToOrphan: attemptToOrphan,
|
||||
absentOwnerCache: absentOwnerCache,
|
||||
}
|
||||
gb := &GraphBuilder{
|
||||
gc.dependencyGraphBuilder = &GraphBuilder{
|
||||
metadataClient: metadataClient,
|
||||
informersStarted: informersStarted,
|
||||
restMapper: mapper,
|
||||
@@ -105,10 +104,6 @@ func NewGarbageCollector(
|
||||
sharedInformers: sharedInformers,
|
||||
ignoredResources: ignoredResources,
|
||||
}
|
||||
if err := gb.syncMonitors(deletableResources); err != nil {
|
||||
utilruntime.HandleError(fmt.Errorf("failed to sync all monitors: %v", err))
|
||||
}
|
||||
gc.dependencyGraphBuilder = gb
|
||||
|
||||
return gc, nil
|
||||
}
|
||||
|
||||
@@ -81,12 +81,12 @@ func TestGarbageCollectorConstruction(t *testing.T) {
|
||||
// construction will not fail.
|
||||
alwaysStarted := make(chan struct{})
|
||||
close(alwaysStarted)
|
||||
gc, err := NewGarbageCollector(metadataClient, rm, twoResources, map[schema.GroupResource]struct{}{},
|
||||
gc, err := NewGarbageCollector(metadataClient, rm, map[schema.GroupResource]struct{}{},
|
||||
controller.NewInformerFactory(sharedInformers, metadataInformers), alwaysStarted)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Equal(t, 1, len(gc.dependencyGraphBuilder.monitors))
|
||||
assert.Equal(t, 0, len(gc.dependencyGraphBuilder.monitors))
|
||||
|
||||
// Make sure resource monitor syncing creates and stops resource monitors.
|
||||
tweakableRM.Add(schema.GroupVersionKind{Group: "tpr.io", Version: "v1", Kind: "unknown"}, nil)
|
||||
@@ -198,12 +198,11 @@ func setupGC(t *testing.T, config *restclient.Config) garbageCollector {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
podResource := map[schema.GroupVersionResource]struct{}{{Version: "v1", Resource: "pods"}: {}}
|
||||
client := fake.NewSimpleClientset()
|
||||
sharedInformers := informers.NewSharedInformerFactory(client, 0)
|
||||
alwaysStarted := make(chan struct{})
|
||||
close(alwaysStarted)
|
||||
gc, err := NewGarbageCollector(metadataClient, &testRESTMapper{testrestmapper.TestOnlyStaticRESTMapper(legacyscheme.Scheme)}, podResource, ignoredResources, sharedInformers, alwaysStarted)
|
||||
gc, err := NewGarbageCollector(metadataClient, &testRESTMapper{testrestmapper.TestOnlyStaticRESTMapper(legacyscheme.Scheme)}, ignoredResources, sharedInformers, alwaysStarted)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -827,13 +826,10 @@ func TestGarbageCollectorSync(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
podResource := map[schema.GroupVersionResource]struct{}{
|
||||
{Group: "", Version: "v1", Resource: "pods"}: {},
|
||||
}
|
||||
sharedInformers := informers.NewSharedInformerFactory(client, 0)
|
||||
alwaysStarted := make(chan struct{})
|
||||
close(alwaysStarted)
|
||||
gc, err := NewGarbageCollector(metadataClient, rm, podResource, map[schema.GroupResource]struct{}{}, sharedInformers, alwaysStarted)
|
||||
gc, err := NewGarbageCollector(metadataClient, rm, map[schema.GroupResource]struct{}{}, sharedInformers, alwaysStarted)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user