code: func (plugin *hostPathPlugin) Recycle(pvName string, spec *volume.Spec, eventRecorder recyclerclient.RecycleEventRecorder) error {
  	if spec.PersistentVolume == nil || spec.PersistentVolume.Spec.HostPath == nil {
  		return fmt.Errorf("spec.PersistentVolume.Spec.HostPath is nil")
  	}
  
  	pod := plugin.config.RecyclerPodTemplate
  	timeout := util.CalculateTimeoutForVolume(plugin.config.RecyclerMinimumTimeout, plugin.config.RecyclerTimeoutIncrement, spec.PersistentVolume)
  	// overrides
  	pod.Spec.ActiveDeadlineSeconds = &timeout
  	pod.Spec.Volumes[0].VolumeSource = v1.VolumeSource{
  		HostPath: &v1.HostPathVolumeSource{
  			Path: spec.PersistentVolume.Spec.HostPath.Path,
  		},
  	}
  	return recyclerclient.RecycleVolumeByWatchingPodUntilCompletion(pvName, pod, plugin.host.GetKubeClient(), eventRecorder)
  }
docs: // Recycle recycles/scrubs clean a HostPath volume.
  // Recycle blocks until the pod has completed or any error occurs.
  // HostPath recycling only works in single node clusters and is meant for testing purposes only.