terraform-provider-helm: Helm release gets stuck in the refreshing phase on plan/apply
Terraform Version
Terraform v0.12.24
Helm Provider Version
v1.1.1 & v1.1.0
Platform
macOS Catalina Version 10.15.4 (19E266)
Affected Resource(s)
- helm_release
Terraform Configuration Files
resource "helm_release" "app" {
for_each = local.keyed_charts
name = each.value["name"]
namespace = each.value["namespace"]
repository = each.value["repository"]
chart = each.value["chart"]
max_history = 5
dependency_update = true
timeout = 360 # 6 minutes
values = [
yamlencode(each.value["values"])
]
}
Debug Output
module.environment.helm_release.app["development-api:api-backend"]: Refreshing state... [id=api-backend]
2020-04-02T13:06:33.107+0530 [DEBUG] plugin.terraform-provider-helm_v1.1.0_x4: 2020/04/02 13:06:33 [DEBUG] got release &{api-backend 0xc000656380 0xc000597f40 map[apiBackend:map[config:map[applicationOverrideYaml:REDIS_URL: 'redis-master.shared.svc.cluster.local:6379/1']] version:1] ---
[[Full generated yaml definitions for this chart]]
2020-04-02T13:06:33.110+0530 [DEBUG] plugin.terraform-provider-helm_v1.1.0_x4: [] 1 development-api}
2020-04-02T13:06:33.110+0530 [DEBUG] plugin.terraform-provider-helm_v1.1.0_x4: 2020/04/02 13:06:33 [INFO] Successfully initialized config
2020/04/02 13:06:36 [TRACE] dag/walk: vertex "module.environment.provider.helm (close)" is waiting for "module.environment.helm_release.app"
2020/04/02 13:06:36 [TRACE] dag/walk: vertex "root" is waiting for "module.environment.provider.helm (close)"
2020/04/02 13:06:37 [TRACE] dag/walk: vertex "root" is waiting for "module.environment.helm_release.app[\"development-api:api-backend\"]"
2020/04/02 13:06:41 [TRACE] dag/walk: vertex "module.environment.provider.helm (close)" is waiting for "module.environment.helm_release.app"
2020/04/02 13:06:41 [TRACE] dag/walk: vertex "root" is waiting for "module.environment.provider.helm (close)"
2020/04/02 13:06:42 [TRACE] dag/walk: vertex "root" is waiting for "module.environment.helm_release.app[\"development-api:api-backend\"]"
2020/04/02 13:06:46 [TRACE] dag/walk: vertex "module.environment.provider.helm (close)" is waiting for "module.environment.helm_release.app"
2020/04/02 13:06:46 [TRACE] dag/walk: vertex "root" is waiting for "module.environment.provider.helm (close)"
2020/04/02 13:06:47 [TRACE] dag/walk: vertex "root" is waiting for "module.environment.helm_release.app[\"development-api:api-backend\"]"
2020/04/02 13:06:51 [TRACE] dag/walk: vertex "module.environment.provider.helm (close)" is waiting for "module.environment.helm_release.app"
2020/04/02 13:06:51 [TRACE] dag/walk: vertex "root" is waiting for "module.environment.provider.helm (close)"
2020/04/02 13:06:52 [TRACE] dag/walk: vertex "root" is waiting for "module.environment.helm_release.app[\"development-api:api-backend\"]"
2020/04/02 13:06:56 [TRACE] dag/walk: vertex "module.environment.provider.helm (close)" is waiting for "module.environment.helm_release.app"
2020/04/02 13:06:56 [TRACE] dag/walk: vertex "root" is waiting for "module.environment.provider.helm (close)"
2020/04/02 13:06:57 [TRACE] dag/walk: vertex "root" is waiting for "module.environment.helm_release.app[\"development-api:api-backend\"]"
Expected Behavior
It should refresh the state correctly and proceed with the next stage.
Actual Behavior
Terraform stuck on refreshing phase. No way to move forward unless I run with -refresh=false terraform flag.
Steps to Reproduce
terraform applyorterraform planorterraform refresh
Important Factoids
-
Works without an issue on
v1.0.0. So, seems to be a regression starting fromv1.1.0 -
Using AWS EKS
-
Helm command gives expected result
$ helm list --namespace development-api 1 ↵ NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION api-backend development-api 1 2020-04-01 23:29:52.204583 +0530 IST deployed api-backend-1.0.0 1.0.0 $ helm status api-backend --namespace development-api NAME: api-backend LAST DEPLOYED: Wed Apr 1 23:29:52 2020 NAMESPACE: development-api STATUS: deployed REVISION: 1 TEST SUITE: None
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 26
- Comments: 16 (3 by maintainers)
same thing for me, downgrading to
1.0.0seem to work for meOkay that works for me too. Thanks for the tip @oba11
version 1.0.0 fixed it for me too.
Something like this:
provider "helm" { version = "= 1.0.0" kubernetes { config_path = "~/somewhere/kubeconfig.yaml" config_context = "k8s-clustername" } }Can confirm this issue still exists in Terraform .12.25 / Helm Provider 1.2.1 against an EKS cluster on MacOS…
<edit> AND an alpine-based Docker container so contrary to one of the comments above, switching to Linux does not seem to be a workaround for me.
It seems to be related to the number of releases as I can “workaround” it (get the refresh to finish) by manually deleting releases from state and retrying.
@niranjan94 can I see the variable definition for
keyed_charts? I’m going to look into how the provider traverses these data structures. Thanks!Latest release working very well!
seems fixed for me
Same for me. All version of helm provider after 1.0.0 hungs during refreshing helm_releases(there near 15 of instances). Checked with terraform 0.12.24 and 0.12.25. MacOS 10.15.5 Public Beta 3 Here is a sample of processes stucked - Samples terraform-provider-helm_v1.1.0_x4.txt
same problem for me. Seems like the issue is visible on reaching certain amount of resources