diff --git a/federation/pkg/federation-controller/replicaset/replicasetcontroller.go b/federation/pkg/federation-controller/replicaset/replicasetcontroller.go index b5a87d54159..62c3599d829 100644 --- a/federation/pkg/federation-controller/replicaset/replicasetcontroller.go +++ b/federation/pkg/federation-controller/replicaset/replicasetcontroller.go @@ -226,9 +226,20 @@ func (frsc *ReplicaSetController) isSynced() bool { glog.V(2).Infof("Cluster list not synced") return false } + clusters2, err := frsc.fedPodInformer.GetReadyClusters() + if err != nil { + glog.Errorf("Failed to get ready clusters: %v", err) + return false + } + + // This also checks whether podInformer and replicaSetInformer have the + // same cluster lists. if !frsc.fedPodInformer.GetTargetStore().ClustersSynced(clusters) { return false } + if !frsc.fedPodInformer.GetTargetStore().ClustersSynced(clusters2) { + return false + } if !frsc.replicaSetController.HasSynced() { glog.V(2).Infof("federation replicaset list not synced")