Skip to content

Commit

Permalink
Update managedFields time when value is modified
Browse files Browse the repository at this point in the history
  • Loading branch information
glebiller committed May 19, 2022
1 parent b1aa1bd commit f681821
Show file tree
Hide file tree
Showing 2 changed files with 404 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ func NewManagedFieldsUpdater(fieldManager Manager) Manager {
// Update implements Manager.
func (f *managedFieldsUpdater) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {
self := "current-operation"
formerSet := managed.Fields()[manager]
object, managed, err := f.fieldManager.Update(liveObj, newObj, managed, self)
if err != nil {
return object, managed, err
Expand All @@ -61,26 +60,22 @@ func (f *managedFieldsUpdater) Update(liveObj, newObj runtime.Object, managed Ma
} else {
managed.Fields()[manager] = vs
}
// Update the time only if the manager's fieldSet has changed.
if formerSet == nil || !managed.Fields()[manager].Set().Equals(formerSet.Set()) {
managed.Times()[manager] = &metav1.Time{Time: time.Now().UTC()}
}

managed.Times()[manager] = &metav1.Time{Time: time.Now().UTC()}
}

return object, managed, nil
}

// Apply implements Manager.
func (f *managedFieldsUpdater) Apply(liveObj, appliedObj runtime.Object, managed Managed, fieldManager string, force bool) (runtime.Object, Managed, error) {
formerManaged := managed.Fields().Copy()
object, managed, err := f.fieldManager.Apply(liveObj, appliedObj, managed, fieldManager, force)
if err != nil {
return object, managed, err
}
if object != nil || !managed.Fields().Equals(formerManaged) {
if object != nil {
managed.Times()[fieldManager] = &metav1.Time{Time: time.Now().UTC()}
}
if object == nil {
} else {
object = liveObj.DeepCopyObject()
internal.RemoveObjectManagedFields(object)
}
Expand Down

0 comments on commit f681821

Please sign in to comment.