code: func (i *HTTPInstaller) Install() error {
  
  	pluginData, err := i.getter.Get(i.Source)
  	if err != nil {
  		return err
  	}
  
  	err = i.extractor.Extract(pluginData, i.CacheDir)
  	if err != nil {
  		return err
  	}
  
  	if !isPlugin(i.CacheDir) {
  		return ErrMissingMetadata
  	}
  
  	src, err := filepath.Abs(i.CacheDir)
  	if err != nil {
  		return err
  	}
  
  	return i.link(src)
  }
docs: // Install downloads and extracts the tarball into the cache directory and creates a symlink to the plugin directory in $HELM_HOME.
  //
  // Implements Installer.