Commit 560c4657 authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #34817 from gmarek/podgc

Automatic merge from submit-queue PodGCController waits for informer sync before doing anything.
parents 9d137ba4 fd874ab1
...@@ -112,6 +112,10 @@ func (gcc *PodGCController) Run(stop <-chan struct{}) { ...@@ -112,6 +112,10 @@ func (gcc *PodGCController) Run(stop <-chan struct{}) {
} }
func (gcc *PodGCController) gc() { func (gcc *PodGCController) gc() {
if !gcc.podController.HasSynced() || !gcc.nodeController.HasSynced() {
glog.V(2).Infof("PodGCController is waiting for informer sync...")
return
}
pods, err := gcc.podStore.List(labels.Everything()) pods, err := gcc.podStore.List(labels.Everything())
if err != nil { if err != nil {
glog.Errorf("Error while listing all Pods: %v", err) glog.Errorf("Error while listing all Pods: %v", err)
......
...@@ -28,6 +28,14 @@ import ( ...@@ -28,6 +28,14 @@ import (
"k8s.io/kubernetes/pkg/util/sets" "k8s.io/kubernetes/pkg/util/sets"
) )
type FakeController struct{}
func (*FakeController) Run(<-chan struct{}) {}
func (*FakeController) HasSynced() bool {
return true
}
func TestGCTerminated(t *testing.T) { func TestGCTerminated(t *testing.T) {
type nameToPhase struct { type nameToPhase struct {
name string name string
...@@ -111,6 +119,8 @@ func TestGCTerminated(t *testing.T) { ...@@ -111,6 +119,8 @@ func TestGCTerminated(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "node"}, ObjectMeta: api.ObjectMeta{Name: "node"},
}) })
gcc.nodeStore = cache.StoreToNodeLister{Store: store} gcc.nodeStore = cache.StoreToNodeLister{Store: store}
gcc.podController = &FakeController{}
gcc.nodeController = &FakeController{}
gcc.gc() gcc.gc()
...@@ -181,6 +191,8 @@ func TestGCOrphaned(t *testing.T) { ...@@ -181,6 +191,8 @@ func TestGCOrphaned(t *testing.T) {
store := cache.NewStore(cache.MetaNamespaceKeyFunc) store := cache.NewStore(cache.MetaNamespaceKeyFunc)
gcc.nodeStore = cache.StoreToNodeLister{Store: store} gcc.nodeStore = cache.StoreToNodeLister{Store: store}
gcc.podController = &FakeController{}
gcc.nodeController = &FakeController{}
gcc.gc() gcc.gc()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment