code: func getStorageVersionKind(storageVersioner runtime.GroupVersioner, storage rest.Storage, typer runtime.ObjectTyper) (schema.GroupVersionKind, error) {
  	object := storage.New()
  	fqKinds, _, err := typer.ObjectKinds(object)
  	if err != nil {
  		return schema.GroupVersionKind{}, err
  	}
  	gvk, ok := storageVersioner.KindForGroupVersionKinds(fqKinds)
  	if !ok {
  		return schema.GroupVersionKind{}, fmt.Errorf("cannot find the storage version kind for %v", reflect.TypeOf(object))
  	}
  	return gvk, nil
  }
docs: // calculate the storage gvk, the gvk objects are converted to before persisted to the etcd.