helmcli/delete.go (37 lines of code) (raw):

// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. package helmcli import ( "errors" "fmt" "helm.sh/helm/v3/pkg/action" "helm.sh/helm/v3/pkg/storage/driver" "k8s.io/cli-runtime/pkg/genericclioptions" ) // DeleteCli is a client to delete helm release. type DeleteCli struct { namespace string cfg *action.Configuration } // NewDeleteCli returns new DeleteCli instance. func NewDeleteCli(kubeconfigPath string, namespace string) (*DeleteCli, error) { actionCfg := new(action.Configuration) if err := actionCfg.Init( &genericclioptions.ConfigFlags{ KubeConfig: &kubeconfigPath, }, namespace, "secret", debugLog, ); err != nil { return nil, fmt.Errorf("failed to init action config: %w", err) } return &DeleteCli{ namespace: namespace, cfg: actionCfg, }, nil } // Delete deletes existing helm release. func (cli *DeleteCli) Delete(releaseName string) error { delCli := action.NewUninstall(cli.cfg) _, err := delCli.Run(releaseName) if errors.Is(err, driver.ErrReleaseNotFound) { err = nil } return err }