mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-07-18 13:57:38 +00:00
Remove ManagedFields after changing the version
But before we transform it into a typed object, so that it doesn't appear in the typed object for proper operations, but also so that we don't remove it from the original object that we receive as an argument.
This commit is contained in:
@@ -72,13 +72,6 @@ func (f *FieldManager) Update(liveObj, newObj runtime.Object, manager string) (r
|
||||
return nil, fmt.Errorf("failed to decode managed fields: %v", err)
|
||||
}
|
||||
}
|
||||
if err := internal.RemoveObjectManagedFields(newObj); err != nil {
|
||||
return nil, fmt.Errorf("failed to remove managed fields from new obj: %v", err)
|
||||
}
|
||||
if err := internal.RemoveObjectManagedFields(liveObj); err != nil {
|
||||
return nil, fmt.Errorf("failed to remove managed fields from live obj: %v", err)
|
||||
}
|
||||
|
||||
newObjVersioned, err := f.toVersioned(newObj)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to convert new object to proper version: %v", err)
|
||||
@@ -87,6 +80,12 @@ func (f *FieldManager) Update(liveObj, newObj runtime.Object, manager string) (r
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to convert live object to proper version: %v", err)
|
||||
}
|
||||
if err := internal.RemoveObjectManagedFields(liveObjVersioned); err != nil {
|
||||
return nil, fmt.Errorf("failed to remove managed fields from live obj: %v", err)
|
||||
}
|
||||
if err := internal.RemoveObjectManagedFields(newObjVersioned); err != nil {
|
||||
return nil, fmt.Errorf("failed to remove managed fields from new obj: %v", err)
|
||||
}
|
||||
|
||||
newObjTyped, err := f.typeConverter.ObjectToTyped(newObjVersioned)
|
||||
if err != nil {
|
||||
@@ -116,16 +115,15 @@ func (f *FieldManager) Apply(liveObj runtime.Object, patch []byte, force bool) (
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to decode managed fields: %v", err)
|
||||
}
|
||||
if err := internal.RemoveObjectManagedFields(liveObj); err != nil {
|
||||
return nil, fmt.Errorf("failed to remove managed fields from live obj: %v", err)
|
||||
}
|
||||
|
||||
// We can assume that patchObj is already on the proper version:
|
||||
// it shouldn't have to be converted so that it's not defaulted.
|
||||
liveObjVersioned, err := f.toVersioned(liveObj)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to convert live object to proper version: %v", err)
|
||||
}
|
||||
if err := internal.RemoveObjectManagedFields(liveObjVersioned); err != nil {
|
||||
return nil, fmt.Errorf("failed to remove managed fields from live obj: %v", err)
|
||||
}
|
||||
|
||||
patchObjTyped, err := f.typeConverter.YAMLToTyped(patch)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user