From 98cdb6bb3f5dfb2ca5192ec7b4797f32c76f56e0 Mon Sep 17 00:00:00 2001 From: Mike Ng Date: Wed, 15 Jul 2020 09:13:25 -0400 Subject: [PATCH 1/4] helm/fix: uninstall is not properly checking for existing release Signed-off-by: Mike Ng --- internal/helm/release/manager.go | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/internal/helm/release/manager.go b/internal/helm/release/manager.go index d72c2a0c0c..10e95d443d 100644 --- a/internal/helm/release/manager.go +++ b/internal/helm/release/manager.go @@ -352,17 +352,11 @@ func createJSONMergePatch(existingJSON, expectedJSON []byte) ([]byte, error) { // UninstallRelease performs a Helm release uninstall. func (m manager) UninstallRelease(ctx context.Context, opts ...UninstallOption) (*rpb.Release, error) { // Get history of this release - h, err := m.storageBackend.History(m.releaseName) + _, err := m.storageBackend.History(m.releaseName) if err != nil { return nil, fmt.Errorf("failed to get release history: %w", err) } - // If there is no history, the release has already been uninstalled, - // so return ErrReleaseNotFound. - if len(h) == 0 { - return nil, driver.ErrReleaseNotFound - } - uninstall := action.NewUninstall(m.actionConfig) for _, o := range opts { if err := o(uninstall); err != nil { From d059952f8c90673c72859b2b91269a08710997d9 Mon Sep 17 00:00:00 2001 From: Mike Ng Date: Wed, 15 Jul 2020 11:05:00 -0400 Subject: [PATCH 2/4] syntax change for history check Signed-off-by: Mike Ng --- internal/helm/release/manager.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/helm/release/manager.go b/internal/helm/release/manager.go index 10e95d443d..6b3b893fc5 100644 --- a/internal/helm/release/manager.go +++ b/internal/helm/release/manager.go @@ -352,8 +352,7 @@ func createJSONMergePatch(existingJSON, expectedJSON []byte) ([]byte, error) { // UninstallRelease performs a Helm release uninstall. func (m manager) UninstallRelease(ctx context.Context, opts ...UninstallOption) (*rpb.Release, error) { // Get history of this release - _, err := m.storageBackend.History(m.releaseName) - if err != nil { + if _, err := m.storageBackend.History(m.releaseName); err != nil { return nil, fmt.Errorf("failed to get release history: %w", err) } From 157e877028fc8b8d6351c69b6b2ea6f789722285 Mon Sep 17 00:00:00 2001 From: Mike Ng Date: Thu, 12 Nov 2020 16:50:44 -0500 Subject: [PATCH 3/4] added changelog fragment Signed-off-by: Mike Ng --- changelog/fragments/helm-uninstall-fix.yaml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 changelog/fragments/helm-uninstall-fix.yaml diff --git a/changelog/fragments/helm-uninstall-fix.yaml b/changelog/fragments/helm-uninstall-fix.yaml new file mode 100644 index 0000000000..e8b6ce8851 --- /dev/null +++ b/changelog/fragments/helm-uninstall-fix.yaml @@ -0,0 +1,4 @@ +entries: + - description: Fixed a bug that caused the Helm operator to remove the finalizer without doing a helm uninstall. + kind: "bugfix" + breaking: false \ No newline at end of file From 48b08237c7ccb69962192b348d846a64e325f606 Mon Sep 17 00:00:00 2001 From: Mike Ng Date: Mon, 25 Jan 2021 10:08:16 -0500 Subject: [PATCH 4/4] remove history check for manager uninstall release because it's already taken care of by helm uninstall library call Signed-off-by: Mike Ng --- internal/helm/release/manager.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/internal/helm/release/manager.go b/internal/helm/release/manager.go index 6b3b893fc5..c2968e4ddf 100644 --- a/internal/helm/release/manager.go +++ b/internal/helm/release/manager.go @@ -351,11 +351,6 @@ func createJSONMergePatch(existingJSON, expectedJSON []byte) ([]byte, error) { // UninstallRelease performs a Helm release uninstall. func (m manager) UninstallRelease(ctx context.Context, opts ...UninstallOption) (*rpb.Release, error) { - // Get history of this release - if _, err := m.storageBackend.History(m.releaseName); err != nil { - return nil, fmt.Errorf("failed to get release history: %w", err) - } - uninstall := action.NewUninstall(m.actionConfig) for _, o := range opts { if err := o(uninstall); err != nil {