【问题标题】:Helm chart using Terraform helm provider - error executing consecutive charts使用 Terraform helm 提供程序的 Helm 图表 - 执行连续图表时出错
【发布时间】:2020-05-06 12:49:18
【问题描述】:

我必须使用 Terraform helm 提供程序安装 helm 图表。我尝试在执行第一个图表后引入延迟,因为在安装第二个掌舵图表之前完成第一个图表和依赖项的安装有先决条件。使用以下配置脚本:

resource "helm_release" "istio-init" {
  name       = "istio-init"
  repository = "${data.helm_repository.istio.metadata.0.name}"
  chart      = "istio-init"
  version    = "${var.istio_version}"
  namespace  = "${var.istio_namespace}"
}

resource "null_resource" "delay" {
  provisioner "local-exec" {
    command = "sleep 200"
  }

  depends_on = ["helm_release.istio-init"]
}

resource "helm_release" "istio" {
  name       = "istio"
  repository = "${data.helm_repository.istio.metadata.0.name}"
  chart      = "istio"
  version    = "${var.istio_version}"
  namespace  = "${var.istio_namespace}"
}

我看到“null_resource”延迟模块在第一次配置 terraform 时运行。当尝试删除资源并重新运行 Terraform 脚本时,我看到 null_resource 模块再也不会被执行,并且配置错误也消失了。 Terraform 供应商是否设计为只运行一次?

【问题讨论】:

    标签: terraform kubernetes-helm istio


    【解决方案1】:

    Helm 有一个可选的等待标志,它实际上会阻止释放,直到所有资源都用完。如果您在 helm_release 资源上指定 wait 变量,Terraform(和引擎盖下的 Helm)将等待所有资源启动。

    例如:

    resource "helm_release" "istio-init" {
      name       = "istio-init"
      repository = "${data.helm_repository.istio.metadata.0.name}"
      chart      = "istio-init"
      version    = "${var.istio_version}"
      namespace  = "${var.istio_namespace}"
      wait       = true
      timeout    = 200
    }
    

    【讨论】:

    • 你有sn-p的例子吗?
    • 添加了一个 sn-p。
    • 在旁注中,回答您与空资源相关的问题。 Terraform 供应商旨在重新运行。但问题是你是如何删除资源的?
    • 我想我手动删除了资源并尝试了 Terraform 应用,这是我尝试应用计划时空资源未运行的主要原因。我做了一个 Terraform 销毁并再次应用它运行正常.....
    • 是的,这也是我的猜测。
    猜你喜欢
    • 2019-11-13
    • 2020-04-21
    • 2021-09-10
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 2021-03-31
    • 2022-06-28
    相关资源
    最近更新 更多