mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 07:20:13 +00:00
Merge pull request #44984 from perotinus/rssync
Automatic merge from submit-queue (batch tested with PRs 45684, 45266, 45669, 44787, 44984) [Federation] Unify the delivery methods in the ReplicaSet controller. Unifies the federated and non-federated object delivery methods. The reconcile method that's called already checks for existence, and no other controller has a similar paradigm, so it seems reasonable to simplify it here. cc @marun **Release note**: ```release-note NONE ```
This commit is contained in:
commit
7b0dee89f2
@ -139,7 +139,7 @@ func NewReplicaSetController(federationClient fedclientset.Interface) *ReplicaSe
|
||||
&extensionsv1.ReplicaSet{},
|
||||
controller.NoResyncPeriodFunc(),
|
||||
fedutil.NewTriggerOnAllChanges(
|
||||
func(obj runtime.Object) { frsc.deliverLocalReplicaSet(obj, replicaSetReviewDelay) },
|
||||
func(obj runtime.Object) { frsc.deliverReplicaSetObj(obj, replicaSetReviewDelay) },
|
||||
),
|
||||
)
|
||||
}
|
||||
@ -185,8 +185,9 @@ func NewReplicaSetController(federationClient fedclientset.Interface) *ReplicaSe
|
||||
&extensionsv1.ReplicaSet{},
|
||||
controller.NoResyncPeriodFunc(),
|
||||
fedutil.NewTriggerOnMetaAndSpecChanges(
|
||||
func(obj runtime.Object) { frsc.deliverFedReplicaSetObj(obj, replicaSetReviewDelay) }))
|
||||
|
||||
func(obj runtime.Object) { frsc.deliverReplicaSetObj(obj, replicaSetReviewDelay) },
|
||||
),
|
||||
)
|
||||
frsc.fedUpdater = fedutil.NewFederatedUpdater(frsc.fedReplicaSetInformer, "replicaset", updateTimeout, frsc.eventRecorder,
|
||||
func(client kubeclientset.Interface, obj runtime.Object) error {
|
||||
rs := obj.(*extensionsv1.ReplicaSet)
|
||||
@ -297,25 +298,7 @@ func (frsc *ReplicaSetController) isSynced() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (frsc *ReplicaSetController) deliverLocalReplicaSet(obj interface{}, duration time.Duration) {
|
||||
key, err := controller.KeyFunc(obj)
|
||||
if err != nil {
|
||||
glog.Errorf("Couldn't get key for object %v: %v", obj, err)
|
||||
return
|
||||
}
|
||||
_, exists, err := frsc.replicaSetStore.GetByKey(key)
|
||||
switch {
|
||||
case !exists:
|
||||
// do nothing
|
||||
case err != nil:
|
||||
glog.Errorf("Couldn't get federation replicaset %v: %v", key, err)
|
||||
default:
|
||||
// ReplicaSet exists. Ignore ReplicaSets that exist only in local k8s
|
||||
frsc.deliverReplicaSetByKey(key, duration, false)
|
||||
}
|
||||
}
|
||||
|
||||
func (frsc *ReplicaSetController) deliverFedReplicaSetObj(obj interface{}, delay time.Duration) {
|
||||
func (frsc *ReplicaSetController) deliverReplicaSetObj(obj interface{}, delay time.Duration) {
|
||||
key, err := controller.KeyFunc(obj)
|
||||
if err != nil {
|
||||
glog.Errorf("Couldn't get key for object %+v: %v", obj, err)
|
||||
|
Loading…
Reference in New Issue
Block a user