Commit cdf0cae9 authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

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
parents b0d2f68c 83cd4036
...@@ -64,6 +64,8 @@ type StatefulSetController struct { ...@@ -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,7 +93,8 @@ func NewStatefulSetController( ...@@ -91,7 +93,8 @@ func NewStatefulSetController(
recorder, recorder,
), ),
), ),
queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "statefulset"), pvcListerSynced: pvcInformer.Informer().HasSynced,
queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "statefulset"),
} }
podInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ podInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
...@@ -134,7 +137,7 @@ func (ssc *StatefulSetController) Run(workers int, stopCh <-chan struct{}) { ...@@ -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
} }
......
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