From f129a600470b3b0e398967821f581943de682f42 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 0d72eb02474f1021f457272696f94d250df4e37e 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 94257d192caf7662145a4e74e08e830a3c07e1b8 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 6667395cdd7adbe11d16df4f5c49778f4d81441d 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 {