MCPcopy
hub / github.com/helm/helm / Run

Method Run

pkg/action/uninstall.go:62–221  ·  view source on GitHub ↗

Run uninstalls the given release.

(name string)

Source from the content-addressed store, hash-verified

60
61// Run uninstalls the given release.
62func (u *Uninstall) Run(name string) (*releasei.UninstallReleaseResponse, error) {
63 if err := u.cfg.KubeClient.IsReachable(); err != nil {
64 return nil, err
65 }
66
67 var waiter kube.Waiter
68 var err error
69 if c, supportsOptions := u.cfg.KubeClient.(kube.InterfaceWaitOptions); supportsOptions {
70 waiter, err = c.GetWaiterWithOptions(u.WaitStrategy, u.WaitOptions...)
71 } else {
72 waiter, err = u.cfg.KubeClient.GetWaiter(u.WaitStrategy)
73 }
74 if err != nil {
75 return nil, err
76 }
77
78 if u.DryRun {
79 ri, err := u.cfg.releaseContent(name, 0)
80
81 if err != nil {
82 if u.IgnoreNotFound && errors.Is(err, driver.ErrReleaseNotFound) {
83 return nil, nil
84 }
85 return &releasei.UninstallReleaseResponse{}, err
86 }
87 r, err := releaserToV1Release(ri)
88 if err != nil {
89 return nil, err
90 }
91 return &releasei.UninstallReleaseResponse{Release: r}, nil
92 }
93
94 if err := chartutil.ValidateReleaseName(name); err != nil {
95 return nil, fmt.Errorf("uninstall: Release name is invalid: %s", name)
96 }
97
98 relsi, err := u.cfg.Releases.History(name)
99 if err != nil {
100 if u.IgnoreNotFound {
101 return nil, nil
102 }
103 return nil, fmt.Errorf("uninstall: Release not loaded: %s: %w", name, err)
104 }
105 if len(relsi) < 1 {
106 return nil, errMissingRelease
107 }
108
109 rels, err := releaseListToV1List(relsi)
110 if err != nil {
111 return nil, err
112 }
113
114 releaseutil.SortByRevision(rels)
115 rel := rels[len(rels)-1]
116
117 // TODO: Are there any cases where we want to force a delete even if it's
118 // already marked deleted?
119 if rel.Info.Status == common.StatusUninstalled {

Callers 3

failReleaseMethod · 0.95
newUninstallCmdFunction · 0.95

Calls 15

purgeReleasesMethod · 0.95
deleteReleaseMethod · 0.95
WaitForDeleteMethod · 0.95
releaseContentMethod · 0.80
IsMethod · 0.80
HistoryMethod · 0.80
NowMethod · 0.80
execHookMethod · 0.80
DeployedAllMethod · 0.80
releaserToV1ReleaseFunction · 0.70
releaseListToV1ListFunction · 0.70
joinErrorsFunction · 0.70

Tested by 1