@@ -155,35 +155,6 @@ func (s *Updater) Update(liveObject, newObject *typed.TypedValue, version fieldp
155155 return newObject , managers , nil
156156}
157157
158- // reconcileManagedFieldsWithSchemaChanges reconciles the managed fields with any changes to the
159- // object's schema since the managed fields were written.
160- //
161- // Supports:
162- // - changing types from atomic to granular
163- // - changing types from granular to atomic
164- func (s * Updater ) reconcileManagedFieldsWithSchemaChanges (liveObject * typed.TypedValue , managers fieldpath.ManagedFields ) (fieldpath.ManagedFields , error ) {
165- result := fieldpath.ManagedFields {}
166- for manager , versionedSet := range managers {
167- tv , err := s .Converter .Convert (liveObject , versionedSet .APIVersion ())
168- if s .Converter .IsMissingVersionError (err ) { // okay to skip, obsolete versions will be deleted automatically anyway
169- continue
170- }
171- if err != nil {
172- return nil , err
173- }
174- reconciled , err := typed .ReconcileFieldSetWithSchema (versionedSet .Set (), tv )
175- if err != nil {
176- return nil , err
177- }
178- if reconciled != nil {
179- result [manager ] = fieldpath .NewVersionedSet (reconciled , versionedSet .APIVersion (), versionedSet .Applied ())
180- } else {
181- result [manager ] = versionedSet
182- }
183- }
184- return result , nil
185- }
186-
187158// Apply should be called when Apply is run, given the current object as
188159// well as the configuration that is applied. This will merge the object
189160// and return it. If the object hasn't changed, nil is returned (the
@@ -327,3 +298,32 @@ func (s *Updater) addBackDanglingItems(merged, pruned *typed.TypedValue, lastSet
327298 }
328299 return merged .RemoveItems (mergedSet .Difference (prunedSet ).Intersection (lastSet .Set ())), nil
329300}
301+
302+ // reconcileManagedFieldsWithSchemaChanges reconciles the managed fields with any changes to the
303+ // object's schema since the managed fields were written.
304+ //
305+ // Supports:
306+ // - changing types from atomic to granular
307+ // - changing types from granular to atomic
308+ func (s * Updater ) reconcileManagedFieldsWithSchemaChanges (liveObject * typed.TypedValue , managers fieldpath.ManagedFields ) (fieldpath.ManagedFields , error ) {
309+ result := fieldpath.ManagedFields {}
310+ for manager , versionedSet := range managers {
311+ tv , err := s .Converter .Convert (liveObject , versionedSet .APIVersion ())
312+ if s .Converter .IsMissingVersionError (err ) { // okay to skip, obsolete versions will be deleted automatically anyway
313+ continue
314+ }
315+ if err != nil {
316+ return nil , err
317+ }
318+ reconciled , err := typed .ReconcileFieldSetWithSchema (versionedSet .Set (), tv )
319+ if err != nil {
320+ return nil , err
321+ }
322+ if reconciled != nil {
323+ result [manager ] = fieldpath .NewVersionedSet (reconciled , versionedSet .APIVersion (), versionedSet .Applied ())
324+ } else {
325+ result [manager ] = versionedSet
326+ }
327+ }
328+ return result , nil
329+ }
0 commit comments