hashicorp / terraform-provider-helm

Terraform Helm provider
https://www.terraform.io/docs/providers/helm/
Mozilla Public License 2.0
998 stars 369 forks source link

Error: could not download chart: failed to download <chart> at version <version> #1033

Closed tsenay closed 1 year ago

tsenay commented 1 year ago

Terraform, Provider, Kubernetes and Helm Versions

Terraform v1.3.7
on darwin_arm64
+ provider registry.terraform.io/hashicorp/aws v4.50.0
+ provider registry.terraform.io/hashicorp/helm v2.8.0

Affected Resource(s)

Terraform Configuration Files

provider "helm" {
  kubernetes {
    host                   = data.aws_eks_cluster.eks.endpoint
    cluster_ca_certificate = base64decode(data.aws_eks_cluster.eks.certificate_authority.0.data)
    token                  = data.aws_eks_cluster_auth.eks.token
  }
  repository_cache = path.module
}

resource "helm_release" "fluent_bit_opentelemetry" {
  count = var.create ? 1 : 0

  name            = "fluent-bit-opentelemetry"
  repository      = "https://<REDACTED>/chartrepo/observability"
  chart           = "adot-exporter-for-eks-on-ec2"
  version         = var.fluent_bit_opentelemetry_chart_version
  force_update    = true
  cleanup_on_fail = true

  values = [templatefile("${path.module}/files/values.yaml.tftpl", {
    EksFluentBitOpentelemetryIngestRole          = var.create ? module.fluent_bit_opentelemetry_ingest_role.iam_role_arn : ""
    EksCWApplicationLogRetentionDays             = var.eks_cw_application_log_retention_days
    EksCWDataplaneLogRetentionDays               = var.eks_cw_dataplane_log_retention_days
    EksCWHostLogRetentionDays                    = var.eks_cw_host_log_retention_days
    EksFluentBitResourcesLimitsCpu               = var.eks_fluentbit_resources_limits_cpu
    EksFluentBitResourcesLimitsMemory            = var.eks_fluentbit_resources_limits_memory
    EksFluentBitResourcesRequestsCpu             = var.eks_fluentbit_resources_requests_cpu
    EksFluentBitResourcesRequestsMemory          = var.eks_fluentbit_resources_requests_memory
    EKSRegion                                    = data.aws_region.current.name
    AMPEndpoint                                  = var.prometheus_grafana ? "${aws_prometheus_workspace.prometheus_workspace[0].prometheus_endpoint}api/v1/remote_write" : ""
    EKSExporters                                 = "[${join(",", local.exporters)}]"
    aws_region                                   = data.aws_region.current.name
    eks_name                                     = var.eks_name
    adot_collector_daemonset_namespace           = var.adot_collector_daemonset_namespace
    adot_collector_daemonset_serviceaccount_name = var.adot_collector_daemonset_serviceaccount_name
    adot_collector_image_repository              = var.adot_collector_image_repository
    adot_collector_image_tag                     = var.adot_collector_image_tag
    fluentbit_enabled                            = var.fluentbit_enabled
    fluentbit_image_repository                   = var.fluentbit_image_repository
    fluentbit_image_tag                          = var.fluentbit_image_tag
    fluentbit_namespace                          = var.fluentbit_namespace
    fluentbit_serviceaccount                     = var.fluentbit_serviceaccount
  })]

  dynamic "set" {
    for_each = var.fluent_bit_opentelemetry_chart_values
    content {
      name  = set.value["name"]
      value = set.value["value"]
      type  = set.value["type"]
    }
  }

}

Debug Output

helm_release.fluent_bit_opentelemetry[0]: Creating...
2023-01-18T17:18:22.341+0100 [INFO]  Starting apply for helm_release.fluent_bit_opentelemetry[0]
2023-01-18T17:18:22.344+0100 [DEBUG] helm_release.fluent_bit_opentelemetry[0]: applying the planned Create change
2023-01-18T17:18:22.345+0100 [TRACE] GRPCProvider: ApplyResourceChange
2023-01-18T17:18:22.345+0100 [TRACE] provider.terraform-provider-helm_v2.8.0_x5: Received request: @caller=github.com/hashicorp/terraform-plugin-go@v0.14.0/tfprotov5/tf5server/server.go:805 tf_proto_version=5.3 tf_provider_addr=provider tf_req_id=935ffb21-f1e1-b417-ba3a-3ba3e77fc85c tf_resource_type=helm_release @module=sdk.proto tf_rpc=ApplyResourceChange timestamp=2023-01-18T17:18:22.345+0100
2023-01-18T17:18:22.345+0100 [TRACE] provider.terraform-provider-helm_v2.8.0_x5: Sending request downstream: tf_resource_type=helm_release tf_rpc=ApplyResourceChange @caller=github.com/hashicorp/terraform-plugin-go@v0.14.0/tfprotov5/internal/tf5serverlogging/downstream_request.go:17 @module=sdk.proto tf_proto_version=5.3 tf_req_id=935ffb21-f1e1-b417-ba3a-3ba3e77fc85c tf_provider_addr=provider timestamp=2023-01-18T17:18:22.345+0100
2023-01-18T17:18:22.347+0100 [INFO]  provider.terraform-provider-helm_v2.8.0_x5: 2023/01/18 17:18:22 [DEBUG] setting computed for "metadata" from ComputedKeys: timestamp=2023-01-18T17:18:22.346+0100
2023-01-18T17:18:22.347+0100 [TRACE] provider.terraform-provider-helm_v2.8.0_x5: Calling downstream: tf_req_id=935ffb21-f1e1-b417-ba3a-3ba3e77fc85c @module=sdk.helper_schema tf_provider_addr=provider tf_resource_type=helm_release tf_rpc=ApplyResourceChange @caller=github.com/hashicorp/terraform-plugin-sdk/v2@v2.22.0/helper/schema/resource.go:836 timestamp=2023-01-18T17:18:22.346+0100
2023-01-18T17:18:22.347+0100 [INFO]  provider.terraform-provider-helm_v2.8.0_x5: 2023/01/18 17:18:22 [DEBUG] [resourceReleaseCreate: fluent-bit-opentelemetry] Started: timestamp=2023-01-18T17:18:22.346+0100
2023-01-18T17:18:22.347+0100 [INFO]  provider.terraform-provider-helm_v2.8.0_x5: 2023/01/18 17:18:22 [DEBUG] [resourceReleaseCreate: fluent-bit-opentelemetry] Getting helm configuration: timestamp=2023-01-18T17:18:22.346+0100
2023-01-18T17:18:22.347+0100 [INFO]  provider.terraform-provider-helm_v2.8.0_x5: 2023/01/18 17:18:22 [DEBUG] [INFO] GetHelmConfiguration start: timestamp=2023-01-18T17:18:22.346+0100
2023-01-18T17:18:22.347+0100 [INFO]  provider.terraform-provider-helm_v2.8.0_x5: 2023/01/18 17:18:22 [INFO] Successfully initialized kubernetes config: timestamp=2023-01-18T17:18:22.347+0100
2023-01-18T17:18:22.347+0100 [INFO]  provider.terraform-provider-helm_v2.8.0_x5: 2023/01/18 17:18:22 [DEBUG] [INFO] GetHelmConfiguration success: timestamp=2023-01-18T17:18:22.347+0100
2023-01-18T17:18:22.347+0100 [INFO]  provider.terraform-provider-helm_v2.8.0_x5: 2023/01/18 17:18:22 [DEBUG] [resourceReleaseCreate: fluent-bit-opentelemetry] Getting chart: timestamp=2023-01-18T17:18:22.347+0100
2023-01-18T17:18:22.683+0100 [TRACE] provider.terraform-provider-helm_v2.8.0_x5: Called downstream: @module=sdk.helper_schema tf_provider_addr=provider tf_req_id=935ffb21-f1e1-b417-ba3a-3ba3e77fc85c tf_rpc=ApplyResourceChange tf_resource_type=helm_release @caller=github.com/hashicorp/terraform-plugin-sdk/v2@v2.22.0/helper/schema/resource.go:838 timestamp=2023-01-18T17:18:22.683+0100
2023-01-18T17:18:22.683+0100 [TRACE] provider.terraform-provider-helm_v2.8.0_x5: Received downstream response: tf_provider_addr=provider tf_req_duration_ms=338 tf_resource_type=helm_release @caller=github.com/hashicorp/terraform-plugin-go@v0.14.0/tfprotov5/internal/tf5serverlogging/downstream_request.go:37 @module=sdk.proto diagnostic_error_count=1 tf_proto_version=5.3 diagnostic_warning_count=0 tf_req_id=935ffb21-f1e1-b417-ba3a-3ba3e77fc85c tf_rpc=ApplyResourceChange timestamp=2023-01-18T17:18:22.683+0100
2023-01-18T17:18:22.684+0100 [ERROR] provider.terraform-provider-helm_v2.8.0_x5: Response contains error diagnostic: tf_provider_addr=provider tf_req_id=935ffb21-f1e1-b417-ba3a-3ba3e77fc85c tf_resource_type=helm_release diagnostic_detail= diagnostic_severity=ERROR @module=sdk.proto diagnostic_summary="could not download chart: failed to download "https://<REDACTED>/chartrepo/observability/charts/adot-exporter-for-eks-on-ec2-0.6.2.tgz" at version "0.6.2"" tf_proto_version=5.3 tf_rpc=ApplyResourceChange @caller=github.com/hashicorp/terraform-plugin-go@v0.14.0/tfprotov5/internal/diag/diagnostics.go:55 timestamp=2023-01-18T17:18:22.683+0100
2023-01-18T17:18:22.684+0100 [TRACE] provider.terraform-provider-helm_v2.8.0_x5: Served request: @module=sdk.proto tf_rpc=ApplyResourceChange tf_req_id=935ffb21-f1e1-b417-ba3a-3ba3e77fc85c tf_resource_type=helm_release @caller=github.com/hashicorp/terraform-plugin-go@v0.14.0/tfprotov5/tf5server/server.go:831 tf_proto_version=5.3 tf_provider_addr=provider timestamp=2023-01-18T17:18:22.683+0100
2023-01-18T17:18:22.684+0100 [TRACE] maybeTainted: helm_release.fluent_bit_opentelemetry[0] encountered an error during creation, so it is now marked as tainted
2023-01-18T17:18:22.684+0100 [TRACE] NodeAbstractResouceInstance.writeResourceInstanceState to workingState for helm_release.fluent_bit_opentelemetry[0]
2023-01-18T17:18:22.684+0100 [TRACE] NodeAbstractResouceInstance.writeResourceInstanceState: removing state object for helm_release.fluent_bit_opentelemetry[0]
2023-01-18T17:18:22.684+0100 [TRACE] evalApplyProvisioners: helm_release.fluent_bit_opentelemetry[0] is tainted, so skipping provisioning
2023-01-18T17:18:22.684+0100 [TRACE] maybeTainted: helm_release.fluent_bit_opentelemetry[0] was already tainted, so nothing to do
2023-01-18T17:18:22.684+0100 [TRACE] NodeAbstractResouceInstance.writeResourceInstanceState to workingState for helm_release.fluent_bit_opentelemetry[0]
2023-01-18T17:18:22.684+0100 [TRACE] NodeAbstractResouceInstance.writeResourceInstanceState: removing state object for helm_release.fluent_bit_opentelemetry[0]
2023-01-18T17:18:22.684+0100 [ERROR] vertex "helm_release.fluent_bit_opentelemetry[0]" error: could not download chart: failed to download "https://<REDACTED>/chartrepo/observability/charts/adot-exporter-for-eks-on-ec2-0.6.2.tgz" at version "0.6.2"
2023-01-18T17:18:22.684+0100 [TRACE] vertex "helm_release.fluent_bit_opentelemetry[0]": visit complete, with errors
2023-01-18T17:18:22.684+0100 [TRACE] dag/walk: upstream of "provider[\"registry.terraform.io/hashicorp/helm\"] (close)" errored, so skipping
2023-01-18T17:18:22.684+0100 [TRACE] dag/walk: upstream of "root" errored, so skipping

NOTE: In addition to Terraform debugging, please set HELM_DEBUG=1 to enable debugging info from helm.

Panic Output

Steps to Reproduce

  1. terraform apply

Expected Behavior

Helm chart should deploy

Actual Behavior

terraform fails because of a unknown download issue

ā”‚ Error: could not download chart: failed to download "https://<REDACTED>/chartrepo/observability/charts/adot-exporter-for-eks-on-ec2-0.6.2.tgz" at version "0.6.2"

Important Factoids

Community Note

jrhouston commented 1 year ago

Do you get a different error message when you set HELM_DEBUG=1? Does it work if you use the same URL with helm install?

This error usually points to an issue in the config for the repo, you might need to tweak the URL in the repository, you might try https://<REDACTED>/chartrepo/observability/charts instead.

tsenay commented 1 year ago

I'm confused. I Tried today with the same configuration. Now it works. I cannot be sure if there was a temporary disturbance on helm repo server (enterprise harbor).