Skip to content

Commit

Permalink
ignore if pod condition has been updated (#1074)
Browse files Browse the repository at this point in the history
Signed-off-by: mingzhou.swx <[email protected]>

Signed-off-by: mingzhou.swx <[email protected]>
Co-authored-by: mingzhou.swx <[email protected]>
  • Loading branch information
veophi and mingzhou.swx authored Sep 14, 2022
1 parent 4edba53 commit 8b1e627
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions pkg/util/inplaceupdate/inplace_update.go
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,10 @@ func (c *realControl) updateCondition(pod *v1.Pod, condition v1.PodCondition) er
return err
}

if hasEqualCondition(clone, &condition) {
return nil
}

util.SetPodCondition(clone, condition)
// We only update the ready condition to False, and let Kubelet update it to True
if condition.Status == v1.ConditionFalse {
Expand Down Expand Up @@ -408,3 +412,10 @@ func doPreCheckBeforeNext(pod *v1.Pod, preCheck *appspub.InPlaceUpdatePreCheckBe
}
return nil
}

func hasEqualCondition(pod *v1.Pod, newCondition *v1.PodCondition) bool {
oldCondition := util.GetCondition(pod, newCondition.Type)
isEqual := oldCondition != nil && oldCondition.Status == newCondition.Status &&
oldCondition.Reason == newCondition.Reason && oldCondition.Message == newCondition.Message
return isEqual
}

0 comments on commit 8b1e627

Please sign in to comment.