Merge pull request #42339 from ncdc/statefulset-wait-for-pvc-sync

Automatic merge from submit-queue

statefulset: wait for pvc cache sync

#42056 switched the statefulset controller to use the pvc shared informer/lister, but accidentally left out waiting for its cache to sync.

cc @kubernetes/sig-apps-pr-reviews @kargakis @foxish @kow3ns @smarterclayton @deads2k
This commit is contained in:
Kubernetes Submit Queue 2017-03-01 11:05:56 -08:00 committed by GitHub
commit cdf0cae9e4

View File

@ -64,6 +64,8 @@ type StatefulSetController struct {
setLister appslisters.StatefulSetLister setLister appslisters.StatefulSetLister
// setListerSynced returns true if the stateful set shared informer has synced at least once // setListerSynced returns true if the stateful set shared informer has synced at least once
setListerSynced cache.InformerSynced setListerSynced cache.InformerSynced
// pvcListerSynced returns true if the pvc shared informer has synced at least once
pvcListerSynced cache.InformerSynced
// StatefulSets that need to be synced. // StatefulSets that need to be synced.
queue workqueue.RateLimitingInterface queue workqueue.RateLimitingInterface
} }
@ -91,6 +93,7 @@ func NewStatefulSetController(
recorder, recorder,
), ),
), ),
pvcListerSynced: pvcInformer.Informer().HasSynced,
queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "statefulset"), queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "statefulset"),
} }
@ -134,7 +137,7 @@ func (ssc *StatefulSetController) Run(workers int, stopCh <-chan struct{}) {
glog.Infof("Starting statefulset controller") glog.Infof("Starting statefulset controller")
if !cache.WaitForCacheSync(stopCh, ssc.podListerSynced, ssc.setListerSynced) { if !cache.WaitForCacheSync(stopCh, ssc.podListerSynced, ssc.setListerSynced, ssc.pvcListerSynced) {
utilruntime.HandleError(fmt.Errorf("timed out waiting for caches to sync")) utilruntime.HandleError(fmt.Errorf("timed out waiting for caches to sync"))
return return
} }