code: func setOwnerReference(v reflect.Value, o *metav1.OwnerReference) error {
  	if err := runtime.SetField(o.APIVersion, v, "APIVersion"); err != nil {
  		return err
  	}
  	if err := runtime.SetField(o.Kind, v, "Kind"); err != nil {
  		return err
  	}
  	if err := runtime.SetField(o.Name, v, "Name"); err != nil {
  		return err
  	}
  	if err := runtime.SetField(o.UID, v, "UID"); err != nil {
  		return err
  	}
  	if o.Controller != nil {
  		controller := *(o.Controller)
  		if err := runtime.SetField(&controller, v, "Controller"); err != nil {
  			return err
  		}
  	}
  	if o.BlockOwnerDeletion != nil {
  		block := *(o.BlockOwnerDeletion)
  		if err := runtime.SetField(&block, v, "BlockOwnerDeletion"); err != nil {
  			return err
  		}
  	}
  	return nil
  }
docs: // setOwnerReference sets v to o. v is the OwnerReferences field of an object.