Skip to content

Commit 8a90b81

Browse files
committed
Ignore "release: not found" error on helm_resource destroy
1 parent b9dcb2b commit 8a90b81

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

helm/resource_release.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -865,7 +865,7 @@ func resourceReleaseDelete(ctx context.Context, d *schema.ResourceData, meta int
865865
uninstall.Timeout = time.Duration(d.Get("timeout").(int)) * time.Second
866866

867867
res, err := uninstall.Run(name)
868-
if err != nil {
868+
if err != nil && !errors.Is(err, driver.ErrReleaseNotFound) {
869869
return diag.FromErr(err)
870870
}
871871

helm/resource_release_test.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1758,6 +1758,45 @@ func TestAccResourceRelease_delete_regression(t *testing.T) {
17581758
})
17591759
}
17601760

1761+
func TestAccResourceRelease_destroy_ignoreNotFoundError(t *testing.T) {
1762+
name := randName("ignore-not-found-error")
1763+
namespace := createRandomNamespace(t)
1764+
defer deleteNamespace(t, namespace)
1765+
1766+
resource.Test(t, resource.TestCase{
1767+
PreCheck: func() { testAccPreCheck(t) },
1768+
ProviderFactories: map[string]func() (*schema.Provider, error){
1769+
"helm": func() (*schema.Provider, error) {
1770+
return Provider(), nil
1771+
},
1772+
},
1773+
Steps: []resource.TestStep{
1774+
{
1775+
Config: testAccHelmReleaseConfigBasic(testResourceName, namespace, name, "1.2.3"),
1776+
Check: resource.ComposeTestCheckFunc(
1777+
func(state *terraform.State) error {
1778+
cmd := exec.Command("helm", "--kubeconfig", os.Getenv("KUBE_CONFIG_PATH"), "uninstall", "--namespace", namespace, name)
1779+
out, err := cmd.CombinedOutput()
1780+
t.Log(string(out))
1781+
if err != nil {
1782+
t.Fatal(err)
1783+
}
1784+
return err
1785+
},
1786+
resource.TestCheckResourceAttr("helm_release.test", "metadata.0.namespace", namespace),
1787+
resource.TestCheckResourceAttr("helm_release.test", "metadata.0.version", "1.2.3"),
1788+
resource.TestCheckResourceAttr("helm_release.test", "status", release.StatusDeployed.String()),
1789+
),
1790+
ResourceName: testResourceName,
1791+
PlanOnly: false,
1792+
RefreshState: false,
1793+
ExpectNonEmptyPlan: true,
1794+
},
1795+
},
1796+
CheckDestroy: testAccCheckHelmReleaseDestroy(namespace),
1797+
})
1798+
}
1799+
17611800
func getReleaseJSONManifest(namespace, name string) (string, error) {
17621801
cmd := exec.Command("helm", "--kubeconfig", os.Getenv("KUBE_CONFIG_PATH"), "get", "manifest", "--namespace", namespace, name)
17631802
manifest, err := cmd.Output()

0 commit comments

Comments
 (0)