code: func (p *snapshotProvisioner) Delete(volume *v1.PersistentVolume) error {
  	ann, ok := volume.Annotations[provisionerIDAnn]
  	if !ok {
  		return errors.New("identity annotation not found on PV")
  	}
  	if ann != p.identity {
  		return &controller.IgnoredError{Reason: "identity annotation on PV does not match ours"}
  	}
  
  	volumeType := crdv1.GetSupportedVolumeFromPVSpec(&volume.Spec)
  	if len(volumeType) == 0 {
  		return fmt.Errorf("unsupported volume type found in PV %#v", *volume)
  	}
  	plugin, ok := volumePlugins[volumeType]
  	if !ok {
  		return fmt.Errorf("%s is not supported volume for %#v", volumeType, *volume)
  	}
  
  	// delete PV
  	return plugin.VolumeDelete(volume)
  }
docs: // Delete removes the storage asset that was created by Provision represented
  // by the given PV.