From 703d15eff61aa5650c4781ffaf69c1e9fc196e01 Mon Sep 17 00:00:00 2001 From: Alex Zielenski Date: Fri, 2 Sep 2022 17:34:07 -0700 Subject: [PATCH] Update staging/src/k8s.io/client-go/util/csaupgrade/upgrade.go Co-authored-by: Antoine Pelisse Kubernetes-commit: 5caffef694b50168f546d7758a26de832302b541 --- util/csaupgrade/upgrade.go | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/util/csaupgrade/upgrade.go b/util/csaupgrade/upgrade.go index a3f0af2d..e199a949 100644 --- a/util/csaupgrade/upgrade.go +++ b/util/csaupgrade/upgrade.go @@ -51,46 +51,39 @@ func UpgradeManagedFields( managedFields = append(managedFields, accessor.GetManagedFields()...) // Locate SSA manager - ssaManagerIndex, ssaManagerExists := findFirstIndex(managedFields, + replaceIndex, managerExists := findFirstIndex(managedFields, func(entry metav1.ManagedFieldsEntry) bool { return entry.Manager == ssaManagerName && entry.Operation == metav1.ManagedFieldsOperationApply && entry.Subresource == "" }) - if ssaManagerExists { - err = unionManagerIntoIndex(managedFields, ssaManagerIndex, csaManagerName) - if err != nil { - return nil, err - } - - } else { + if !managerExists { // SSA manager does not exist. Find the most recent matching CSA manager, // convert it to an SSA manager. // // (find first index, since managed fields are sorted so that most recent is // first in the list) - csaManagerIndex, csaManagerExists := findFirstIndex(managedFields, + replaceIndex, managerExists = findFirstIndex(managedFields, func(entry metav1.ManagedFieldsEntry) bool { return entry.Manager == csaManagerName && entry.Operation == metav1.ManagedFieldsOperationUpdate && entry.Subresource == "" }) - if !csaManagerExists { + if !managerExists { // There are no CSA managers that need to be converted. Nothing to do // Return early return obj, nil } // Convert CSA manager into SSA manager - managedFields[csaManagerIndex].Operation = metav1.ManagedFieldsOperationApply - managedFields[csaManagerIndex].Manager = ssaManagerName - - err = unionManagerIntoIndex(managedFields, csaManagerIndex, csaManagerName) - if err != nil { - return nil, err - } + managedFields[replaceIndex].Operation = metav1.ManagedFieldsOperationApply + managedFields[replaceIndex].Manager = ssaManagerName + } + err = unionManagerIntoIndex(managedFields, replaceIndex, csaManagerName) + if err != nil { + return nil, err } // Create version of managed fields which has no CSA managers with the given name