github.com/helmwave/helmwave@v0.36.4-0.20240509190856-b35563eba4c6/pkg/release/uninstall.go (about)

     1  package release
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  
     7  	"github.com/helmwave/helmwave/pkg/helper"
     8  	"helm.sh/helm/v3/pkg/release"
     9  )
    10  
    11  func (rel *config) Uninstall(ctx context.Context) (resp *release.UninstallReleaseResponse, err error) {
    12  	ctx = helper.ContextWithReleaseUniq(ctx, rel.Uniq())
    13  
    14  	// Run hooks
    15  	err = rel.Lifecycle.RunPreDown(ctx)
    16  	if err != nil {
    17  		return
    18  	}
    19  
    20  	defer func() {
    21  		lifecycleErr := rel.Lifecycle.RunPostDown(ctx)
    22  		if lifecycleErr != nil {
    23  			if err == nil {
    24  				err = lifecycleErr
    25  			}
    26  		}
    27  	}()
    28  
    29  	client := rel.newUninstall()
    30  
    31  	resp, err = client.Run(rel.Name())
    32  	if err != nil {
    33  		err = fmt.Errorf("failed to uninstall release %s: %w", rel.Uniq(), err)
    34  	}
    35  
    36  	return
    37  }