mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Don't raise observedGeneration when waiting for expectations and object
hasn't been processed
This commit is contained in:
		@@ -1063,7 +1063,7 @@ func (dsc *DaemonSetsController) syncNodes(ds *apps.DaemonSet, podsToDelete, nod
 | 
				
			|||||||
	return utilerrors.NewAggregate(errors)
 | 
						return utilerrors.NewAggregate(errors)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func storeDaemonSetStatus(dsClient unversionedapps.DaemonSetInterface, ds *apps.DaemonSet, desiredNumberScheduled, currentNumberScheduled, numberMisscheduled, numberReady, updatedNumberScheduled, numberAvailable, numberUnavailable int) error {
 | 
					func storeDaemonSetStatus(dsClient unversionedapps.DaemonSetInterface, ds *apps.DaemonSet, desiredNumberScheduled, currentNumberScheduled, numberMisscheduled, numberReady, updatedNumberScheduled, numberAvailable, numberUnavailable int, updateObservedGen bool) error {
 | 
				
			||||||
	if int(ds.Status.DesiredNumberScheduled) == desiredNumberScheduled &&
 | 
						if int(ds.Status.DesiredNumberScheduled) == desiredNumberScheduled &&
 | 
				
			||||||
		int(ds.Status.CurrentNumberScheduled) == currentNumberScheduled &&
 | 
							int(ds.Status.CurrentNumberScheduled) == currentNumberScheduled &&
 | 
				
			||||||
		int(ds.Status.NumberMisscheduled) == numberMisscheduled &&
 | 
							int(ds.Status.NumberMisscheduled) == numberMisscheduled &&
 | 
				
			||||||
@@ -1079,7 +1079,9 @@ func storeDaemonSetStatus(dsClient unversionedapps.DaemonSetInterface, ds *apps.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	var updateErr, getErr error
 | 
						var updateErr, getErr error
 | 
				
			||||||
	for i := 0; i < StatusUpdateRetries; i++ {
 | 
						for i := 0; i < StatusUpdateRetries; i++ {
 | 
				
			||||||
		toUpdate.Status.ObservedGeneration = ds.Generation
 | 
							if updateObservedGen {
 | 
				
			||||||
 | 
								toUpdate.Status.ObservedGeneration = ds.Generation
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		toUpdate.Status.DesiredNumberScheduled = int32(desiredNumberScheduled)
 | 
							toUpdate.Status.DesiredNumberScheduled = int32(desiredNumberScheduled)
 | 
				
			||||||
		toUpdate.Status.CurrentNumberScheduled = int32(currentNumberScheduled)
 | 
							toUpdate.Status.CurrentNumberScheduled = int32(currentNumberScheduled)
 | 
				
			||||||
		toUpdate.Status.NumberMisscheduled = int32(numberMisscheduled)
 | 
							toUpdate.Status.NumberMisscheduled = int32(numberMisscheduled)
 | 
				
			||||||
@@ -1102,7 +1104,7 @@ func storeDaemonSetStatus(dsClient unversionedapps.DaemonSetInterface, ds *apps.
 | 
				
			|||||||
	return updateErr
 | 
						return updateErr
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (dsc *DaemonSetsController) updateDaemonSetStatus(ds *apps.DaemonSet, hash string) error {
 | 
					func (dsc *DaemonSetsController) updateDaemonSetStatus(ds *apps.DaemonSet, hash string, updateObservedGen bool) error {
 | 
				
			||||||
	glog.V(4).Infof("Updating daemon set status")
 | 
						glog.V(4).Infof("Updating daemon set status")
 | 
				
			||||||
	nodeToDaemonPods, err := dsc.getNodesToDaemonPods(ds)
 | 
						nodeToDaemonPods, err := dsc.getNodesToDaemonPods(ds)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
@@ -1155,7 +1157,7 @@ func (dsc *DaemonSetsController) updateDaemonSetStatus(ds *apps.DaemonSet, hash
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	numberUnavailable := desiredNumberScheduled - numberAvailable
 | 
						numberUnavailable := desiredNumberScheduled - numberAvailable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	err = storeDaemonSetStatus(dsc.kubeClient.AppsV1().DaemonSets(ds.Namespace), ds, desiredNumberScheduled, currentNumberScheduled, numberMisscheduled, numberReady, updatedNumberScheduled, numberAvailable, numberUnavailable)
 | 
						err = storeDaemonSetStatus(dsc.kubeClient.AppsV1().DaemonSets(ds.Namespace), ds, desiredNumberScheduled, currentNumberScheduled, numberMisscheduled, numberReady, updatedNumberScheduled, numberAvailable, numberUnavailable, updateObservedGen)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return fmt.Errorf("error storing status for daemon set %#v: %v", ds, err)
 | 
							return fmt.Errorf("error storing status for daemon set %#v: %v", ds, err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -1217,8 +1219,8 @@ func (dsc *DaemonSetsController) syncDaemonSet(key string) error {
 | 
				
			|||||||
	hash := cur.Labels[apps.DefaultDaemonSetUniqueLabelKey]
 | 
						hash := cur.Labels[apps.DefaultDaemonSetUniqueLabelKey]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if !dsc.expectations.SatisfiedExpectations(dsKey) {
 | 
						if !dsc.expectations.SatisfiedExpectations(dsKey) {
 | 
				
			||||||
		// Only update status.
 | 
							// Only update status. Don't raise observedGeneration since controller didn't process object of that generation.
 | 
				
			||||||
		return dsc.updateDaemonSetStatus(ds, hash)
 | 
							return dsc.updateDaemonSetStatus(ds, hash, false)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	err = dsc.manage(ds, hash)
 | 
						err = dsc.manage(ds, hash)
 | 
				
			||||||
@@ -1243,7 +1245,7 @@ func (dsc *DaemonSetsController) syncDaemonSet(key string) error {
 | 
				
			|||||||
		return fmt.Errorf("failed to clean up revisions of DaemonSet: %v", err)
 | 
							return fmt.Errorf("failed to clean up revisions of DaemonSet: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return dsc.updateDaemonSetStatus(ds, hash)
 | 
						return dsc.updateDaemonSetStatus(ds, hash, true)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (dsc *DaemonSetsController) simulate(newPod *v1.Pod, node *v1.Node, ds *apps.DaemonSet) ([]algorithm.PredicateFailureReason, *schedulercache.NodeInfo, error) {
 | 
					func (dsc *DaemonSetsController) simulate(newPod *v1.Pod, node *v1.Node, ds *apps.DaemonSet) ([]algorithm.PredicateFailureReason, *schedulercache.NodeInfo, error) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user