mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-05 10:19:50 +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{},
|
&extensionsv1.ReplicaSet{},
|
||||||
controller.NoResyncPeriodFunc(),
|
controller.NoResyncPeriodFunc(),
|
||||||
fedutil.NewTriggerOnAllChanges(
|
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{},
|
&extensionsv1.ReplicaSet{},
|
||||||
controller.NoResyncPeriodFunc(),
|
controller.NoResyncPeriodFunc(),
|
||||||
fedutil.NewTriggerOnMetaAndSpecChanges(
|
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,
|
frsc.fedUpdater = fedutil.NewFederatedUpdater(frsc.fedReplicaSetInformer, "replicaset", updateTimeout, frsc.eventRecorder,
|
||||||
func(client kubeclientset.Interface, obj runtime.Object) error {
|
func(client kubeclientset.Interface, obj runtime.Object) error {
|
||||||
rs := obj.(*extensionsv1.ReplicaSet)
|
rs := obj.(*extensionsv1.ReplicaSet)
|
||||||
@ -297,25 +298,7 @@ func (frsc *ReplicaSetController) isSynced() bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (frsc *ReplicaSetController) deliverLocalReplicaSet(obj interface{}, duration 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)
|
|
||||||
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) {
|
|
||||||
key, err := controller.KeyFunc(obj)
|
key, err := controller.KeyFunc(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorf("Couldn't get key for object %+v: %v", obj, err)
|
glog.Errorf("Couldn't get key for object %+v: %v", obj, err)
|
||||||
|
Loading…
Reference in New Issue
Block a user