code: func (c *FakeClient) InstallReleaseFromChart(chart *chart.Chart, ns string, opts ...InstallOption) (*rls.InstallReleaseResponse, error) {
  	for _, opt := range opts {
  		opt(&c.Opts)
  	}
  
  	releaseName := c.Opts.instReq.Name
  	releaseDescription := c.Opts.instReq.Description
  
  	// Check to see if the release already exists.
  	rel, err := c.ReleaseStatus(releaseName, nil)
  	if err == nil && rel != nil {
  		return nil, errors.New("cannot re-use a name that is still in use")
  	}
  
  	mockOpts := &MockReleaseOptions{
  		Name:        releaseName,
  		Chart:       chart,
  		Config:      c.Opts.instReq.Values,
  		Namespace:   ns,
  		Description: releaseDescription,
  	}
  
  	release := ReleaseMock(mockOpts)
  
  	if c.RenderManifests {
  		if err := RenderReleaseMock(release, false); err != nil {
  			return nil, err
  		}
  	}
  
  	if !c.Opts.dryRun {
  		c.Rels = append(c.Rels, release)
  	}
  
  	return &rls.InstallReleaseResponse{
  		Release: release,
  	}, nil
  }
docs: // InstallReleaseFromChart adds a new MockRelease to the fake client and returns a InstallReleaseResponse containing that release