Merge pull request #25876 from dshulyak/patch_change
Automatic merge from submit-queue
Use strategic patch to replace changeCause in patch command
This is partial rework of 11da9a7638
StrategicPatch will be used to update changeCause but failure wont affect command result
fixes: #24858
			
			
This commit is contained in:
		| @@ -167,17 +167,18 @@ func RunPatch(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []stri | ||||
|  | ||||
| 		if !options.Local { | ||||
| 			helper := resource.NewHelper(client, mapping) | ||||
| 			patchedObject, err := helper.Patch(namespace, name, patchType, patchBytes) | ||||
| 			_, err := helper.Patch(namespace, name, patchType, patchBytes) | ||||
| 			if err != nil { | ||||
| 				return err | ||||
| 			} | ||||
| 			if cmdutil.ShouldRecord(cmd, info) { | ||||
| 				if err := cmdutil.RecordChangeCause(patchedObject, f.Command()); err == nil { | ||||
| 					// don't return an error on failure.  The patch itself succeeded, its only the hint for that change that failed | ||||
| 					// don't bother checking for failures of this replace, because a failure to indicate the hint doesn't fail the command | ||||
| 					// also, don't force the replacement.  If the replacement fails on a resourceVersion conflict, then it means this | ||||
| 					// record hint is likely to be invalid anyway, so avoid the bad hint | ||||
| 					resource.NewHelper(client, mapping).Replace(namespace, name, false, patchedObject) | ||||
| 				// don't return an error on failure.  The patch itself succeeded, its only the hint for that change that failed | ||||
| 				// don't bother checking for failures of this replace, because a failure to indicate the hint doesn't fail the command | ||||
| 				// also, don't force the replacement.  If the replacement fails on a resourceVersion conflict, then it means this | ||||
| 				// record hint is likely to be invalid anyway, so avoid the bad hint | ||||
| 				patch, err := cmdutil.ChangeResourcePatch(info, f.Command()) | ||||
| 				if err == nil { | ||||
| 					helper.Patch(info.Namespace, info.Name, api.StrategicMergePatchType, patch) | ||||
| 				} | ||||
| 			} | ||||
| 			count++ | ||||
| @@ -208,7 +209,7 @@ func RunPatch(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []stri | ||||
| 		} | ||||
| 		// TODO: if we ever want to go generic, this allows a clean -o yaml without trying to print columns or anything | ||||
| 		// rawExtension := &runtime.Unknown{ | ||||
| 		// 	Raw: originalPatchedObjJS, | ||||
| 		//	Raw: originalPatchedObjJS, | ||||
| 		// } | ||||
|  | ||||
| 		printer, err := f.PrinterForMapping(cmd, mapping, false) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 k8s-merge-robot
					k8s-merge-robot