You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform helm_release部署Grafana组件失败,Helm命令可正常执行

问题:Terraform helm_release部署Grafana Chart报“context deadline passed”,但直接Helm命令可行

问题详情

在HCP环境中,使用Terraform的helm_release资源部署Grafana meta-monitoring(v1.3.0)和alloy(v0.10.0)Helm Chart时,持续出现**"context deadline passed"**错误。但直接通过Helm命令执行部署却能成功完成,且其他Helm Chart(如alertmanager)通过Terraform部署无异常,AKS集群连接正常。

相关配置

1. 失败的Terraform helm_release资源配置

resource "helm_release" "meta_monitoring" {
  name              = "meta-monitoring"
  repository        = "https://grafana.github.io/helm-charts"
  chart             = "meta-monitoring"
  version           = "1.3.0"
  namespace         = "meta"
  dependency_update = true
  depends_on        = [kubernetes_secret.minio]

  values = [
    "${file("./helm_charts_values/meta/values.yaml")}"
  ]
}

resource "helm_release" "alloy" {
  name       = "alloy"
  repository = "https://grafana.github.io/helm-charts"
  chart      = "alloy"
  version    = "0.10.0"
  namespace  = "soc-loki"
  depends_on = [kubernetes_namespace.loki]

  values = [
    "${file("./helm_charts_values/alloy/values.yaml")}"
  ]
}

2. 依赖资源配置(已确认无问题)

resource "kubernetes_namespace" "meta" {
  metadata {
    name = "meta"
  }
}

resource "kubernetes_secret" "minio" {
  metadata {
    name      = "minio"
    namespace = kubernetes_namespace.meta.metadata[0].name
  }

  data = {
    rootUser     = "xxxxxx"
    rootPassword = "xxxxx"
  }

  type = "Opaque"
}

3. 可成功执行的Helm命令

helm upgrade --install meta-monitoring grafana/meta-monitoring -n meta -f meta/values.yaml

4. 可成功部署的Terraform helm_release示例(alertmanager)

resource "helm_release" "alert_manager" {
  name       = "alertmanager"
  repository = "https://prometheus-community.github.io/helm-charts"
  chart      = "alertmanager"
  version    = "1.13.1"
  namespace  = "soc-loki"
  depends_on = [kubernetes_namespace.loki]

  values = [
    "${file("./helm_charts_values/alertmanager/values.yaml")}"
  ]
}

5. Grafana meta-monitoring values.yaml配置

namespacesToMonitor:
- soc-loki

cloud:
  logs:
    enabled: false
  metrics:
    enabled: false
  traces:
    enabled: false

local:
  grafana:
    enabled: true
  logs:
    enabled: true
  metrics:
    enabled: true
  traces:
    enabled: true
  minio:
    enabled: true

可能的解决方向

  • 增加Terraform Helm provider的超时时间:Grafana meta-monitoring/alloy Chart包含较多组件(如Grafana、MinIO、Loki等),部署耗时可能超过默认超时。在helm_release资源中添加timeout参数(单位为秒),例如timeout = 300。
  • 禁用依赖预拉取或调整dependency_update时机:尝试将dependency_update = false,先手动执行helm dependency build拉取Chart依赖,再通过Terraform部署。
  • 检查Terraform Helm provider版本:确认使用的Helm provider版本是否与Chart版本兼容,尝试升级或降级provider版本。
  • 细化depends_on依赖:对于meta-monitoring,确保MinIO Secret不仅存在,还要确认对应的MinIO资源(如果由Chart创建)的就绪状态,可通过kubernetes_pod资源等待MinIO pod就绪后再部署Chart。

内容的提问来源于stack exchange,提问作者Jatin Mehrotra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 21:35:11