From 5231c6815c7b06248575892f3ec96c15c634d368 Mon Sep 17 00:00:00 2001 From: Antoine Pelisse Date: Thu, 5 Mar 2020 13:13:27 -0800 Subject: [PATCH] managedfields: Update Apply time if neither object nor managedfields have changed --- .../endpoints/handlers/fieldmanager/managedfieldsupdater.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/managedfieldsupdater.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/managedfieldsupdater.go index b9ea7489295..a015e002ae0 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/managedfieldsupdater.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/managedfieldsupdater.go @@ -67,13 +67,16 @@ func (f *managedFieldsUpdater) Update(liveObj, newObj runtime.Object, managed Ma // 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) { + managed.Times()[fieldManager] = &metav1.Time{Time: time.Now().UTC()} + } if object == nil { object = liveObj } - managed.Times()[fieldManager] = &metav1.Time{Time: time.Now().UTC()} return object, managed, nil }