pkg/kube: remove managed fields before SSA

Server-side apply patches cannot contain managed field data; we must
zero-out this field before sending the patch.

Signed-off-by: Steve Kuznetsov <stekuznetsov@microsoft.com>
pull/31361/head
Steve Kuznetsov 1 year ago
parent 0adfe83ff8
commit 6a497dea3b
No known key found for this signature in database
GPG Key ID: BAAC96ECB5AD2556

@ -1092,6 +1092,13 @@ func patchResourceServerSide(target *resource.Info, dryRun bool, forceConflicts
WithFieldManager(getManagedFieldsManager()).
WithFieldValidation(string(fieldValidationDirective))
// Zero-out managed fields, if any are present on our object, as patch does not allow these to be set
metaAccessor, err := meta.Accessor(target.Object)
if err != nil {
return fmt.Errorf("failed to get object metadata: %w", err)
}
metaAccessor.SetManagedFields(nil)
// Send the full object to be applied on the server side.
data, err := runtime.Encode(unstructured.UnstructuredJSONScheme, target.Object)
if err != nil {

Loading…
Cancel
Save