Skip to content

Commit 8fe3236

Browse files
Syspretor玖宇
authored andcommitted
Optimize helm install/uninstall to avoid releases listing (#3)
Signed-off-by: 玖宇 <guotongyu.gty@alibaba-inc.com> Co-authored-by: 玖宇 <guotongyu.gty@alibaba-inc.com>
1 parent 4a19a5b commit 8fe3236

2 files changed

Lines changed: 9 additions & 10 deletions

File tree

pkg/action/install.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -539,12 +539,13 @@ func (i *Install) availableName() error {
539539
return nil
540540
}
541541

542-
h, err := i.cfg.Releases.History(start)
543-
if err != nil || len(h) < 1 {
544-
return nil
542+
rel, err := i.cfg.Releases.Get(start, 1)
543+
if err != nil {
544+
if errors.Is(err, driver.ErrReleaseNotFound) {
545+
return nil
546+
}
547+
return fmt.Errorf("fail to get release \"%s\": %v", start, err)
545548
}
546-
releaseutil.Reverse(h, releaseutil.SortByRevision)
547-
rel := h[0]
548549

549550
if st := rel.Info.Status; i.Replace && (st == release.StatusUninstalled || st == release.StatusFailed) {
550551
return nil

pkg/action/uninstall.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,19 +74,17 @@ func (u *Uninstall) Run(name string) (*release.UninstallReleaseResponse, error)
7474
return nil, errors.Errorf("uninstall: Release name is invalid: %s", name)
7575
}
7676

77-
rels, err := u.cfg.Releases.History(name)
77+
rel, err := u.cfg.Releases.Get(name, 1)
7878
if err != nil {
7979
if u.IgnoreNotFound {
8080
return nil, nil
8181
}
8282
return nil, errors.Wrapf(err, "uninstall: Release not loaded: %s", name)
8383
}
84-
if len(rels) < 1 {
84+
if rel == nil {
8585
return nil, errMissingRelease
8686
}
87-
88-
releaseutil.SortByRevision(rels)
89-
rel := rels[len(rels)-1]
87+
rels := []*release.Release{rel}
9088

9189
// TODO: Are there any cases where we want to force a delete even if it's
9290
// already marked deleted?

0 commit comments

Comments
 (0)