code: func ConvertToGVK(obj runtime.Object, gvk schema.GroupVersionKind, o admission.ObjectInterfaces) (runtime.Object, error) {
  	// Unlike other resources, custom resources do not have internal version, so
  	// if obj is a custom resource, it should not need conversion.
  	if obj.GetObjectKind().GroupVersionKind() == gvk {
  		return obj, nil
  	}
  	out, err := o.GetObjectCreater().New(gvk)
  	if err != nil {
  		return nil, err
  	}
  	err = o.GetObjectConvertor().Convert(obj, out, nil)
  	if err != nil {
  		return nil, err
  	}
  	// Explicitly set the GVK
  	out.GetObjectKind().SetGroupVersionKind(gvk)
  	return out, nil
  }
docs: // ConvertToGVK converts object to the desired gvk.