code: func (o TaintOptions) RunTaint() error {
  	r := o.builder.Do()
  	if err := r.Err(); err != nil {
  		return err
  	}
  
  	return r.Visit(func(info *resource.Info, err error) error {
  		if err != nil {
  			return err
  		}
  
  		obj := info.Object
  		name, namespace := info.Name, info.Namespace
  		oldData, err := json.Marshal(obj)
  		if err != nil {
  			return err
  		}
  		operation, err := o.updateTaints(obj)
  		if err != nil {
  			return err
  		}
  		newData, err := json.Marshal(obj)
  		if err != nil {
  			return err
  		}
  		patchBytes, err := strategicpatch.CreateTwoWayMergePatch(oldData, newData, obj)
  		createdPatch := err == nil
  		if err != nil {
  			klog.V(2).Infof("couldn't compute patch: %v", err)
  		}
  
  		mapping := info.ResourceMapping()
  		client, err := o.ClientForMapping(mapping)
  		if err != nil {
  			return err
  		}
  		helper := resource.NewHelper(client, mapping)
  
  		var outputObj runtime.Object
  		if createdPatch {
  			outputObj, err = helper.Patch(namespace, name, types.StrategicMergePatchType, patchBytes, nil)
  		} else {
  			outputObj, err = helper.Replace(namespace, name, false, obj)
  		}
  		if err != nil {
  			return err
  		}
  
  		printer, err := o.ToPrinter(operation)
  		if err != nil {
  			return err
  		}
  		return printer.PrintObj(outputObj, o.Out)
  	})
  }
docs: // RunTaint does the work